From eb9f6347805839a745e61fdb48e65a42ffd75ef8 Mon Sep 17 00:00:00 2001 From: Kevin Kassin <kevinkassin@gmx.de> Date: Tue, 19 Sep 2017 22:26:25 +0200 Subject: [PATCH] Commit 19.9 22:25 migrated some more transformation testcases --- .../compartmentType_test_1.xmi | 98 +++++++------- .../compartmentType_test_2.xmi | 76 +++++++++++ .../compartmentType_test_3.xmi | 69 ++++++++++ .../compartmentType_test_4.xmi | 88 +++++++++++++ .../compartmentType_test_5.xmi | 78 +++++++++++ .../Fulfillment/fulfillment_test_1.xmi | 93 +++++++++++++ .../testcases/Group/group_test_1.xmi | 66 ++++++++++ .../Inheritance/inheritance_test_1.xmi | 79 +++++++++++ .../Inheritance/inheritance_test_2.xmi | 98 ++++++++++++++ .../Inheritance/inheritance_test_3.xmi | 96 ++++++++++++++ .../NaturalType/naturalType_test_1.xmi | 68 ++++++++++ .../NaturalType/naturalType_test_2.xmi | 80 ++++++++++++ .../NaturalType/naturalType_test_3.xmi | 72 ++++++++++ .../NaturalType/naturalType_test_4.xmi | 96 ++++++++++++++ .../NaturalType/naturalType_test_5.xmi | 96 ++++++++++++++ .../Relationship/relationship_test_1.xmi | 94 +++++++++++++ .../Relationship/relationship_test_2.xmi | 112 ++++++++++++++++ .../Relationship/relationship_test_3.xmi | 112 ++++++++++++++++ .../Relationship/relationship_test_4.xmi | 120 +++++++++++++++++ .../Relationship/relationship_test_5.xmi | 115 ++++++++++++++++ .../Relationship/relationship_test_6.xmi | 115 ++++++++++++++++ .../Relationship/relationship_test_7.xmi | 123 ++++++++++++++++++ .../Relationship/relationship_test_8.xmi | 123 ++++++++++++++++++ .../epsilon/CompartmentType.etl | 3 +- 24 files changed, 2117 insertions(+), 53 deletions(-) create mode 100644 org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_2.xmi create mode 100644 org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_3.xmi create mode 100644 org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_4.xmi create mode 100644 org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_5.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Fulfillment/fulfillment_test_1.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Group/group_test_1.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_1.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_2.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_3.xmi create mode 100644 org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_1.xmi create mode 100644 org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_2.xmi create mode 100644 org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_3.xmi create mode 100644 org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_4.xmi create mode 100644 org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_5.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Relationship/relationship_test_1.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Relationship/relationship_test_2.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Relationship/relationship_test_3.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Relationship/relationship_test_4.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Relationship/relationship_test_5.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Relationship/relationship_test_6.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Relationship/relationship_test_7.xmi create mode 100644 org.framed.orm.transformation.test/testcases/Relationship/relationship_test_8.xmi diff --git a/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_1.xmi b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_1.xmi index 12ec824c..05c8c1be 100644 --- a/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_1.xmi +++ b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_1.xmi @@ -11,58 +11,54 @@ converted to CompartmentTypes and still have the same name </description> <framedModel> - <elements xsi:type="org.framed.iorm.model:Shape" name="compartmentType"> - <firstSegment/> - <secondSegment/> - <model/> - </elements> - <elements xsi:type="org.framed.iorm.model:Shape" name="compartmentType1"> - <firstSegment/> - <secondSegment/> - <model/> - </elements> - <framedConfiguration> - <features/> - <features name="Role_Types"/> - <features name="Role_Structure"/> - <features name="Role_Properties"/> - <features name="Role_Behavior"/> - <features name="Role_Inheritance"/> - <features name="Playable"/> - <features name="Players"/> - <features name="Naturals"/> - <features name="Roles"/> - <features name="Compartments"/> - <features name="Dates"/> - <features name="Dependent"/> - <features name="On_Compartments"/> - <features name="On_Relationships"/> - <features name="Role_Constraints"/> - <features name="Role_Implication"/> - <features name="Role_Prohibition"/> - <features name="Role_Equivalence"/> - <features name="Group_Constraints"/> - <features name="Occurrence_Constraints"/> - <features name="Relationships"/> - <features name="Relationship_Constraints"/> - <features name="Relationship_Cardinality"/> - <features name="Intra_Relationship_Constraints"/> - <features name="Parthood_Constraints"/> - <features name="Inter_Relationship_Constraints"/> - <features name="Compartment_Types"/> - <features name="Compartment_Structure"/> - <features name="Compartment_Properties"/> - <features name="Compartment_Behavior"/> - <features name="Compartment_Inheritance"/> - <features name="Participants"/> - <features name="Contains_Compartments"/> - <features name="Playable_by_Defining_Compartment"/> - <features name="Data_Types"/> - <features name="Data_Type_Inheritance"/> - </framedConfiguration> + <elements xsi:type="org.framed.iorm.model:Shape" name="CompType1" + type="CompartmentType"> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="CompType2" + type="CompartmentType" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> </framedModel> <cromModel> - <elements xsi:type="crom_l1_composed:CompartmentType" name="compartmentType"/> - <elements xsi:type="crom_l1_composed:CompartmentType" name="compartmentType1"/> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CompType1"> + </elements> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CompType2" /> </cromModel> </ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_2.xmi b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_2.xmi new file mode 100644 index 00000000..203c753b --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_2.xmi @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" xmlns:ts="http://org.framed/testmodel"> + <title> + Simple TestCase for CompartmentTypes + </title> + <description> + This test verifies that Shapes of type CompartmentType are + converted to CompartmentTypes and still have the same name and their attributes + </description> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="CompType1" + type="CompartmentType"> + <firstSegment> + <elements name="NamedElement0 : CompType2" /> + <elements name="NamedElement1 : CompType2" /> + <elements name="NamedElement2 : CompType2" /> + <elements name="NamedElement3 : CompType2" /> + <elements name="NamedElement4 : CompType2" /> + </firstSegment> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="CompType2" + type="NaturalType" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CompType1"> + <attributes name="NamedElement0" type="//@cromModel/@elements.1" /> + <attributes name="NamedElement1" type="//@cromModel/@elements.1"/> + <attributes name="NamedElement2" type="//@cromModel/@elements.1"/> + <attributes name="NamedElement3" type="//@cromModel/@elements.1"/> + <attributes name="NamedElement4" type="//@cromModel/@elements.1"/> + </elements> + <elements xsi:type="crom_l1_composed:NaturalType" name="CompType2" /> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_3.xmi b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_3.xmi new file mode 100644 index 00000000..46382954 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_3.xmi @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" xmlns:ts="http://org.framed/testmodel"> + <title> + Test for CompartmentType with a child model containing one RoleType. + </title> + <description> + This test verifies that Shapes of type CompartmentType are converted correctly, and + that referenced child elements are inserted in the CROM model as expected. + </description> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" type="CompartmentType" name="Bank"> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" type="RoleType" name="Consultant"> + <description name="1..*"/> + </elements> + </model> + </elements> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:CompartmentType" name="Bank"> + <parts lower="1"> + <role xsi:type="crom_l1_composed:RoleType" name="Consultant"> + </role> + </parts> + </elements> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_4.xmi b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_4.xmi new file mode 100644 index 00000000..60ab62c7 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_4.xmi @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" xmlns:ts="http://org.framed/testmodel"> + <title> + Test for CompartmentType with two children of type RoleType, which are in relation. + </title> + <description> + This test verifies that Shapes of type CompartmentType are converted correctly, and + that referenced child elements are inserted in the CROM model as expected. Additionally, relationships + between child elements are tested. + </description> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" type="CompartmentType" name="Bank"> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" type="RoleType" name="Consultant" + outgoingRelations="//@framedModel/@elements.0/@model/@elements.2"> + <description name="1..*"/> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" type="RoleType" name="Customer" + incomingRelations="//@framedModel/@elements.0/@model/@elements.2"> + <description name="0..*"/> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="testRelation" type="Relationship" + source="//@framedModel/@elements.0/@model/@elements.0" + target="//@framedModel/@elements.0/@model/@elements.1"/> + </model> + </elements> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:CompartmentType" name="Bank"> + <parts lower="1"> + <role xsi:type="crom_l1_composed:RoleType" name="Consultant" + outgoing="//@cromModel/@elements.0/@relationships.0"> + </role> + </parts> + <parts lower="0"> + <role xsi:type="crom_l1_composed:RoleType" name="Customer" + incoming="//@cromModel/@elements.0/@relationships.0"> + </role> + </parts> + <relationships name="testRelation"> + <first lower="0" holder="//@cromModel/@elements.0/@parts.0/@role"/> + <second lower="0" holder="//@cromModel/@elements.0/@parts.1/@role"/> + </relationships> + </elements> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_5.xmi b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_5.xmi new file mode 100644 index 00000000..b95e9bf0 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/CompartmentType/compartmentType_test_5.xmi @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" xmlns:ts="http://org.framed/testmodel"> + <title> + Test for CompartmentType with a RoleGroup. + </title> + <description> + This test verifies that Shapes of type CompartmentType are converted correctly, and + that a RoleGroup is correctly transformed as child element. + </description> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" type="CompartmentType" name="Bank"> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" type="RoleGroup" name="RoleGroup1"> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" type="RoleType" name="Consultant"> + <description name="1..*"/> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" type="RoleType" name="Customer"> + <description name="0..*"/> + </elements> + </model> + </elements> + </model> + </elements> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:CompartmentType" name="Bank"> + <parts> + <role xsi:type="crom_l1_composed:RoleGroup" name="RoleGroup1"> + <elements xsi:type="crom_l1_composed:RoleType" name="Consultant"/> + <elements xsi:type="crom_l1_composed:RoleType" name="Customer"/> + </role> + </parts> + </elements> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Fulfillment/fulfillment_test_1.xmi b/org.framed.orm.transformation.test/testcases/Fulfillment/fulfillment_test_1.xmi new file mode 100644 index 00000000..b92c2c5e --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Fulfillment/fulfillment_test_1.xmi @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="Simple TestCase for Fulfillments" + description="Simple TestCase for Fulfillments"> + <framedModel> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="NaturalType1" + outgoingRelations="//@framedModel/@elements.1" + type="NaturalType"/> + <elements + xsi:type="org.framed.iorm.model:Relation" + name="testFulfillment" + type="Fulfillment" + target="//@framedModel/@elements.2" + source="//@framedModel/@elements.0" + referencedRoles="//@framedModel/@elements.2/@model/@elements.0"/> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="compType1" + incomingRelations="//@framedModel/@elements.1"> + <model> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="roleType1" + type="RoleType"/> + </model> + </elements> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements + xsi:type="crom_l1_composed:NaturalType" + name="NaturalType1"/> + <elements + xsi:type="crom_l1_composed:CompartmentType" + name="compType1"> + <parts> + <role + xsi:type="crom_l1_composed:RoleType" + name="roleType1"/> + </parts> + </elements> + <relations + xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.0/@role" + filler="//@cromModel/@elements.0"/> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Group/group_test_1.xmi b/org.framed.orm.transformation.test/testcases/Group/group_test_1.xmi new file mode 100644 index 00000000..324def43 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Group/group_test_1.xmi @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" xmlns:ts="http://org.framed/testmodel"> + <title> + Test for a simple Group shape with one contained NaturalType. + </title> + <description> + This test verifies that Groups and contained elements are transformed correctly. + </description> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="GroupTest" type="Group"> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" name="NaturalType1" type="NaturalType"> + <firstSegment/> + <secondSegment/> + </elements> + </model> + </elements> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:Group" name="GroupTest"> + <elements xsi:type="crom_l1_composed:NaturalType" name="NaturalType1"/> + </elements> + </cromModel> +</ts:TestCase> \ No newline at end of file diff --git a/org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_1.xmi b/org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_1.xmi new file mode 100644 index 00000000..489b898d --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_1.xmi @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="Simple TestCase for Inheritance Relation" + description="Simple TestCase for Inheritance Relation"> + <framedModel> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="CompType1" + outgoingRelations="//@framedModel/@elements.2"/> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="CompType2" + incomingRelations="//@framedModel/@elements.2"/> + <elements + xsi:type="org.framed.iorm.model:Relation" + type="Inheritance" + target="//@framedModel/@elements.1" + source="//@framedModel/@elements.0"/> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements + xsi:type="crom_l1_composed:CompartmentType" + name="CompType1" + outgoing="//@cromModel/@relations.0"/> + <elements + xsi:type="crom_l1_composed:CompartmentType" + name="CompType2" + incoming="//@cromModel/@relations.0"/> + <relations + xsi:type="crom_l1_composed:CompartmentInheritance" + super="//@cromModel/@elements.1" + sub="//@cromModel/@elements.0"/> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_2.xmi b/org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_2.xmi new file mode 100644 index 00000000..8e716f60 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_2.xmi @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="Simple TestCase for Inheritance from inherited element" + description="TestCase to test inheritance over inheritance ;)"> + <framedModel> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="CompType1" + outgoingRelations="//@framedModel/@elements.2"/> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="CompType2" + incomingRelations="//@framedModel/@elements.2" + outgoingRelations="//@framedModel/@elements.4"/> + <elements + xsi:type="org.framed.iorm.model:Relation" + type="Inheritance" + target="//@framedModel/@elements.1" + source="//@framedModel/@elements.0"/> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="CompType3" + incomingRelations="//@framedModel/@elements.4"/> + <elements + xsi:type="org.framed.iorm.model:Relation" + type="Inheritance" + target="//@framedModel/@elements.3" + source="//@framedModel/@elements.1"/> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements + xsi:type="crom_l1_composed:CompartmentType" + name="CompType1" + outgoing="//@cromModel/@relations.0"/> + <elements + xsi:type="crom_l1_composed:CompartmentType" + name="CompType2" + incoming="//@cromModel/@relations.0" + outgoing="//@cromModel/@relations.1"/> + <elements + xsi:type="crom_l1_composed:CompartmentType" + name="CompType3" + incoming="//@cromModel/@relations.1"/> + <relations + xsi:type="crom_l1_composed:CompartmentInheritance" + super="//@cromModel/@elements.1" + sub="//@cromModel/@elements.0"/> + <relations + xsi:type="crom_l1_composed:CompartmentInheritance" + super="//@cromModel/@elements.2" + sub="//@cromModel/@elements.1"/> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_3.xmi b/org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_3.xmi new file mode 100644 index 00000000..7e158d8e --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Inheritance/inheritance_test_3.xmi @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="TestCase to test double inheritance" + description="TestCase to test double inheritance"> + <framedModel> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="CompType1" + outgoingRelations="//@framedModel/@elements.2 //@framedModel/@elements.4"/> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="CompType2" + incomingRelations="//@framedModel/@elements.2"/> + <elements + xsi:type="org.framed.iorm.model:Relation" + type="Inheritance" + target="//@framedModel/@elements.1" + source="//@framedModel/@elements.0"/> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="CompType3" + incomingRelations="//@framedModel/@elements.4"/> + <elements + xsi:type="org.framed.iorm.model:Relation" + type="Inheritance" + target="//@framedModel/@elements.3" + source="//@framedModel/@elements.0"/> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements + xsi:type="crom_l1_composed:CompartmentType" + name="CompType1" + outgoing="//@cromModel/@relations.0 //@cromModel/@relations.1"/> + <elements + xsi:type="crom_l1_composed:CompartmentType" + name="CompType2" + incoming="//@cromModel/@relations.0"/> + <elements + xsi:type="crom_l1_composed:CompartmentType" + name="CompType3" + incoming="//@cromModel/@relations.1"/> + <relations + xsi:type="crom_l1_composed:CompartmentInheritance" + super="//@cromModel/@elements.1" + sub="//@cromModel/@elements.0"/> + <relations + xsi:type="crom_l1_composed:CompartmentInheritance" + super="//@cromModel/@elements.2" + sub="//@cromModel/@elements.0"/> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_1.xmi b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_1.xmi new file mode 100644 index 00000000..ec096a74 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_1.xmi @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="
		Simple TestCase for Natural Types
	" + description="
		This test verifies that Shapes of type NaturalType are
		converted to NaturalTypes and still have the same name
	"> + <framedModel> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="NaturalType1" + type="NaturalType"/> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="NaturalType2" + type="NaturalType"/> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements + xsi:type="crom_l1_composed:NaturalType" + name="NaturalType1"/> + <elements + xsi:type="crom_l1_composed:NaturalType" + name="NaturalType2"/> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_2.xmi b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_2.xmi new file mode 100644 index 00000000..ff503696 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_2.xmi @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="
		Simple TestCase for Natural Types with attributes
	" + description="
		This test verifies that Shapes of type NaturalType are
		converted to NaturalTypes with their attributes which are contained in
		the first segment of a shape.
	"> + <framedModel> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="NaturalType1" + type="NaturalType"> + <firstSegment> + <elements + name="NamedElement0 : NaturalType1"/> + <elements + name="NamedElement1 : NaturalType2"/> + </firstSegment> + </elements> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="NaturalType2" + type="NaturalType"/> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements + xsi:type="crom_l1_composed:NaturalType" + name="NaturalType1"> + <attributes + name="NamedElement0" type="//@cromModel/@elements.0"/> + <attributes + name="NamedElement1" type="//@cromModel/@elements.1"/> + </elements> + <elements + xsi:type="crom_l1_composed:NaturalType" + name="NaturalType2"/> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_3.xmi b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_3.xmi new file mode 100644 index 00000000..04bf89c5 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_3.xmi @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" xmlns:ts="http://org.framed/testmodel"> + <title> + Test to ensure operations can be transformed. + </title> + <description> + This test checks if two operations without parameters can be converted. + </description> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="NaturalType1" + type="NaturalType"> + <firstSegment /> + <secondSegment> + <elements name="operation1() : NaturalType2" /> + <elements name="operation2() : NaturalType1" /> + </secondSegment> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="NaturalType2" + type="NaturalType" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:NaturalType" name="NaturalType1"> + <operations name="operation1" type="//@cromModel/@elements.1" + operation="" /> + <operations name="operation2" type="//@cromModel/@elements.0" + operation="" /> + </elements> + <elements xsi:type="crom_l1_composed:NaturalType" name="NaturalType2" /> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_4.xmi b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_4.xmi new file mode 100644 index 00000000..18df19f2 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_4.xmi @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="
		Test to ensure operations can be transformed basically
	" + description="
		This test checks if two operations with parameters can be converted.
	"> + <framedModel> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="NaturalType1" + type="NaturalType"> + <firstSegment/> + <secondSegment> + <elements + name="operation1(para1 : NaturalType1) : NaturalType2"/> + <elements + name="operation2(para1 : NaturalType1, para2:NaturalType2) : NaturalType1"/> + </secondSegment> + </elements> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="NaturalType2" + type="NaturalType"/> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements + xsi:type="crom_l1_composed:NaturalType" + name="NaturalType1"> + <operations + name="operation1" + type="//@cromModel/@elements.1" + operation=""> + <params + name="para1" + type="//@cromModel/@elements.0"/> + </operations> + <operations + name="operation2" + type="//@cromModel/@elements.0" + operation=""> + <params + name="para1" + type="//@cromModel/@elements.0"/> + <params + name="para2" + type="//@cromModel/@elements.1"/> + </operations> + </elements> + <elements + xsi:type="crom_l1_composed:NaturalType" + name="NaturalType2"/> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_5.xmi b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_5.xmi new file mode 100644 index 00000000..df11709c --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/NaturalType/naturalType_test_5.xmi @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="
		Test to ensure operations can be transformed basically
	" + description="
		This test checks if two operations with parameters with some crazy syntax can be converted.
	"> + <framedModel> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="NaturalType1" + type="NaturalType"> + <firstSegment/> + <secondSegment> + <elements + name="operation1(para1:NaturalType1): NaturalType2"/> + <elements + name="operation2(para1 : NaturalType1, para2:NaturalType2) :NaturalType1"/> + </secondSegment> + </elements> + <elements + xsi:type="org.framed.iorm.model:Shape" + name="NaturalType2" + type="NaturalType"/> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements + xsi:type="crom_l1_composed:NaturalType" + name="NaturalType1"> + <operations + name="operation1" + type="//@cromModel/@elements.1" + operation=""> + <params + name="para1" + type="//@cromModel/@elements.0"/> + </operations> + <operations + name="operation2" + type="//@cromModel/@elements.0" + operation=""> + <params + name="para1" + type="//@cromModel/@elements.0"/> + <params + name="para2" + type="//@cromModel/@elements.1"/> + </operations> + </elements> + <elements + xsi:type="crom_l1_composed:NaturalType" + name="NaturalType2"/> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_1.xmi b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_1.xmi new file mode 100644 index 00000000..ecda0876 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_1.xmi @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="Simple TestCase for Relationships" + description="Simple TestCase for Relationships"> +<framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="CT"> + <firstSegment /> + <secondSegment /> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT1" + incomingRelations="//@framedModel/@elements.0/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT2" + outgoingRelations="//@framedModel/@elements.0/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="rst" + type="Relationship" target="//@framedModel/@elements.0/@model/@elements.0" + source="//@framedModel/@elements.0/@model/@elements.1"> + <sourceLabel name="*" /> + <targetLabel name="*" /> + </elements> + </model> + </elements> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CT"> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT1" + incoming="//@cromModel/@elements.0/@relationships.0" /> + </parts> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT2" + outgoing="//@cromModel/@elements.0/@relationships.0" /> + </parts> + <relationships name="rst"> + <first holder="//@cromModel/@elements.0/@parts.1/@role" /> + <second holder="//@cromModel/@elements.0/@parts.0/@role" /> + </relationships> + </elements> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_2.xmi b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_2.xmi new file mode 100644 index 00000000..bef123cc --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_2.xmi @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" xmlns:ts="http://org.framed/testmodel" + title="TestCase for cyclic relationships" + description="TestCase for cyclic relationships where one RoleType is referenced by a cyclic relationship to another RoleType"> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="NT" + outgoingRelations="//@framedModel/@elements.2" type="NaturalType"> + <firstSegment /> + <secondSegment /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="CT" + incomingRelations="//@framedModel/@elements.2"> + <firstSegment /> + <secondSegment /> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT1" + incomingRelations="//@framedModel/@elements.1/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT2" + outgoingRelations="//@framedModel/@elements.1/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="rst" + type="Relationship" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.3"> + <sourceLabel name="*" /> + <targetLabel name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Cyclic" + type="Cyclic" target="//@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1"> + </elements> + </model> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" type="Fulfillment" + target="//@framedModel/@elements.1" source="//@framedModel/@elements.0" + referencedRoles="//@framedModel/@elements.1/@model/@elements.0 //@framedModel/@elements.1/@model/@elements.1" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:NaturalType" name="NT" /> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CT"> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT1" + incoming="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT2" + outgoing="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <relationships name="rst"> + <first holder="//@cromModel/@elements.1/@parts.1/@role" /> + <second holder="//@cromModel/@elements.1/@parts.0/@role" /> + </relationships> + <constraints xsi:type="crom_l1_composed:Cyclic" + relation="//@cromModel/@elements.1/@relationships.0" /> + </elements> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.0/@role" filler="//@cromModel/@elements.0" /> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.1/@role" filler="//@cromModel/@elements.0" /> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_3.xmi b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_3.xmi new file mode 100644 index 00000000..32b84ed7 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_3.xmi @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" xmlns:ts="http://org.framed/testmodel" + title="TestCase for irreflexive relationships" + description="TestCase for irreflexive relationships where one RoleType is referenced by a irreflexive relationship to another RoleType"> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="NT" + outgoingRelations="//@framedModel/@elements.2" type="NaturalType"> + <firstSegment /> + <secondSegment /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="CT" + incomingRelations="//@framedModel/@elements.2"> + <firstSegment /> + <secondSegment /> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT1" + incomingRelations="//@framedModel/@elements.1/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT2" + outgoingRelations="//@framedModel/@elements.1/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="rst" + type="Relationship" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.3"> + <sourceLabel name="*" /> + <targetLabel name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Irreflexive" + type="Irreflexive" target="//@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1"> + </elements> + </model> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" type="Fulfillment" + target="//@framedModel/@elements.1" source="//@framedModel/@elements.0" + referencedRoles="//@framedModel/@elements.1/@model/@elements.0 //@framedModel/@elements.1/@model/@elements.1" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:NaturalType" name="NT" /> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CT"> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT1" + incoming="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT2" + outgoing="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <relationships name="rst"> + <first holder="//@cromModel/@elements.1/@parts.1/@role" /> + <second holder="//@cromModel/@elements.1/@parts.0/@role" /> + </relationships> + <constraints xsi:type="crom_l1_composed:Irreflexive" + relation="//@cromModel/@elements.1/@relationships.0" /> + </elements> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.0/@role" filler="//@cromModel/@elements.0" /> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.1/@role" filler="//@cromModel/@elements.0" /> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_4.xmi b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_4.xmi new file mode 100644 index 00000000..db61f391 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_4.xmi @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" xmlns:ts="http://org.framed/testmodel" + title="TestCase for cyclic,irreflexive relationships" + description="TestCase for cyclic,irreflexive relationships where one RoleType is referenced by a cyclic,irreflexive relationship to another RoleType"> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="NT" + outgoingRelations="//@framedModel/@elements.2" type="NaturalType"> + <firstSegment /> + <secondSegment /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="CT" + incomingRelations="//@framedModel/@elements.2"> + <firstSegment /> + <secondSegment /> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT1" + incomingRelations="//@framedModel/@elements.1/@model/@elements.2 //@framedModel/@elements.1/@model/@elements.3 //@framedModel/@elements.1/@model/@elements.4" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT2" + outgoingRelations="//@framedModel/@elements.1/@model/@elements.2 //@framedModel/@elements.1/@model/@elements.3 //@framedModel/@elements.1/@model/@elements.4" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="rst" + type="Relationship" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.3 //@framedModel/@elements.1/@model/@elements.4"> + <sourceLabel name="*" /> + <targetLabel name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Irreflexive" + type="Irreflexive" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.2"> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Cyclic" + type="Cyclic" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.2"> + </elements> + </model> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" type="Fulfillment" + target="//@framedModel/@elements.1" source="//@framedModel/@elements.0" + referencedRoles="//@framedModel/@elements.1/@model/@elements.0 //@framedModel/@elements.1/@model/@elements.1" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:NaturalType" name="NT" /> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CT"> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT1" + incoming="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT2" + outgoing="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <relationships name="rst"> + <first holder="//@cromModel/@elements.1/@parts.1/@role" /> + <second holder="//@cromModel/@elements.1/@parts.0/@role" /> + </relationships> + <constraints xsi:type="crom_l1_composed:Irreflexive" + relation="//@cromModel/@elements.1/@relationships.0" /> + <constraints xsi:type="crom_l1_composed:Cyclic" + relation="//@cromModel/@elements.1/@relationships.0" /> + </elements> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.0/@role" filler="//@cromModel/@elements.0" /> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.1/@role" filler="//@cromModel/@elements.0" /> + </cromModel> +</ts:TestCase> \ No newline at end of file diff --git a/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_5.xmi b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_5.xmi new file mode 100644 index 00000000..b0b3668e --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_5.xmi @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="TestCase for acyclic relationships" + description="TestCase for Acyclic relationships where one RoleType is referenced by an Acyclic relationship to another RoleType"> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="NT" + outgoingRelations="//@framedModel/@elements.2" type="NaturalType"> + <firstSegment /> + <secondSegment /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="CT" + incomingRelations="//@framedModel/@elements.2"> + <firstSegment /> + <secondSegment /> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT1" + incomingRelations="//@framedModel/@elements.1/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT2" + outgoingRelations="//@framedModel/@elements.1/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="rst" + type="Relationship" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.3"> + <sourceLabel name="*" /> + <targetLabel name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Acyclic" + type="Acyclic" target="//@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1"> + </elements> + </model> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" type="Fulfillment" + target="//@framedModel/@elements.1" source="//@framedModel/@elements.0" + referencedRoles="//@framedModel/@elements.1/@model/@elements.0 //@framedModel/@elements.1/@model/@elements.1" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:NaturalType" name="NT" /> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CT"> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT1" + incoming="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT2" + outgoing="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <relationships name="rst"> + <first holder="//@cromModel/@elements.1/@parts.1/@role" /> + <second holder="//@cromModel/@elements.1/@parts.0/@role" /> + </relationships> + <constraints xsi:type="crom_l1_composed:Acyclic" + relation="//@cromModel/@elements.1/@relationships.0" /> + </elements> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.0/@role" filler="//@cromModel/@elements.0" /> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.1/@role" filler="//@cromModel/@elements.0" /> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_6.xmi b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_6.xmi new file mode 100644 index 00000000..35cceec0 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_6.xmi @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="TestCase for reflexive relationships" + description="TestCase for Reflexive relationships where one RoleType is referenced by a Reflexive relationship to another RoleType"> +<framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="NT" + outgoingRelations="//@framedModel/@elements.2" type="NaturalType"> + <firstSegment /> + <secondSegment /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="CT" + incomingRelations="//@framedModel/@elements.2"> + <firstSegment /> + <secondSegment /> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT1" + incomingRelations="//@framedModel/@elements.1/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT2" + outgoingRelations="//@framedModel/@elements.1/@model/@elements.2" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="rst" + type="Relationship" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.3"> + <sourceLabel name="*" /> + <targetLabel name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Reflexive" + type="Reflexive" target="//@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1"> + </elements> + </model> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" type="Fulfillment" + target="//@framedModel/@elements.1" source="//@framedModel/@elements.0" + referencedRoles="//@framedModel/@elements.1/@model/@elements.0 //@framedModel/@elements.1/@model/@elements.1" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:NaturalType" name="NT" /> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CT"> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT1" + incoming="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT2" + outgoing="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <relationships name="rst"> + <first holder="//@cromModel/@elements.1/@parts.1/@role" /> + <second holder="//@cromModel/@elements.1/@parts.0/@role" /> + </relationships> + <constraints xsi:type="crom_l1_composed:Reflexive" + relation="//@cromModel/@elements.1/@relationships.0" /> + </elements> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.0/@role" filler="//@cromModel/@elements.0" /> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.1/@role" filler="//@cromModel/@elements.0" /> + </cromModel> +</ts:TestCase> diff --git a/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_7.xmi b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_7.xmi new file mode 100644 index 00000000..bea377d1 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_7.xmi @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="TestCase for cyclic, reflexive relationships" + description="TestCase for cyclic, reflexive relationships where one RoleType is referenced by a cyclic, reflexive relationship to another RoleType"> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="NT" + outgoingRelations="//@framedModel/@elements.2" type="NaturalType"> + <firstSegment /> + <secondSegment /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="CT" + incomingRelations="//@framedModel/@elements.2"> + <firstSegment /> + <secondSegment /> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT1" + incomingRelations="//@framedModel/@elements.1/@model/@elements.2 //@framedModel/@elements.1/@model/@elements.3 //@framedModel/@elements.1/@model/@elements.4" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT2" + outgoingRelations="//@framedModel/@elements.1/@model/@elements.2 //@framedModel/@elements.1/@model/@elements.3 //@framedModel/@elements.1/@model/@elements.4" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="rst" + type="Relationship" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.3 //@framedModel/@elements.1/@model/@elements.4"> + <sourceLabel name="*" /> + <targetLabel name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Reflexive" + type="Reflexive" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.2"> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Cyclic" + type="Cyclic" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.2"> + </elements> + </model> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" type="Fulfillment" + target="//@framedModel/@elements.1" source="//@framedModel/@elements.0" + referencedRoles="//@framedModel/@elements.1/@model/@elements.0 //@framedModel/@elements.1/@model/@elements.1" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:NaturalType" name="NT" /> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CT"> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT1" + incoming="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT2" + outgoing="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <relationships name="rst"> + <first holder="//@cromModel/@elements.1/@parts.1/@role" /> + <second holder="//@cromModel/@elements.1/@parts.0/@role" /> + </relationships> + <constraints xsi:type="crom_l1_composed:Reflexive" + relation="//@cromModel/@elements.1/@relationships.0" /> + <constraints xsi:type="crom_l1_composed:Cyclic" + relation="//@cromModel/@elements.1/@relationships.0" /> + </elements> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.0/@role" filler="//@cromModel/@elements.0" /> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.1/@role" filler="//@cromModel/@elements.0" /> + </cromModel> +</ts:TestCase> \ No newline at end of file diff --git a/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_8.xmi b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_8.xmi new file mode 100644 index 00000000..3eb57a75 --- /dev/null +++ b/org.framed.orm.transformation.test/testcases/Relationship/relationship_test_8.xmi @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="ASCII"?> +<ts:TestCase + xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:crom_l1_composed="platform:/resource/org.rosi.crom.metamodel/" + xmlns:org.framed.iorm.model="http://iorm/1.0" + xmlns:ts="http://org.framed/testmodel" + title="TestCase for acyclic, irreflexive relationships" + description="TestCase for acyclic, irreflexive relationships where one RoleType is referenced by a acyclic, irreflexive relationship to another RoleType"> + <framedModel> + <elements xsi:type="org.framed.iorm.model:Shape" name="NT" + outgoingRelations="//@framedModel/@elements.2" type="NaturalType"> + <firstSegment /> + <secondSegment /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="CT" + incomingRelations="//@framedModel/@elements.2"> + <firstSegment /> + <secondSegment /> + <model> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT1" + incomingRelations="//@framedModel/@elements.1/@model/@elements.2 //@framedModel/@elements.1/@model/@elements.3 //@framedModel/@elements.1/@model/@elements.4" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Shape" name="RT2" + outgoingRelations="//@framedModel/@elements.1/@model/@elements.2 //@framedModel/@elements.1/@model/@elements.3 //@framedModel/@elements.1/@model/@elements.4" + type="RoleType"> + <firstSegment /> + <secondSegment /> + <description name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="rst" + type="Relationship" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.3 //@framedModel/@elements.1/@model/@elements.4"> + <sourceLabel name="*" /> + <targetLabel name="*" /> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Irreflexive" + type="Irreflexive" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.2"> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" name="Acyclic" + type="Acyclic" target="//@framedModel/@elements.1/@model/@elements.0" + source="//@framedModel/@elements.1/@model/@elements.1" + referencedRelation="//@framedModel/@elements.1/@model/@elements.2"> + </elements> + </model> + </elements> + <elements xsi:type="org.framed.iorm.model:Relation" type="Fulfillment" + target="//@framedModel/@elements.1" source="//@framedModel/@elements.0" + referencedRoles="//@framedModel/@elements.1/@model/@elements.0 //@framedModel/@elements.1/@model/@elements.1" /> + <framedConfiguration> + <features/> + <features name="Role_Types"/> + <features name="Role_Structure"/> + <features name="Role_Properties" manuallySelected="true"/> + <features name="Role_Behavior"/> + <features name="Role_Inheritance" manuallySelected="true"/> + <features name="Playable"/> + <features name="Players"/> + <features name="Naturals"/> + <features name="Roles"/> + <features name="Compartments" manuallySelected="true"/> + <features name="Dates" manuallySelected="true"/> + <features name="Dependent"/> + <features name="On_Compartments"/> + <features name="On_Relationships"/> + <features name="Role_Constraints"/> + <features name="Role_Implication" manuallySelected="true"/> + <features name="Role_Prohibition" manuallySelected="true"/> + <features name="Role_Equivalence"/> + <features name="Group_Constraints" manuallySelected="true"/> + <features name="Occurrence_Constraints" manuallySelected="true"/> + <features name="Relationships"/> + <features name="Relationship_Constraints"/> + <features name="Relationship_Cardinality" manuallySelected="true"/> + <features name="Intra_Relationship_Constraints"/> + <features name="Parthood_Constraints" manuallySelected="true"/> + <features name="Inter_Relationship_Constraints" manuallySelected="true"/> + <features name="Compartment_Types"/> + <features name="Compartment_Structure"/> + <features name="Compartment_Properties" manuallySelected="true"/> + <features name="Compartment_Behavior"/> + <features name="Compartment_Inheritance" manuallySelected="true"/> + <features name="Participants"/> + <features name="Contains_Compartments" manuallySelected="true"/> + <features name="Playable_by_Defining_Compartment" manuallySelected="true"/> + <features name="Data_Types"/> + <features name="Data_Type_Inheritance" manuallySelected="true"/> + </framedConfiguration> + </framedModel> + <cromModel> + <elements xsi:type="crom_l1_composed:NaturalType" name="NT" /> + <elements xsi:type="crom_l1_composed:CompartmentType" name="CT"> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT1" + incoming="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <parts> + <role xsi:type="crom_l1_composed:RoleType" name="RT2" + outgoing="//@cromModel/@elements.1/@relationships.0" /> + </parts> + <relationships name="rst"> + <first holder="//@cromModel/@elements.1/@parts.1/@role" /> + <second holder="//@cromModel/@elements.1/@parts.0/@role" /> + </relationships> + <constraints xsi:type="crom_l1_composed:Irreflexive" + relation="//@cromModel/@elements.1/@relationships.0" /> + <constraints xsi:type="crom_l1_composed:Acyclic" + relation="//@cromModel/@elements.1/@relationships.0" /> + </elements> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.0/@role" filler="//@cromModel/@elements.0" /> + <relations xsi:type="crom_l1_composed:Fulfillment" + filled="//@cromModel/@elements.1/@parts.1/@role" filler="//@cromModel/@elements.0" /> + </cromModel> +</ts:TestCase> \ No newline at end of file diff --git a/org.framed.orm.transformation/epsilon/CompartmentType.etl b/org.framed.orm.transformation/epsilon/CompartmentType.etl index c1ad43ac..518f4f50 100644 --- a/org.framed.orm.transformation/epsilon/CompartmentType.etl +++ b/org.framed.orm.transformation/epsilon/CompartmentType.etl @@ -23,9 +23,8 @@ rule CompartmentType // iterate over all children of the compartment type for (elem : source!ModelElement in children.elements) { - elem.println(); + var e = elem.equivalent(); - e.println(); if (e == null) { continue; } if (e.instanceOf(target!AbstractRole)) { // ROLE -- GitLab