|
37 | 37 | import org.omg.sysml.lang.sysml.Expression; |
38 | 38 | import org.omg.sysml.lang.sysml.ItemUsage; |
39 | 39 | import org.omg.sysml.lang.sysml.Namespace; |
| 40 | +import org.omg.sysml.lang.sysml.Relationship; |
40 | 41 | import org.omg.sysml.lang.sysml.TriggerInvocationExpression; |
41 | 42 | import org.omg.sysml.lang.sysml.Usage; |
42 | 43 | import org.omg.sysml.lang.sysml.ViewUsage; |
43 | 44 |
|
44 | | -public class DerivedPropertyTest extends SysMLInteractiveTest { |
| 45 | +public class DerivedPropertyAndOperationTest extends SysMLInteractiveTest { |
45 | 46 |
|
46 | 47 | @Test |
47 | 48 | public void testOwnedUsage() throws Exception { |
@@ -86,5 +87,67 @@ public void testViewExpose() throws Exception { |
86 | 87 | List<Element> exposed = view.getExposedElement(); |
87 | 88 | assertEquals(1, exposed.size()); |
88 | 89 | } |
| 90 | + |
| 91 | + public final String pathTest = |
| 92 | + "// Path of package: TopLevel\n" |
| 93 | + + "// Path of owning membership: TopLevel/owningMembership\n" |
| 94 | + + "package TopLevel {\n" |
| 95 | + + "\n" |
| 96 | + + " // Path of classifier: TopLevel::A\n" |
| 97 | + + " // Path of owning membership: TopLevel::A/owningMembership\n" |
| 98 | + + " part def A;\n" |
| 99 | + + "\n" |
| 100 | + + " // Path of classifier: TopLevel::B\n" |
| 101 | + + " // Path of owning membership: TopLevel::B/owningMembership\n" |
| 102 | + + " // Path of owned subclassification: TopLevel::B/1\n" |
| 103 | + + " part def B specializes A {\n" |
| 104 | + + " // Path of owning membership: TopLevel::B/2\n" |
| 105 | + + " // Path of feature: TopLevel::B/2/1\n" |
| 106 | + + " ref;\n" |
| 107 | + + " }\n" |
| 108 | + + "\n" |
| 109 | + + " // Path of owning membership: TopLevel/3\n" |
| 110 | + + " // Path of classifier: TopLevel/3/1\n" |
| 111 | + + " part def {\n" |
| 112 | + + " // Path of owning membership: TopLevel/3/1/1\n" |
| 113 | + + " // Path of feature: TopLevel/3/1/1/1\n" |
| 114 | + + " ref f;\n" |
| 115 | + + " }\n" |
| 116 | + + "}"; |
| 117 | + |
| 118 | + @Test |
| 119 | + public void testPathOperation() throws Exception { |
| 120 | + SysMLInteractive instance = getSysMLInteractiveInstance(); |
| 121 | + List<Element> elements = process(instance, pathTest); |
| 122 | + |
| 123 | + Namespace TopLevel = (Namespace)elements.get(0); |
| 124 | + assertEquals("TopLevel", TopLevel.path()); |
| 125 | + assertEquals("TopLevel/owningMembership", TopLevel.getOwningMembership().path()); |
| 126 | + |
| 127 | + Namespace A = (Namespace)TopLevel.getOwnedMember().get(0); |
| 128 | + assertEquals("TopLevel::A", A.path()); |
| 129 | + assertEquals("TopLevel::A/owningMembership", A.getOwningMembership().path()); |
| 130 | + |
| 131 | + Namespace B = (Namespace)TopLevel.getOwnedMember().get(1); |
| 132 | + assertEquals("TopLevel::B", B.path()); |
| 133 | + assertEquals("TopLevel::B/owningMembership", B.getOwningMembership().path()); |
| 134 | + |
| 135 | + Relationship B_1 = B.getOwnedRelationship().get(0); |
| 136 | + assertEquals("TopLevel::B/1", B_1.path()); |
| 137 | + |
| 138 | + Relationship B_2 = B.getOwnedRelationship().get(1); |
| 139 | + assertEquals("TopLevel::B/2", B_2.path()); |
| 140 | + assertEquals("TopLevel::B/2/1", B_2.getOwnedRelatedElement().get(0).path()); |
| 141 | + |
| 142 | + Relationship TopLevel_3 = TopLevel.getOwnedRelationship().get(2); |
| 143 | + assertEquals("TopLevel/3", TopLevel_3.path()); |
| 144 | + |
| 145 | + Element TopLevel_3_1 = TopLevel_3.getOwnedRelatedElement().get(0); |
| 146 | + assertEquals("TopLevel/3/1", TopLevel_3_1.path()); |
| 147 | + |
| 148 | + Relationship TopLevel_3_1_1 = TopLevel_3_1.getOwnedRelationship().get(0); |
| 149 | + assertEquals("TopLevel/3/1/1", TopLevel_3_1_1.path()); |
| 150 | + assertEquals("TopLevel/3/1/1/1", TopLevel_3_1_1.getOwnedRelatedElement().get(0).path()); |
| 151 | + } |
89 | 152 |
|
90 | 153 | } |
0 commit comments