Skip to content

Commit 725b3b6

Browse files
committed
ST6RI-899 Added Junit test of variant and enumeratedValue.
Test passes for getVariant on a variantion item def, but it fails for and enum def.
1 parent 433a859 commit 725b3b6

1 file changed

Lines changed: 34 additions & 1 deletion

File tree

org.omg.sysml.interactive.tests/src/org/omg/sysml/interactive/tests/DerivedPropertyAndOperationTest.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*******************************************************************************
22
* SysML 2 Pilot Implementation
3-
* Copyright (c) 2021-2022 Model Driven Solutions, Inc.
3+
* Copyright (c) 2021-2022, 2025 Model Driven Solutions, Inc.
44
*
55
* This program is free software: you can redistribute it and/or modify
66
* it under the terms of the GNU Lesser General Public License as published by
@@ -36,6 +36,8 @@
3636
import org.omg.sysml.lang.sysml.AttributeUsage;
3737
import org.omg.sysml.lang.sysml.Definition;
3838
import org.omg.sysml.lang.sysml.Element;
39+
import org.omg.sysml.lang.sysml.EnumerationDefinition;
40+
import org.omg.sysml.lang.sysml.EnumerationUsage;
3941
import org.omg.sysml.lang.sysml.Expression;
4042
import org.omg.sysml.lang.sysml.Feature;
4143
import org.omg.sysml.lang.sysml.ItemUsage;
@@ -221,4 +223,35 @@ public void testDirectedUsage() throws Exception {
221223
assertEquals("constraint def (directedUsages)", directedFeatures.subList(0, 2), directedUsages);
222224
}
223225

226+
public final String enumeratedValueTest =
227+
"package Test {\n"
228+
+ " variation item def I {\n"
229+
+ " variant item i1;\n"
230+
+ " variant item i2;\n"
231+
+ " }"
232+
+ " enum def A {\n"
233+
+ " enum a1;\n"
234+
+ " enum a2;\n"
235+
+ " }"
236+
+ "}";
237+
238+
@Test
239+
public void testEnumeratedValue() throws Exception {
240+
SysMLInteractive instance = getSysMLInteractiveInstance();
241+
SysMLInteractiveResult result = instance.process(enumeratedValueTest);
242+
Element root = result.getRootElement();
243+
List<Element> elements = ((Namespace)root).getOwnedMember();
244+
List<Element> ownedMembers = ((Namespace)elements.get(0)).getOwnedMember();
245+
List<Usage> variants = ((Definition)ownedMembers.get(0)).getVariant();
246+
assertEquals("item def (variants.size)", 2, variants.size());
247+
248+
// Check that getting variant and enumeratedValue work for EnumerationDefinitions,
249+
// even though EnumerationDefinition::enumeratedValue redefines Definition::variant.
250+
251+
variants = ((Definition)ownedMembers.get(1)).getVariant();
252+
List<EnumerationUsage> enumeratedValues = ((EnumerationDefinition)ownedMembers.get(1)).getEnumeratedValue();
253+
assertEquals("enum def (variants.size)", 2, variants.size());
254+
assertEquals("enuim def (enumeratedValues.size)", 2, enumeratedValues.size());
255+
assertEquals("enum def (enumeratedValues)", variants, enumeratedValues);
256+
}
224257
}

0 commit comments

Comments
 (0)