Fix get{Min,Max}Elements() usage
[yangtools.git] / yang / yang-parser-rfc7950 / src / test / java / org / opendaylight / yangtools / yang / stmt / GroupingTest.java
index 0168ce568a56b437b07cd4d9e062dfdf09a3d5e1..75e53e5a5e63d19579d899faf339c7bb353a1054 100644 (file)
@@ -17,19 +17,16 @@ import java.io.IOException;
 import java.net.URI;
 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.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
+import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -45,6 +42,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
 import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
 import org.opendaylight.yangtools.yang.model.util.SchemaNodeUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
@@ -70,17 +68,17 @@ public class GroupingTest {
         final ContainerSchemaNode destination = (ContainerSchemaNode) peer.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "destination"));
 
-        final Set<UsesNode> usesNodes = destination.getUses();
+        final Collection<? extends UsesNode> usesNodes = destination.getUses();
         assertEquals(1, usesNodes.size());
         final UsesNode usesNode = usesNodes.iterator().next();
-        final Map<SchemaPath, SchemaNode> refines = usesNode.getRefines();
+        final Map<Descendant, SchemaNode> refines = usesNode.getRefines();
         assertEquals(4, refines.size());
 
         LeafSchemaNode refineLeaf = null;
         ContainerSchemaNode refineContainer = null;
         ListSchemaNode refineList = null;
         LeafSchemaNode refineInnerLeaf = null;
