[571005] Failing test
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/models/uml/Bug571005.profile.uml b/tests/org.eclipse.ocl.examples.xtext.tests/models/uml/Bug571005.profile.uml
new file mode 100644
index 0000000..6363a74
--- /dev/null
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/models/uml/Bug571005.profile.uml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="_9qywsGEHEeu3-bh5n6XVFQ" name="ValidationProblem" metaclassReference="_CtE-0GEIEeu3-bh5n6XVFQ _oTto8GEIEeu3-bh5n6XVFQ _SpPEEGEJEeu3-bh5n6XVFQ _ztDd8GYlEeuLiryWOk9R1g">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_CtE-0GEIEeu3-bh5n6XVFQ" alias="Element">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_oTto8GEIEeu3-bh5n6XVFQ" alias="Dependency">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_SpPEEGEJEeu3-bh5n6XVFQ" alias="NamedElement">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_ztDd8GYlEeuLiryWOk9R1g" alias="Classifier">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+ </elementImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_9tQ14GEHEeu3-bh5n6XVFQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_9tRc8GEHEeu3-bh5n6XVFQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_DZkRYGEIEeu3-bh5n6XVFQ" name="Farm">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_TTuLgGEJEeu3-bh5n6XVFQ" name="base_NamedElement" association="_TTsWUGEJEeu3-bh5n6XVFQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TTuLgWEJEeu3-bh5n6XVFQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr1IQGYgEeuLiryWOk9R1g" name="animal" type="_BfN1AGYgEeuLiryWOk9R1g" isReadOnly="true" isDerived="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KvOAwGYgEeuLiryWOk9R1g"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KvS5QGYgEeuLiryWOk9R1g" value="*"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_mKYVYGYgEeuLiryWOk9R1g" name="spec" type="_BfN1AGYgEeuLiryWOk9R1g">
+ <language>OCL</language>
+ <body>Has.allInstances()->select(base_Dependency.client->includes(self.base_NamedElement)).base_Dependency.supplier.extension_Animal->asSet()</body>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rd_kEGYgEeuLiryWOk9R1g" name="chicken" type="_NgdZUGYgEeuLiryWOk9R1g" isReadOnly="true" isDerived="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_suzrsGYgEeuLiryWOk9R1g"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_su9csGYgEeuLiryWOk9R1g" value="*"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_x_lo0GYgEeuLiryWOk9R1g" name="spec" type="_NgdZUGYgEeuLiryWOk9R1g">
+ <language>OCL</language>
+ <body>self.animal->selectByKind(Chicken)</body>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zCTqEGYgEeuLiryWOk9R1g" name="duck" type="_OjZdAGYgEeuLiryWOk9R1g" isReadOnly="true" isDerived="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0yGMsGYgEeuLiryWOk9R1g"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0yPWoGYgEeuLiryWOk9R1g" value="*"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_4RymsGYgEeuLiryWOk9R1g" name="spec" type="_OjZdAGYgEeuLiryWOk9R1g">
+ <language>OCL</language>
+ <body>self.animal->selectByKind(Duck)</body>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_akAb0GanEeuaDpe9qBEE2w" name="allAnimals" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_egrswGanEeuaDpe9qBEE2w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eg5vMGanEeuaDpe9qBEE2w" value="*"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_hO_tIGanEeuaDpe9qBEE2w" name="spec">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <language>OCL</language>
+ <body>Has.allInstances()->select(base_Dependency.client->includes(self.base_NamedElement)).base_Dependency.supplier->asSet()</body>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qaa64GanEeuaDpe9qBEE2w" name="allAnimalsEverywhere" type="_BfN1AGYgEeuLiryWOk9R1g" isReadOnly="true" isDerived="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_slN-gGanEeuaDpe9qBEE2w"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_slSP8GanEeuaDpe9qBEE2w" value="*"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_vf61EGanEeuaDpe9qBEE2w" name="spec" type="_BfN1AGYgEeuLiryWOk9R1g">
+ <language>OCL</language>
+ <body>Animal.allInstances()</body>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ov85AGEIEeu3-bh5n6XVFQ" name="Has">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_v4vgoWEIEeu3-bh5n6XVFQ" name="base_Dependency" association="_v4u5kGEIEeu3-bh5n6XVFQ">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v4vgomEIEeu3-bh5n6XVFQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_v4u5kGEIEeu3-bh5n6XVFQ" name="E_Has_Dependency1" memberEnd="_v4vgoGEIEeu3-bh5n6XVFQ _v4vgoWEIEeu3-bh5n6XVFQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_v4vgoGEIEeu3-bh5n6XVFQ" name="extension_Has" type="_ov85AGEIEeu3-bh5n6XVFQ" aggregation="composite" association="_v4u5kGEIEeu3-bh5n6XVFQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_TTsWUGEJEeu3-bh5n6XVFQ" name="E_Farm_NamedElement1" memberEnd="_TTtkcGEJEeu3-bh5n6XVFQ _TTuLgGEJEeu3-bh5n6XVFQ">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_TTtkcGEJEeu3-bh5n6XVFQ" name="extension_Farm" type="_DZkRYGEIEeu3-bh5n6XVFQ" aggregation="composite" association="_TTsWUGEJEeu3-bh5n6XVFQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_BfN1AGYgEeuLiryWOk9R1g" name="Animal" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_CqswsGYgEeuLiryWOk9R1g" name="base_NamedElement" association="_CqrikGYgEeuLiryWOk9R1g">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CqswsWYgEeuLiryWOk9R1g"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_CqrikGYgEeuLiryWOk9R1g" name="E_Animal_NamedElement1" memberEnd="_CqsJoGYgEeuLiryWOk9R1g _CqswsGYgEeuLiryWOk9R1g">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_CqsJoGYgEeuLiryWOk9R1g" name="extension_Animal" type="_BfN1AGYgEeuLiryWOk9R1g" aggregation="composite" association="_CqrikGYgEeuLiryWOk9R1g"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_NgdZUGYgEeuLiryWOk9R1g" name="Chicken">
+ <generalization xmi:type="uml:Generalization" xmi:id="_SRmNEGYgEeuLiryWOk9R1g" general="_BfN1AGYgEeuLiryWOk9R1g"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_OjZdAGYgEeuLiryWOk9R1g" name="Duck">
+ <generalization xmi:type="uml:Generalization" xmi:id="_S8e9IGYgEeuLiryWOk9R1g" general="_BfN1AGYgEeuLiryWOk9R1g"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_7PB_QGhiEeuxTMF8JHSJ-w" general="_5HcAoGhiEeuxTMF8JHSJ-w"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_EGRFsWhjEeuxTMF8JHSJ-w" name="base_NamedElement" redefinedProperty="_CqswsGYgEeuLiryWOk9R1g __PBp8GhiEeuxTMF8JHSJ-w" association="_EGQeoGhjEeuxTMF8JHSJ-w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EGRFsmhjEeuxTMF8JHSJ-w"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_5HcAoGhiEeuxTMF8JHSJ-w" name="CanFly" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__PBp8GhiEeuxTMF8JHSJ-w" name="base_NamedElement" association="__O-moGhiEeuxTMF8JHSJ-w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__PBp8WhiEeuxTMF8JHSJ-w"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="__O-moGhiEeuxTMF8JHSJ-w" name="E_CanFly_NamedElement1" memberEnd="__PBC4GhiEeuxTMF8JHSJ-w __PBp8GhiEeuxTMF8JHSJ-w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="__PBC4GhiEeuxTMF8JHSJ-w" name="extension_CanFly" type="_5HcAoGhiEeuxTMF8JHSJ-w" aggregation="composite" association="__O-moGhiEeuxTMF8JHSJ-w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_EGQeoGhjEeuxTMF8JHSJ-w" name="E_Duck_NamedElement18" memberEnd="_EGRFsGhjEeuxTMF8JHSJ-w _EGRFsWhjEeuxTMF8JHSJ-w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EGRFsGhjEeuxTMF8JHSJ-w" name="extension_Duck" type="_OjZdAGYgEeuLiryWOk9R1g" aggregation="composite" association="_EGQeoGhjEeuxTMF8JHSJ-w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_QYS4AGhjEeuxTMF8JHSJ-w" name="InverseDuck">
+ <generalization xmi:type="uml:Generalization" xmi:id="_UW2_UGhjEeuxTMF8JHSJ-w" general="_5HcAoGhiEeuxTMF8JHSJ-w"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_VpkkYGhjEeuxTMF8JHSJ-w" general="_BfN1AGYgEeuLiryWOk9R1g"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_WxE_AGhjEeuxTMF8JHSJ-w" name="base_NamedElement" redefinedProperty="__PBp8GhiEeuxTMF8JHSJ-w _CqswsGYgEeuLiryWOk9R1g" association="_WxB7sGhjEeuxTMF8JHSJ-w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WxE_AWhjEeuxTMF8JHSJ-w"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_WxB7sGhjEeuxTMF8JHSJ-w" name="E_InverseDuck_NamedElement20" memberEnd="_WxDw4GhjEeuxTMF8JHSJ-w _WxE_AGhjEeuxTMF8JHSJ-w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_WxDw4GhjEeuxTMF8JHSJ-w" name="extension_InverseDuck" type="_QYS4AGhjEeuxTMF8JHSJ-w" aggregation="composite" association="_WxB7sGhjEeuxTMF8JHSJ-w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_SoF68GhkEeuxTMF8JHSJ-w" name="CanSwim" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VU3qQGhkEeuxTMF8JHSJ-w" name="base_NamedElement" association="_VU2cIGhkEeuxTMF8JHSJ-w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VU3qQWhkEeuxTMF8JHSJ-w"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_VU2cIGhkEeuxTMF8JHSJ-w" name="E_CanSwim_NamedElement1" memberEnd="_VU3DMGhkEeuxTMF8JHSJ-w _VU3qQGhkEeuxTMF8JHSJ-w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_VU3DMGhkEeuxTMF8JHSJ-w" name="extension_CanSwim" type="_SoF68GhkEeuxTMF8JHSJ-w" aggregation="composite" association="_VU2cIGhkEeuxTMF8JHSJ-w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_WL4x0GhkEeuxTMF8JHSJ-w" name="Duck3">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ZxwsUGhkEeuxTMF8JHSJ-w" general="_5HcAoGhiEeuxTMF8JHSJ-w"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_aXugIGhkEeuxTMF8JHSJ-w" general="_SoF68GhkEeuxTMF8JHSJ-w"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bOskYGhkEeuxTMF8JHSJ-w" name="base_NamedElement" redefinedProperty="__PBp8GhiEeuxTMF8JHSJ-w _VU3qQGhkEeuxTMF8JHSJ-w" association="_bOrWQGhkEeuxTMF8JHSJ-w">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#NamedElement"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bOskYWhkEeuxTMF8JHSJ-w"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_bOrWQGhkEeuxTMF8JHSJ-w" name="E_Duck3_NamedElement24" memberEnd="_bOr9UGhkEeuxTMF8JHSJ-w _bOskYGhkEeuxTMF8JHSJ-w">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_bOr9UGhkEeuxTMF8JHSJ-w" name="extension_Duck3" type="_WL4x0GhkEeuxTMF8JHSJ-w" aggregation="composite" association="_bOrWQGhkEeuxTMF8JHSJ-w"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9rIH4GEHEeu3-bh5n6XVFQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9rIH4WEHEeu3-bh5n6XVFQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Profile>
+ <Ecore:EPackage xmi:id="_g7qLYGEKEeu3-bh5n6XVFQ" base_Package="_9qywsGEHEeu3-bh5n6XVFQ" packageName="validationproblem" nsPrefix="ValidationProblem" nsURI="http://www.papyrus.com/ValidationProblem/1" basePackage="com.validationproblem.profile" prefix="ValidationProblem"/>
+</xmi:XMI>
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java
index 9062007..536028a 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java
@@ -1335,6 +1335,46 @@
}
/**
+ * Verify that the static profile in Bug571005.uml model can be generated and compiled.
+ * @throws Throwable
+ */
+ public void testBug571005_uml() throws Throwable {
+ doTestRunnable(new TestRunnable() {
+ @Override
+ public void runWithThrowable() throws Exception {
+ TestOCL ocl1 = createOCL();
+ String testFileStem = "Bug571005";
+ String testProjectName = testFileStem; //"bug571005";
+ // TestFile umlModelFile = getTestFile(testFileStem + ".uml", ocl, getTestModelURI("models/uml/" + testFileStem + ".uml"));
+ TestFile umlProfileFile = getTestFile(testFileStem + ".profile.uml", ocl1, getTestModelURI("models/uml/" + testFileStem + ".profile.uml"));
+ Resource umlProfileResource = loadUmlProfile(ocl1.getResourceSet(), umlProfileFile.getURI());
+ String ecoreFileContent = createUMLEcoreModelContent(umlProfileResource);
+ String genmodelFileContent = createUMLGenModelContent(umlProfileResource, testFileStem, null);
+ createManifestFile();
+ createTestFileWithContent(getTestProject().getOutputFile(testFileStem + ".profile.ecore"), ecoreFileContent);
+ URI genModelURI = createTestFileWithContent(getTestProject().getOutputFile(testFileStem + ".profile.genmodel"), genmodelFileContent);
+ Path genModelPath = new Path("/" + getTestProject().getName() + "/" + testFileStem + ".profile.genmodel");
+ //
+ TestUMLImporter importer = new TestUMLImporter(ocl1.getResourceSet().getPackageRegistry());
+ importer.reloadGenModel(genModelPath);
+ ocl1.dispose();
+ //
+ doGenModel(genModelURI);
+ //
+ TestOCL ocl2 = createOCL();
+ doUMLCompile(ocl2, testProjectName);
+
+ // Execute the profile
+ String qualifiedPackageClassName = "Bug571005.validationproblem.ValidationProblemPackage";
+ String pathMapName = "pathmap://VALIDATIONPROBLEM_PROFILE/";
+ // Resource umlModelResource = validateUmlModel(umlModelFile.getURI(), qualifiedPackageClassName, pathMapName);
+ // Model model = (Model)umlModelResource.getContents().get(0);
+ ocl2.dispose();
+ }
+ });
+ }
+
+ /**
* Verify that the static profile in Bug571407.profile.uml model can be generated and compiled.
*/
public void testBug571407_uml() throws Throwable {