diff options
author | Yvan Lussaud | 2015-03-26 08:56:27 +0000 |
---|---|---|
committer | Yvan Lussaud | 2015-03-26 08:56:27 +0000 |
commit | 66eae954d664cca363b394609c46259827cec09e (patch) | |
tree | e270cc751c776bacd8579b0f9e17ce29ac260d57 | |
parent | a58681c6d8433d2418fd03513dcd467f00961310 (diff) | |
download | org.eclipse.acceleo-66eae954d664cca363b394609c46259827cec09e.tar.gz org.eclipse.acceleo-66eae954d664cca363b394609c46259827cec09e.tar.xz org.eclipse.acceleo-66eae954d664cca363b394609c46259827cec09e.zip |
Added IService.validateAllType() tests.
Change-Id: If15cebe2634ea0f27251dff0d9f56612319c7849
8 files changed, 1810 insertions, 273 deletions
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java index d47f5f51f..8532bcb3b 100644 --- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java +++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java @@ -629,7 +629,8 @@ public class CollectionServices extends AbstractServiceProvider { } if (result.isEmpty()) { - result.add(services.nothing("Nothing left after intersection:" + builder.toString())); + result.add(new SetType(queryEnvironment, services.nothing("Nothing left after intersection:" + + builder.toString()))); } return result; diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/FilterService.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/FilterService.java index 0cb8acfe0..032c9cc89 100644 --- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/FilterService.java +++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/FilterService.java @@ -25,6 +25,7 @@ import org.eclipse.acceleo.query.validation.type.IType; import org.eclipse.acceleo.query.validation.type.NothingType; import org.eclipse.acceleo.query.validation.type.SequenceType; import org.eclipse.acceleo.query.validation.type.SetType; +import org.eclipse.emf.ecore.EClassifier; /** * {@link org.eclipse.acceleo.query.runtime.IService#validateAllType(org.eclipse.acceleo.query.runtime.impl.ValidationServices, org.eclipse.acceleo.query.runtime.impl.EPackageProvider, java.util.Map) @@ -58,23 +59,22 @@ public class FilterService extends Service { final StringBuilder builder = new StringBuilder(); for (Entry<List<IType>, Set<IType>> entry : allTypes.entrySet()) { - if (entry.getKey().size() > filterIndex) { + if (entry.getKey().size() > filterIndex && entry.getKey().get(1).getType() instanceof EClassifier) { final IType filterType = entry.getKey().get(filterIndex); for (IType possibleType : entry.getValue()) { - if (possibleType instanceof NothingType) { + final IType rawType; + if (possibleType instanceof ICollectionType) { + rawType = ((ICollectionType)possibleType).getCollectionType(); + } else { + rawType = possibleType; + } + if (rawType instanceof NothingType) { builder.append("\n"); - builder.append(((NothingType)possibleType).getMessage()); + builder.append(((NothingType)rawType).getMessage()); } else { - final IType rawType; - if (possibleType instanceof ICollectionType) { - rawType = ((ICollectionType)possibleType).getCollectionType(); - } else { - rawType = possibleType; - } final IType loweredType = services.lower(filterType, rawType); if (loweredType != null) { result.add(unrawType(queryEnvironment, possibleType, loweredType)); - break; } } } diff --git a/query/tests/org.eclipse.acceleo.query.tests/resources/uml/uml.qmodel b/query/tests/org.eclipse.acceleo.query.tests/resources/uml/uml.qmodel index a7593df11..ba0b6ed01 100644 --- a/query/tests/org.eclipse.acceleo.query.tests/resources/uml/uml.qmodel +++ b/query/tests/org.eclipse.acceleo.query.tests/resources/uml/uml.qmodel @@ -456,9 +456,26 @@ <expectedResult interpreter="manual"> <possibleTypes>Set(EClassifier=TemplateParameter)</possibleTypes> <possibleTypes>Set(Sequence(EClassifier=PackageableElement))</possibleTypes> - <possibleTypes>Set(Sequence(EClassifier=StringExpression))</possibleTypes> <possibleTypes>Set(Sequence(EClassifier=UseCase))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=Substitution))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=InterfaceRealization))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=Behavior))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=Classifier))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=Node))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=ComponentRealization))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=Manifestation))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=Artifact))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=EnumerationLiteral))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=ProtocolStateMachine))</possibleTypes> <possibleTypes>Set(Sequence(EClassifier=ValueSpecification))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=StringExpression))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=DeploymentSpecification))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=OpaqueExpression))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=TimeExpression))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=Dependency))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=Constraint))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=InteractionConstraint))</possibleTypes> + <possibleTypes>Set(Sequence(EClassifier=Deployment))</possibleTypes> <possibleTypes>Set(EClassifier=TemplateParameterSubstitution)</possibleTypes> <possibleTypes>Set(EClassifier=Package)</possibleTypes> <possibleTypes>Set(EClassifier=Component)</possibleTypes> @@ -911,6 +928,16 @@ <expectations xsi:type="qmodel:QueryValidationResultExpectation"> <expectedResult interpreter="manual"> <possibleTypes>EClassifier=Component</possibleTypes> + <possibleTypes>EClassifier=Class</possibleTypes> + <possibleTypes>EClassifier=BehavioredClassifier</possibleTypes> + <possibleTypes>EClassifier=Node</possibleTypes> + <possibleTypes>EClassifier=StateMachine</possibleTypes> + <possibleTypes>EClassifier=Activity</possibleTypes> + <possibleTypes>EClassifier=Behavior</possibleTypes> + <possibleTypes>EClassifier=UseCase</possibleTypes> + <possibleTypes>EClassifier=Interaction</possibleTypes> + <possibleTypes>EClassifier=Stereotype</possibleTypes> + <possibleTypes>EClassifier=ProtocolStateMachine</possibleTypes> </expectedResult> </expectations> </queries> diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AnyServicesValidationTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AnyServicesValidationTest.java index 3094a5018..89c5eeb61 100644 --- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AnyServicesValidationTest.java +++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AnyServicesValidationTest.java @@ -12,7 +12,9 @@ package org.eclipse.acceleo.query.services.tests; import java.util.ArrayList; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Set; import org.eclipse.acceleo.query.runtime.IService; @@ -43,10 +45,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -57,10 +66,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -71,10 +87,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -85,10 +108,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -99,10 +129,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -113,10 +150,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -127,10 +171,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -141,10 +192,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -155,10 +213,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -169,10 +234,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -183,10 +255,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -198,10 +277,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -212,10 +298,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), String.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } @Test @@ -226,10 +319,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), String.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } @Test @@ -240,10 +340,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } @Test @@ -254,10 +361,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } @Test @@ -268,10 +382,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new ClassType(getQueryEnvironment(), Class.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -282,10 +403,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new ClassType(getQueryEnvironment(), Class.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -297,10 +425,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new ClassType(getQueryEnvironment(), EClass.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -311,10 +446,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new ClassType(getQueryEnvironment(), Class.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -325,10 +467,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new ClassType(getQueryEnvironment(), Class.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -340,10 +489,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new ClassType(getQueryEnvironment(), EClass.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -354,10 +510,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new ClassType(getQueryEnvironment(), int.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), int.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), int.class), it.next()); } @Test @@ -368,10 +531,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); } @Test @@ -383,10 +553,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new ClassType(getQueryEnvironment(), EClass.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), EClass.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), EClass.class), it.next()); } @Test @@ -398,11 +575,19 @@ public class AnyServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Object.class)); argTypes.add(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it .next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it + .next()); } @Test @@ -412,10 +597,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } @Test @@ -425,10 +617,17 @@ public class AnyServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } } diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/BooleanServicesValidationTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/BooleanServicesValidationTest.java index bc87deb82..aee28bf6f 100644 --- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/BooleanServicesValidationTest.java +++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/BooleanServicesValidationTest.java @@ -12,7 +12,9 @@ package org.eclipse.acceleo.query.services.tests; import java.util.ArrayList; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Set; import org.eclipse.acceleo.query.runtime.IService; @@ -40,10 +42,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -54,10 +63,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -68,10 +84,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -82,10 +105,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -95,10 +125,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -108,10 +145,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -122,10 +166,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -136,10 +187,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -150,10 +208,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -164,10 +229,17 @@ public class BooleanServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); argTypes.add(new ClassType(getQueryEnvironment(), Boolean.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } } diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesValidationTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesValidationTest.java index 774d4edc9..2dc250e95 100644 --- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesValidationTest.java +++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesValidationTest.java @@ -114,13 +114,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -186,13 +196,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), + it.next()); } @Test @@ -207,12 +227,21 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { new ClassType(getQueryEnvironment(), String.class), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); assertTrue(next instanceof NothingType); assertEquals("expression in an any must return a boolean", ((NothingType)next).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof NothingType); + assertEquals("expression in an any must return a boolean", ((NothingType)next).getMessage()); } @Test @@ -229,11 +258,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBoolean()))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -253,11 +288,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBoolean()))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -270,11 +311,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); } @Test @@ -285,11 +334,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); } @Test @@ -299,11 +356,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); } @Test @@ -314,11 +379,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); } @Test @@ -328,11 +401,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); } @Test @@ -343,11 +424,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); } @Test @@ -359,10 +448,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } @Test @@ -376,11 +472,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { new ClassType(getQueryEnvironment(), String.class), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), + it.next()); } @Test @@ -395,11 +499,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { new ClassType(getQueryEnvironment(), String.class), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -413,13 +525,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -430,10 +552,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); } @Test @@ -445,10 +574,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); } @Test @@ -459,10 +595,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -474,10 +617,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -488,10 +638,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -503,10 +660,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -519,13 +683,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class))); argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -537,13 +711,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), + it.next()); } @Test @@ -556,10 +740,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class))); argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); } @Test @@ -573,13 +764,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); argTypes.add(new ClassType(getQueryEnvironment(), Double.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Double.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Double.class)), it.next()); } @Test @@ -604,8 +805,7 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), eCls1))); argTypes.add(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), eCls2))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -614,6 +814,18 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { assertEquals( "Nothing left after intersection of Set(EClassifier=eCls1) and Set(EClassifier=eCls2)", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SetType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing left after intersection:\n Nothing left after intersection of Set(EClassifier=eCls1) and Set(EClassifier=eCls2)", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -652,14 +864,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), eCls1))); argTypes.add(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), eCls2))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); assertTrue(next instanceof SetType); assertTrue(((ICollectionType)next).getCollectionType() instanceof EClassifierType); assertEquals(eCls3, ((ICollectionType)next).getCollectionType().getType()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SetType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof EClassifierType); + assertEquals(eCls3, ((ICollectionType)next).getCollectionType().getType()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -674,11 +895,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); } @Test @@ -691,11 +920,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), EClassifier.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), EClass.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), EClass.class)), + it.next()); } @Test @@ -708,11 +945,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { EClassifier.class))); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), EClass.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), EClass.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), EClass.class)), + it.next()); } @Test @@ -723,10 +968,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -736,10 +988,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -754,10 +1013,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { new ClassType(getQueryEnvironment(), String.class), new EClassifierType( getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -772,10 +1038,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { new ClassType(getQueryEnvironment(), String.class), new EClassifierType( getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -786,10 +1059,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), String.class), it.next()); } @Test @@ -800,10 +1080,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -813,10 +1100,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -831,12 +1125,21 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { new ClassType(getQueryEnvironment(), String.class), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); assertTrue(next instanceof NothingType); assertEquals("expression in one must return a boolean", ((NothingType)next).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof NothingType); + assertEquals("expression in one must return a boolean", ((NothingType)next).getMessage()); } @Test @@ -853,12 +1156,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBoolean()))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBooleanObject()), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE + .getEBooleanObject()), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -878,12 +1188,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBoolean()))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBooleanObject()), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE + .getEBooleanObject()), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -899,13 +1216,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class))); argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -920,12 +1247,21 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { new ClassType(getQueryEnvironment(), String.class), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); assertTrue(next instanceof NothingType); assertEquals("expression in a reject must return a boolean", ((NothingType)next).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof NothingType); + assertEquals("expression in a reject must return a boolean", ((NothingType)next).getMessage()); } @Test @@ -943,12 +1279,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBoolean()))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), + new ClassType(getQueryEnvironment(), String.class)), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -968,12 +1311,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBoolean()))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -991,12 +1341,21 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { new ClassType(getQueryEnvironment(), String.class), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); assertTrue(next instanceof NothingType); assertEquals("expression in a select must return a boolean", ((NothingType)next).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof NothingType); + assertEquals("expression in a select must return a boolean", ((NothingType)next).getMessage()); } @Test @@ -1014,12 +1373,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBoolean()))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), + new ClassType(getQueryEnvironment(), String.class)), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1039,12 +1405,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE .getEBoolean()))); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1060,13 +1433,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { String.class))); argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -1078,13 +1461,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -1099,13 +1492,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), Double.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(3, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(3, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -1119,13 +1522,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), Double.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(3, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(3, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -1136,10 +1549,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); } @Test @@ -1149,10 +1569,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Integer.class), it.next()); } @Test @@ -1166,11 +1593,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); } @Test @@ -1182,11 +1617,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); } @Test @@ -1199,11 +1642,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); } @Test @@ -1217,11 +1668,19 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); argTypes.add(new ClassType(getQueryEnvironment(), Integer.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); } @Test @@ -1232,10 +1691,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Double.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Double.class), it.next()); } @Test @@ -1245,10 +1711,17 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { final List<IType> argTypes = new ArrayList<IType>(); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Double.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Double.class), it.next()); } @Test @@ -1262,13 +1735,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + String.class)), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), + Integer.class)), it.next()); } @Test @@ -1280,13 +1763,23 @@ public class CollectionServicesValidationTest extends AbstractServicesTest { argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class))); argTypes.add(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class))); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), it.next()); assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), String.class)), + it.next()); + assertEquals(new SetType(getQueryEnvironment(), new ClassType(getQueryEnvironment(), Integer.class)), + it.next()); } } diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/ComparableServicesValidationTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/ComparableServicesValidationTest.java index 6a073d2fc..e8bddab92 100644 --- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/ComparableServicesValidationTest.java +++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/ComparableServicesValidationTest.java @@ -12,7 +12,9 @@ package org.eclipse.acceleo.query.services.tests; import java.util.ArrayList; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Set; import org.eclipse.acceleo.query.runtime.IService; @@ -40,10 +42,17 @@ public class ComparableServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), String.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -54,10 +63,17 @@ public class ComparableServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), String.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -68,10 +84,17 @@ public class ComparableServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), String.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -82,10 +105,17 @@ public class ComparableServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), String.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); } @Test @@ -96,10 +126,17 @@ public class ComparableServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), String.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } @Test @@ -110,10 +147,17 @@ public class ComparableServicesValidationTest extends AbstractServicesTest { argTypes.add(new ClassType(getQueryEnvironment(), String.class)); argTypes.add(new ClassType(getQueryEnvironment(), String.class)); - final Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new ClassType(getQueryEnvironment(), Boolean.class), it.next()); } } diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/EObjectServicesValidationTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/EObjectServicesValidationTest.java index b0f358e92..9ff971c3f 100644 --- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/EObjectServicesValidationTest.java +++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/EObjectServicesValidationTest.java @@ -12,7 +12,9 @@ package org.eclipse.acceleo.query.services.tests; import java.util.ArrayList; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Set; import org.eclipse.acceleo.query.runtime.IService; @@ -68,8 +70,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -77,6 +78,17 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 can't be contained", ((NothingType)((ICollectionType)next) .getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals("EClassifier=eCls1 can't be contained", ((NothingType)((ICollectionType)next) + .getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -91,8 +103,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(7, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -109,6 +120,26 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEOperation())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClassifier())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(7, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEModelElement())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEEnum())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEOperation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -123,12 +154,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -154,8 +192,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -163,6 +200,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifierLiteral=eCls1 can't contain directly or indirectly EClassifier=eCls2", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling ancestors:\nEClassifierLiteral=eCls1 can't contain directly or indirectly EClassifier=eCls2", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -179,12 +228,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -201,12 +257,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -224,14 +287,23 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getETypedElement())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEOperation())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getETypedElement())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEOperation())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -248,12 +320,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -284,8 +363,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -293,6 +371,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifierLiteral=eCls2 can't contain directly or indirectly EClassifier=eCls1", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling ancestors:\nEClassifierLiteral=eCls2 can't contain directly or indirectly EClassifier=eCls1", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -317,8 +407,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -326,6 +415,17 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 doesn't contain any other EClass", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals("EClassifier=eCls1 doesn't contain any other EClass", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -340,8 +440,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(11, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -366,6 +465,34 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEEnumLiteral())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEParameter())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(11, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEStringToStringMapEntry())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getETypeParameter())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEOperation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEStructuralFeature())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEGenericType())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEEnumLiteral())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEParameter())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -380,12 +507,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -411,8 +545,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -420,6 +553,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 can't contain EClassifierLiteral=eCls2 direclty or indirectly", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling eAllContents:\nEClassifier=eCls1 can't contain EClassifierLiteral=eCls2 direclty or indirectly", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -436,12 +581,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -458,12 +610,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -481,8 +640,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(9, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -503,6 +661,30 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEEnumLiteral())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEParameter())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(9, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEModelElement())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getETypeParameter())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEOperation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEStructuralFeature())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEEnumLiteral())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEParameter())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -519,12 +701,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -555,8 +744,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -564,6 +752,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 can't contain EClassifierLiteral=eCls2 direclty or indirectly", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling eAllContents:\nEClassifier=eCls1 can't contain EClassifierLiteral=eCls2 direclty or indirectly", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -578,12 +778,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it .next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it + .next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -608,13 +815,23 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); assertTrue(next instanceof NothingType); assertEquals("EClassifier=eCls1 can't be contained", ((NothingType)next).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof NothingType); + assertEquals( + "Nothing will be left after calling eContainer:\nEClassifier=eCls1 can't be contained", + ((NothingType)next).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -629,14 +846,23 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage()), it .next()); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEAnnotation()), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage()), it + .next()); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEAnnotation()), + it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -698,12 +924,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject()), it .next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject()), it + .next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -729,14 +962,24 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); assertTrue(next instanceof NothingType); assertEquals("EClassifierLiteral=eCls1 can't contain directly or indirectly EClassifier=eCls2", ((NothingType)next).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof NothingType); + assertEquals( + "Nothing will be left after calling eContainer:\nEClassifierLiteral=eCls1 can't contain directly or indirectly EClassifier=eCls2", + ((NothingType)next).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -753,12 +996,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it .next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it + .next()); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -775,12 +1025,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it .next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it + .next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -798,8 +1055,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals( @@ -807,6 +1063,17 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { .next()); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEOperation()), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals( + new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getETypedElement()), it + .next()); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEOperation()), + it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -823,12 +1090,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it .next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass()), it + .next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -859,14 +1133,24 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); assertTrue(next instanceof NothingType); assertEquals("EClassifierLiteral=eCls2 can't contain directly or indirectly EClassifier=eCls1", ((NothingType)next).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof NothingType); + assertEquals( + "Nothing will be left after calling eContainer:\nEClassifierLiteral=eCls2 can't contain directly or indirectly EClassifier=eCls1", + ((NothingType)next).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -891,8 +1175,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -900,6 +1183,17 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 doesn't contain any other EClass", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals("EClassifier=eCls1 doesn't contain any other EClass", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -914,8 +1208,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(3, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -924,6 +1217,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEClassifier())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(3, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -938,12 +1243,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -969,8 +1281,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -978,6 +1289,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 can't contain EClassifierLiteral=eCls2 direclty", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling eContents:\nEClassifier=eCls1 can't contain EClassifierLiteral=eCls2 direclty", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -994,12 +1317,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1016,12 +1346,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1039,8 +1376,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(3, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -1049,6 +1385,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEClassifier())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(3, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1065,12 +1413,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1101,8 +1456,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1110,6 +1464,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 can't contain EClassifierLiteral=eCls2 direclty", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling eContents:\nEClassifier=eCls1 can't contain EClassifierLiteral=eCls2 direclty", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -1125,12 +1491,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEJavaObject()), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEJavaObject()), + it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1145,8 +1518,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(4, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -1157,6 +1529,20 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEPackage())), it.next()); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(4, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEFactory())), it.next()); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1172,8 +1558,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(4, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -1184,6 +1569,20 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEPackage())), it.next()); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(4, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEFactory())), it.next()); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1200,12 +1599,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1222,12 +1628,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEEnum())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEEnum())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1245,8 +1658,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(4, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -1257,6 +1669,20 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEPackage())), it.next()); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(4, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEFactory())), it.next()); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1271,12 +1697,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1293,12 +1726,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEEnum())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SetType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEEnum())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1315,8 +1755,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1324,6 +1763,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=EPackage don't have inverse to EClassifierLiteral=EOperation", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SetType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling eInverse:\nEClassifier=EPackage don't have inverse to EClassifierLiteral=EOperation", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1348,8 +1799,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1357,6 +1807,17 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 can't have following siblings", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals("EClassifier=eCls1 can't have following siblings", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -1372,8 +1833,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(3, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -1382,6 +1842,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEPackage())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(3, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1397,12 +1869,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1429,8 +1908,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1438,6 +1916,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifierLiteral=eCls1 can't be a following sibling of EClassifier=eCls2", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling followingSiblings:\nEClassifierLiteral=eCls1 can't be a following sibling of EClassifier=eCls2", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -1455,12 +1945,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClassifier())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1477,12 +1974,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1500,14 +2004,23 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(2, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEPackage())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getENamedElement())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(2, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getENamedElement())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1524,12 +2037,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1561,8 +2081,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1570,6 +2089,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifierLiteral=eCls2 can't be a following sibling of EClassifier=eCls1", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling followingSiblings:\nEClassifierLiteral=eCls2 can't be a following sibling of EClassifier=eCls1", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -1594,8 +2125,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1603,6 +2133,17 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 can't have preceding siblings", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals("EClassifier=eCls1 can't have preceding siblings", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -1618,8 +2159,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(4, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -1630,6 +2170,20 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEStringToStringMapEntry())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(4, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEStringToStringMapEntry())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1645,12 +2199,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1677,8 +2238,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1686,6 +2246,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifierLiteral=eCls1 can't be a preceding sibling of EClassifier=eCls2", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling precedingSiblings:\nEClassifierLiteral=eCls1 can't be a preceding sibling of EClassifier=eCls2", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -1703,12 +2275,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClassifier())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1725,12 +2304,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1748,8 +2334,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(3, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -1758,6 +2343,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEPackage())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getENamedElement())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(3, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getENamedElement())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1774,12 +2371,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1811,8 +2415,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1820,6 +2423,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifierLiteral=eCls2 can't be a preceding sibling of EClassifier=eCls1", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling precedingSiblings:\nEClassifierLiteral=eCls2 can't be a preceding sibling of EClassifier=eCls1", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -1844,8 +2459,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1853,6 +2467,17 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifier=eCls1 can't have siblings", ((NothingType)((ICollectionType)next) .getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals("EClassifier=eCls1 can't have siblings", ((NothingType)((ICollectionType)next) + .getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -1867,8 +2492,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(5, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -1881,6 +2505,22 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEStringToStringMapEntry())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(5, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEAnnotation())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEStringToStringMapEntry())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1895,12 +2535,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEObject())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEObject())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1926,8 +2573,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -1935,6 +2581,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifierLiteral=eCls1 can't be a sibling of EClassifier=eCls2", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling siblings:\nEClassifierLiteral=eCls1 can't be a sibling of EClassifier=eCls2", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } @@ -1952,12 +2610,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClassifier())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1974,12 +2639,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -1997,8 +2669,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(3, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), @@ -2007,6 +2678,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { EcorePackage.eINSTANCE.getEPackage())), it.next()); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getENamedElement())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(3, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClassifier())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEPackage())), it.next()); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getENamedElement())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -2023,12 +2706,19 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), EcorePackage.eINSTANCE.getEClass())), it.next()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + assertEquals(new SequenceType(getQueryEnvironment(), new EClassifierType(getQueryEnvironment(), + EcorePackage.eINSTANCE.getEClass())), it.next()); } finally { getQueryEnvironment().removeEPackage(EcorePackage.eINSTANCE.getNsPrefix()); } @@ -2059,8 +2749,7 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { try { getQueryEnvironment().registerEPackage(ePkg); - final Set<IType> types = service - .getType(getValidationServices(), getQueryEnvironment(), argTypes); + Set<IType> types = service.getType(getValidationServices(), getQueryEnvironment(), argTypes); assertEquals(1, types.size()); Iterator<IType> it = types.iterator(); IType next = it.next(); @@ -2068,6 +2757,18 @@ public class EObjectServicesValidationTest extends AbstractServicesTest { assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); assertEquals("EClassifierLiteral=eCls2 can't be a sibling of EClassifier=eCls1", ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); + + final Map<List<IType>, Set<IType>> allTypes = new LinkedHashMap<List<IType>, Set<IType>>(); + allTypes.put(argTypes, types); + types = service.validateAllType(getValidationServices(), getQueryEnvironment(), allTypes); + assertEquals(1, types.size()); + it = types.iterator(); + next = it.next(); + assertTrue(next instanceof SequenceType); + assertTrue(((ICollectionType)next).getCollectionType() instanceof NothingType); + assertEquals( + "Nothing will be left after calling siblings:\nEClassifierLiteral=eCls2 can't be a sibling of EClassifier=eCls1", + ((NothingType)((ICollectionType)next).getCollectionType()).getMessage()); } finally { getQueryEnvironment().removeEPackage(ePkg.getNsPrefix()); } |