-        for (final Map.Entry<SchemaPath, SchemaNode> entry : refines.entrySet()) {
+        for (final Map.Entry<Descendant, SchemaNode> entry : refines.entrySet()) {
             final SchemaNode value = entry.getValue();
             if ("address".equals(value.getQName().getLocalName())) {
                 refineLeaf = (LeafSchemaNode) destination.getDataChildByName(value.getQName());
@@ -92,7 +90,7 @@ public class GroupingTest {
         }
 
         assertNotNull(refineList);
-        for (final Map.Entry<SchemaPath, SchemaNode> entry : refines.entrySet()) {
+        for (final Map.Entry<Descendant, SchemaNode> entry : refines.entrySet()) {
             final SchemaNode value = entry.getValue();
             if ("id".equals(value.getQName().getLocalName())) {
                 refineInnerLeaf = (LeafSchemaNode) refineList.getDataChildByName(value.getQName());
@@ -105,15 +103,15 @@ public class GroupingTest {
         assertEquals(Optional.of("address reference added by refine"), refineLeaf.getReference());
         assertFalse(refineLeaf.isConfiguration());
         assertFalse(refineLeaf.isMandatory());
-        final Collection<MustDefinition> leafMustConstraints = refineLeaf.getMustConstraints();
+        final Collection<? extends MustDefinition> leafMustConstraints = refineLeaf.getMustConstraints();
         assertEquals(1, leafMustConstraints.size());
         final MustDefinition leafMust = leafMustConstraints.iterator().next();
-        assertEquals("ifType != 'ethernet' or (ifType = 'ethernet' and ifMTU = 1500)", leafMust.toString());
+        assertEquals("ifType != 'ethernet' or (ifType = 'ethernet' and ifMTU = 1500)", leafMust.getXpath().toString());
         assertEquals(1, refineLeaf.getUnknownSchemaNodes().size());
 
         // container port
         assertNotNull(refineContainer);
-        final Collection<MustDefinition> mustConstraints = refineContainer.getMustConstraints();
+        final Collection<? extends MustDefinition> mustConstraints = refineContainer.getMustConstraints();
         assertTrue(mustConstraints.isEmpty());
         assertEquals(Optional.of("description of port defined by refine"), refineContainer.getDescription());
         assertEquals(Optional.of("port reference added by refine"), refineContainer.getReference());
@@ -126,7 +124,7 @@ public class GroupingTest {
         assertFalse(refineList.isConfiguration());
 
         final ElementCountConstraint constraint = refineList.getElementCountConstraint().get();
-        assertEquals(2, constraint.getMinElements().intValue());
+        assertEquals((Object) 2, constraint.getMinElements());
         assertNull(constraint.getMaxElements());
 
         // leaf id
@@ -137,10 +135,10 @@ public class GroupingTest {
     @Test
     public void testGrouping() {
         final Module testModule = TestUtils.findModule(ctx, "baz").get();
-        final Set<GroupingDefinition> groupings = testModule.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings = testModule.getGroupings();
         assertEquals(1, groupings.size());
         final GroupingDefinition grouping = groupings.iterator().next();
-        final Collection<DataSchemaNode> children = grouping.getChildNodes();
+        final Collection<? extends DataSchemaNode> children = grouping.getChildNodes();
         assertEquals(5, children.size());
     }
 
@@ -151,7 +149,7 @@ public class GroupingTest {
 
 
         // get grouping
-        final Set<GroupingDefinition> groupings = baz.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings = baz.getGroupings();
         assertEquals(1, groupings.size());
         final GroupingDefinition grouping = groupings.iterator().next();
 
@@ -162,16 +160,16 @@ public class GroupingTest {
                 foo.getQNameModule(), "destination"));
 
         // check uses
-        final Set<UsesNode> uses = destination.getUses();
+        final Collection<? extends UsesNode> uses = destination.getUses();
         assertEquals(1, uses.size());
 
         // check uses process
-        final AnyXmlSchemaNode data_u = (AnyXmlSchemaNode) destination.getDataChildByName(QName.create(
+        final AnyxmlSchemaNode data_u = (AnyxmlSchemaNode) destination.getDataChildByName(QName.create(
                 foo.getQNameModule(), "data"));
         assertNotNull(data_u);
         assertTrue(data_u.isAddedByUses());
 
-        final AnyXmlSchemaNode data_g = (AnyXmlSchemaNode) grouping.getDataChildByName(QName.create(
+        final AnyxmlSchemaNode data_g = (AnyxmlSchemaNode) grouping.getDataChildByName(QName.create(
                 baz.getQNameModule(), "data"));
         assertNotNull(data_g);
         assertFalse(data_g.isAddedByUses());
@@ -239,26 +237,23 @@ public class GroupingTest {
         assertEquals(addresses_g, SchemaNodeUtils.getRootOriginalIfPossible(addresses_u));
 
         // grouping defined by 'uses'
-        final Set<GroupingDefinition> groupings_u = destination.getGroupings();
-        assertEquals(1, groupings_u.size());
-        final GroupingDefinition grouping_u = groupings_u.iterator().next();
-        TestUtils.checkIsAddedByUses(grouping_u, true);
+        final Collection<? extends GroupingDefinition> groupings_u = destination.getGroupings();
+        assertEquals(0, groupings_u.size());
 
         // grouping defined in 'grouping' node
-        final Set<GroupingDefinition> groupings_g = grouping.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings_g = grouping.getGroupings();
         assertEquals(1, groupings_g.size());
         final GroupingDefinition grouping_g = groupings_g.iterator().next();
         TestUtils.checkIsAddedByUses(grouping_g, false);
-        assertFalse(grouping_u.equals(grouping_g));
 
-        final List<UnknownSchemaNode> nodes_u = destination.getUnknownSchemaNodes();
+        final Collection<? extends UnknownSchemaNode> nodes_u = destination.getUnknownSchemaNodes();
         assertEquals(1, nodes_u.size());
-        final UnknownSchemaNode node_u = nodes_u.get(0);
+        final UnknownSchemaNode node_u = nodes_u.iterator().next();
         assertTrue(node_u.isAddedByUses());
 
-        final List<UnknownSchemaNode> nodes_g = grouping.getUnknownSchemaNodes();
+        final Collection<? extends UnknownSchemaNode> nodes_g = grouping.getUnknownSchemaNodes();
         assertEquals(1, nodes_g.size());
-        final UnknownSchemaNode node_g = nodes_g.get(0);
+        final UnknownSchemaNode node_g = nodes_g.iterator().next();
         assertFalse(node_g.isAddedByUses());
         assertFalse(node_u.equals(node_g));
     }
@@ -269,21 +264,21 @@ public class GroupingTest {
         // suffix _g = defined in grouping
 
         // get grouping
-        final Set<GroupingDefinition> groupings = baz.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings = baz.getGroupings();
         assertEquals(1, groupings.size());
         final GroupingDefinition grouping = groupings.iterator().next();
 
         // check uses
-        final Set<UsesNode> uses = foo.getUses();
+        final Collection<? extends UsesNode> uses = foo.getUses();
         assertEquals(1, uses.size());
 
         // check uses process
-        final AnyXmlSchemaNode data_u = (AnyXmlSchemaNode) foo.getDataChildByName(QName.create(foo.getQNameModule(),
+        final AnyxmlSchemaNode data_u = (AnyxmlSchemaNode) foo.getDataChildByName(QName.create(foo.getQNameModule(),
                 "data"));
         assertNotNull(data_u);
         assertTrue(data_u.isAddedByUses());
 
-        final AnyXmlSchemaNode data_g = (AnyXmlSchemaNode) grouping.getDataChildByName(QName.create(
+        final AnyxmlSchemaNode data_g = (AnyxmlSchemaNode) grouping.getDataChildByName(QName.create(
             baz.getQNameModule(), "data"));
         assertNotNull(data_g);
         assertFalse(data_g.isAddedByUses());
@@ -295,9 +290,9 @@ public class GroupingTest {
         assertNotNull(how_u);
         TestUtils.checkIsAddedByUses(how_u, true);
         assertFalse(how_u.isAugmenting());
-        final SortedMap<QName, ChoiceCaseNode> cases_u = how_u.getCases();
+        final Collection<? extends CaseSchemaNode> cases_u = how_u.getCases();
         assertEquals(2, cases_u.size());
-        final ChoiceCaseNode interval = how_u.findCaseNodes("interval").iterator().next();
+        final CaseSchemaNode interval = how_u.findCaseNodes("interval").iterator().next();
         assertFalse(interval.isAugmenting());
         final LeafSchemaNode name = (LeafSchemaNode) interval.getDataChildByName(QName.create(foo.getQNameModule(),
                 "name"));
@@ -358,35 +353,32 @@ public class GroupingTest {
         assertEquals(addresses_g, SchemaNodeUtils.getRootOriginalIfPossible(addresses_u));
 
         // grouping defined by 'uses'
-        final Set<GroupingDefinition> groupings_u = foo.getGroupings();
-        assertEquals(1, groupings_u.size());
-        final GroupingDefinition grouping_u = groupings_u.iterator().next();
-        TestUtils.checkIsAddedByUses(grouping_u, true);
+        final Collection<? extends GroupingDefinition> groupings_u = foo.getGroupings();
+        assertEquals(0, groupings_u.size());
 
         // grouping defined in 'grouping' node
-        final Set<GroupingDefinition> groupings_g = grouping.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings_g = grouping.getGroupings();
         assertEquals(1, groupings_g.size());
         final GroupingDefinition grouping_g = groupings_g.iterator().next();
         TestUtils.checkIsAddedByUses(grouping_g, false);
-        assertFalse(grouping_u.equals(grouping_g));
 
-        final List<UnknownSchemaNode> nodes_u = foo.getUnknownSchemaNodes();
+        final Collection<? extends UnknownSchemaNode> nodes_u = foo.getUnknownSchemaNodes();
         assertEquals(1, nodes_u.size());
-        final UnknownSchemaNode node_u = nodes_u.get(0);
+        final UnknownSchemaNode node_u = nodes_u.iterator().next();
         assertTrue(node_u.isAddedByUses());
 
-        final List<UnknownSchemaNode> nodes_g = grouping.getUnknownSchemaNodes();
+        final Collection<? extends UnknownSchemaNode> nodes_g = grouping.getUnknownSchemaNodes();
         assertEquals(1, nodes_g.size());
-        final UnknownSchemaNode node_g = nodes_g.get(0);
+        final UnknownSchemaNode node_g = nodes_g.iterator().next();
         assertFalse(node_g.isAddedByUses());
         assertFalse(node_u.equals(node_g));
 
         final UsesNode un = uses.iterator().next();
-        final Set<AugmentationSchemaNode> usesAugments = un.getAugmentations();
+        final Collection<? extends AugmentationSchemaNode> usesAugments = un.getAugmentations();
         assertEquals(1, usesAugments.size());
         final AugmentationSchemaNode augment = usesAugments.iterator().next();
         assertEquals(Optional.of("inner augment"), augment.getDescription());
-        final Collection<DataSchemaNode> children = augment.getChildNodes();
+        final Collection<? extends DataSchemaNode> children = augment.getChildNodes();
         assertEquals(1, children.size());
         final DataSchemaNode leaf = children.iterator().next();
         assertTrue(leaf instanceof LeafSchemaNode);
@@ -399,7 +391,7 @@ public class GroupingTest {
         assertEquals(1, ctx.getModules().size());
 
         final Module testModule = TestUtils.findModule(ctx, "cascade-uses").get();
-        final Set<GroupingDefinition> groupings = testModule.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings = testModule.getGroupings();
 
         GroupingDefinition gu = null;
         GroupingDefinition gv = null;
@@ -443,7 +435,7 @@ public class GroupingTest {
             Revision.of("2013-07-18"));
 
         // grouping-U
-        Collection<DataSchemaNode> childNodes = gu.getChildNodes();
+        Collection<? extends DataSchemaNode> childNodes = gu.getChildNodes();
         assertEquals(7, childNodes.size());
 
         final LeafSchemaNode leafGroupingU = (LeafSchemaNode) gu.getDataChildByName(QName.create(
@@ -614,8 +606,7 @@ public class GroupingTest {
                 .getDataChildByName(QName.create(foo.getQNameModule(), "my-leaf"));
 
         TypeDefinition<?> impType = null;
-        final Set<TypeDefinition<?>> typeDefinitions = imp.getTypeDefinitions();
-        for (final TypeDefinition<?> typeDefinition : typeDefinitions) {
+        for (final TypeDefinition<?> typeDefinition : imp.getTypeDefinitions()) {
             if (typeDefinition.getQName().getLocalName().equals("imp-type")) {
                 impType = typeDefinition;
                 break;