|
21 | 21 |
|
22 | 22 | package org.omg.sysml.interactive.tests; |
23 | 23 |
|
| 24 | +import static org.junit.Assert.assertArrayEquals; |
24 | 25 | import static org.junit.Assert.assertEquals; |
25 | 26 | import static org.junit.Assert.assertFalse; |
26 | 27 | import static org.junit.Assert.assertNull; |
|
41 | 42 | import org.omg.sysml.lang.sysml.Expression; |
42 | 43 | import org.omg.sysml.lang.sysml.Feature; |
43 | 44 | import org.omg.sysml.lang.sysml.ItemUsage; |
| 45 | +import org.omg.sysml.lang.sysml.Membership; |
44 | 46 | import org.omg.sysml.lang.sysml.Namespace; |
45 | 47 | import org.omg.sysml.lang.sysml.Relationship; |
46 | 48 | import org.omg.sysml.lang.sysml.TriggerInvocationExpression; |
@@ -298,7 +300,34 @@ public void testEnumeratedValue() throws Exception { |
298 | 300 | variants = ((Definition)ownedMembers.get(1)).getVariant(); |
299 | 301 | List<EnumerationUsage> enumeratedValues = ((EnumerationDefinition)ownedMembers.get(1)).getEnumeratedValue(); |
300 | 302 | assertEquals("enum def (variants.size)", 2, variants.size()); |
301 | | - assertEquals("enuim def (enumeratedValues.size)", 2, enumeratedValues.size()); |
| 303 | + assertEquals("enum def (enumeratedValues.size)", 2, enumeratedValues.size()); |
302 | 304 | assertEquals("enum def (enumeratedValues)", variants, enumeratedValues); |
303 | 305 | } |
| 306 | + |
| 307 | + public final String circularRecursiveImportTest = |
| 308 | + "package Test {\n" |
| 309 | + + " package P1 {\n" |
| 310 | + + " public import Test::**;\n" |
| 311 | + + " item def X;" |
| 312 | + + " }\n" |
| 313 | + + " package P2 {\n" |
| 314 | + + " public import Test::*::**;\n" |
| 315 | + + " item def Y;" |
| 316 | + + " }\n" |
| 317 | + + "}"; |
| 318 | + |
| 319 | + @Test |
| 320 | + public void testCircularRecursiveImport() throws Exception { |
| 321 | + SysMLInteractive instance = getSysMLInteractiveInstance(); |
| 322 | + SysMLInteractiveResult result = instance.process(circularRecursiveImportTest); |
| 323 | + Element root = result.getRootElement(); |
| 324 | + List<Element> elements = ((Namespace)root).getOwnedMember(); |
| 325 | + List<Element> ownedMembers = ((Namespace)elements.get(0)).getOwnedMember(); |
| 326 | + List<Membership> importedMemberships = ((Namespace)ownedMembers.get(0)).getImportedMembership(); |
| 327 | + assertArrayEquals("P1.importedMembers", new String[] {"Test", "P1", "P2", "X", "Y"}, |
| 328 | + importedMemberships.stream().map(Membership::getMemberElement).map(Element::getName).toArray()); |
| 329 | + importedMemberships = ((Namespace)ownedMembers.get(1)).getImportedMembership(); |
| 330 | + assertArrayEquals("P2.importedMembers", new String[] {"P1", "P2", "X", "Test", "Y"}, |
| 331 | + importedMemberships.stream().map(Membership::getMemberElement).map(Element::getName).toArray()); |
| 332 | + } |
304 | 333 | } |
0 commit comments