Update ChoiceSchemaNode design
[yangtools.git] / yang / yang-parser-impl / src / test / java / org / opendaylight / yangtools / yang / stmt / GroupingTest.java
index 2e7ca27eb13c2c72f56ae76232e25d0870892052..6381924a0d544b1c33b7c4660d3fcaf3f4484b91 100644 (file)
@@ -19,13 +19,16 @@ import java.text.ParseException;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
+import java.util.SortedMap;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
@@ -97,8 +100,8 @@ public class GroupingTest {
 
         // leaf address
         assertNotNull(refineLeaf);
-        assertEquals("IP address of target node", refineLeaf.getDescription());
-        assertEquals("address reference added by refine", refineLeaf.getReference());
+        assertEquals(Optional.of("IP address of target node"), refineLeaf.getDescription());
+        assertEquals(Optional.of("address reference added by refine"), refineLeaf.getReference());
         assertFalse(refineLeaf.isConfiguration());
         assertFalse(refineLeaf.getConstraints().isMandatory());
         final Set<MustDefinition> leafMustConstraints = refineLeaf.getConstraints().getMustConstraints();
@@ -111,21 +114,21 @@ public class GroupingTest {
         assertNotNull(refineContainer);
         final Set<MustDefinition> mustConstraints = refineContainer.getConstraints().getMustConstraints();
         assertTrue(mustConstraints.isEmpty());
-        assertEquals("description of port defined by refine", refineContainer.getDescription());
-        assertEquals("port reference added by refine", refineContainer.getReference());
+        assertEquals(Optional.of("description of port defined by refine"), refineContainer.getDescription());
+        assertEquals(Optional.of("port reference added by refine"), refineContainer.getReference());
         assertFalse(refineContainer.isConfiguration());
         assertTrue(refineContainer.isPresenceContainer());
 
         // list addresses
-        assertEquals("description of addresses defined by refine", refineList.getDescription());
-        assertEquals("addresses reference added by refine", refineList.getReference());
+        assertEquals(Optional.of("description of addresses defined by refine"), refineList.getDescription());
+        assertEquals(Optional.of("addresses reference added by refine"), refineList.getReference());
         assertFalse(refineList.isConfiguration());
         assertEquals(2, (int) refineList.getConstraints().getMinElements());
         assertNull(refineList.getConstraints().getMaxElements());
 
         // leaf id
         assertNotNull(refineInnerLeaf);
-        assertEquals("id of address", refineInnerLeaf.getDescription());
+        assertEquals(Optional.of("id of address"), refineInnerLeaf.getDescription());
     }
 
     @Test
@@ -189,9 +192,9 @@ public class GroupingTest {
         final LeafSchemaNode address_u = (LeafSchemaNode) destination.getDataChildByName(QName.create(
                 foo.getQNameModule(), "address"));
         assertNotNull(address_u);
-        assertEquals("1.2.3.4", address_u.getDefault());
-        assertEquals("IP address of target node", address_u.getDescription());
-        assertEquals("address reference added by refine", address_u.getReference());
+        assertEquals("1.2.3.4", address_u.getType().getDefaultValue());
+        assertEquals(Optional.of("IP address of target node"), address_u.getDescription());
+        assertEquals(Optional.of("address reference added by refine"), address_u.getReference());
         assertFalse(address_u.isConfiguration());
         assertTrue(address_u.isAddedByUses());
         assertFalse(address_u.getConstraints().isMandatory());
@@ -200,9 +203,9 @@ public class GroupingTest {
                 baz.getQNameModule(), "address"));
         assertNotNull(address_g);
         assertFalse(address_g.isAddedByUses());
-        assertNull(address_g.getDefault());
-        assertEquals("Target IP address", address_g.getDescription());
-        assertNull(address_g.getReference());
+        assertNull(address_g.getType().getDefaultValue());
+        assertEquals(Optional.of("Target IP address"), address_g.getDescription());
+        assertFalse(address_g.getReference().isPresent());
         assertTrue(address_g.isConfiguration());
         assertFalse(address_u.equals(address_g));
         assertTrue(address_g.getConstraints().isMandatory());
@@ -289,9 +292,9 @@ public class GroupingTest {
         assertNotNull(how_u);
         TestUtils.checkIsAddedByUses(how_u, true);
         assertFalse(how_u.isAugmenting());
-        final Set<ChoiceCaseNode> cases_u = how_u.getCases();
+        final SortedMap<QName, ChoiceCaseNode> cases_u = how_u.getCases();
         assertEquals(2, cases_u.size());
-        final ChoiceCaseNode interval = how_u.getCaseNodeByName("interval");
+        final ChoiceCaseNode interval = how_u.findCaseNodes("interval").iterator().next();
         assertFalse(interval.isAugmenting());
         final LeafSchemaNode name = (LeafSchemaNode) interval.getDataChildByName(QName.create(foo.getQNameModule(),
                 "name"));
@@ -310,9 +313,9 @@ public class GroupingTest {
         final LeafSchemaNode address_u = (LeafSchemaNode) foo.getDataChildByName(QName.create(foo.getQNameModule(),
                 "address"));
         assertNotNull(address_u);
-        assertNull(address_u.getDefault());
-        assertEquals("Target IP address", address_u.getDescription());
-        assertNull(address_u.getReference());
+        assertNull(address_u.getType().getDefaultValue());
+        assertEquals(Optional.of("Target IP address"), address_u.getDescription());
+        assertFalse(address_u.getReference().isPresent());
         assertTrue(address_u.isConfiguration());
         assertTrue(address_u.isAddedByUses());
 
@@ -320,9 +323,9 @@ public class GroupingTest {
                 baz.getQNameModule(), "address"));
         assertNotNull(address_g);
         assertFalse(address_g.isAddedByUses());
-        assertNull(address_g.getDefault());
-        assertEquals("Target IP address", address_g.getDescription());
-        assertNull(address_g.getReference());
+        assertNull(address_g.getType().getDefaultValue());
+        assertEquals(Optional.of("Target IP address"), address_g.getDescription());
+        assertFalse(address_g.getReference().isPresent());
         assertTrue(address_g.isConfiguration());
         assertFalse(address_u.equals(address_g));
         assertEquals(address_g, SchemaNodeUtils.getRootOriginalIfPossible(address_u));
@@ -376,10 +379,10 @@ public class GroupingTest {
         assertFalse(node_u.equals(node_g));
 
         final UsesNode un = uses.iterator().next();
-        final Set<AugmentationSchema> usesAugments = un.getAugmentations();
+        final Set<AugmentationSchemaNode> usesAugments = un.getAugmentations();
         assertEquals(1, usesAugments.size());
-        final AugmentationSchema augment = usesAugments.iterator().next();
-        assertEquals("inner augment", augment.getDescription());
+        final AugmentationSchemaNode augment = usesAugments.iterator().next();
+        assertEquals(Optional.of("inner augment"), augment.getDescription());
         final Collection<DataSchemaNode> children = augment.getChildNodes();
         assertEquals(1, children.size());
         final DataSchemaNode leaf = children.iterator().next();
@@ -404,24 +407,26 @@ public class GroupingTest {
         for (final GroupingDefinition gd : groupings) {
             final String name = gd.getQName().getLocalName();
             switch (name) {
-            case "grouping-U":
-                gu = gd;
-                break;
-            case "grouping-V":
-                gv = gd;
-                break;
-            case "grouping-X":
-                gx = gd;
-                break;
-            case "grouping-Y":
-                gy = gd;
-                break;
-            case "grouping-Z":
-                gz = gd;
-                break;
-            case "grouping-ZZ":
-                gzz = gd;
-                break;
+                case "grouping-U":
+                    gu = gd;
+                    break;
+                case "grouping-V":
+                    gv = gd;
+                    break;
+                case "grouping-X":
+                    gx = gd;
+                    break;
+                case "grouping-Y":
+                    gy = gd;
+                    break;
+                case "grouping-Z":
+                    gz = gd;
+                    break;
+                case "grouping-ZZ":
+                    gzz = gd;
+                    break;
+                default:
+                    break;
             }
         }
         assertNotNull(gu);
@@ -431,9 +436,8 @@ public class GroupingTest {
         assertNotNull(gz);
         assertNotNull(gzz);
 
-        final QNameModule expectedModule = QNameModule.create(
-            URI.create("urn:grouping:cascade-uses"), QName.parseRevision("2013-07-18"));
-        SchemaPath expectedPath;
+        final QNameModule expectedModule = QNameModule.create(URI.create("urn:grouping:cascade-uses"),
+            Revision.of("2013-07-18"));
 
         // grouping-U
         Collection<DataSchemaNode> childNodes = gu.getChildNodes();
@@ -471,7 +475,7 @@ public class GroupingTest {
         // grouping-V/container-grouping-V
         assertNotNull(containerGroupingV);
         assertFalse(containerGroupingV.isAddedByUses());
-        expectedPath = TestUtils.createPath(true, expectedModule, "grouping-V", "container-grouping-V");
+        SchemaPath expectedPath = TestUtils.createPath(true, expectedModule, "grouping-V", "container-grouping-V");
         assertEquals(expectedPath, containerGroupingV.getPath());
         childNodes = containerGroupingV.getChildNodes();
         assertEquals(2, childNodes.size());