Clean up binding-model stuff a bit
[yangtools.git] / data / yang-data-impl / src / test / java / org / opendaylight / yangtools / yang / data / impl / schema / InstanceIdToNodesTest.java
index 4634c90c6fd8f1fe4c0b962af39fccbf5e958c4d..685806ea79f736cd9de4961854d88bc55dd7660e 100644 (file)
@@ -7,34 +7,29 @@
  */
 package org.opendaylight.yangtools.yang.data.impl.schema;
 
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.isA;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.fromInstanceId;
 
 import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import java.util.Collection;
 import java.util.Map;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
 import org.opendaylight.yangtools.util.ImmutableOffsetMap;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
-import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
-import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
-public class InstanceIdToNodesTest {
+class InstanceIdToNodesTest {
 
     private static final String NS = "urn:opendaylight:params:xml:ns:yang:controller:md:sal:normalization:test";
     private static final String REVISION = "2014-03-13";
@@ -43,193 +38,75 @@ public class InstanceIdToNodesTest {
     private static final QName BAR = QName.create(ID, "bar");
     private static final NodeIdentifier TWO_KEY_LIST = NodeIdentifier.create(QName.create(ID, "two-key-list"));
 
-    private static SchemaContext ctx;
+    private static EffectiveModelContext ctx;
 
     private final NodeIdentifier rootContainer = new NodeIdentifier(QName.create(NS, REVISION, "test"));
-    private final NodeIdentifier outerContainer = new NodeIdentifier(QName.create(NS, REVISION, "outer-container"));
-    private final NodeIdentifier augmentedLeaf = new NodeIdentifier(QName.create(NS, REVISION, "augmented-leaf"));
-    private final AugmentationIdentifier augmentation = new AugmentationIdentifier(
-            ImmutableSet.of(augmentedLeaf.getNodeType()));
-
     private final NodeIdentifier outerList = new NodeIdentifier(QName.create(NS, REVISION, "outer-list"));
     private final NodeIdentifierWithPredicates outerListWithKey = NodeIdentifierWithPredicates.of(
             QName.create(NS, REVISION, "outer-list"), ID, 1);
-    private final NodeIdentifier choice = new NodeIdentifier(QName.create(NS, REVISION, "outer-choice"));
-    private final NodeIdentifier leafFromCase = new NodeIdentifier(QName.create(NS, REVISION, "one"));
 
     private final NodeIdentifier leafList = new NodeIdentifier(QName.create(NS, REVISION, "ordered-leaf-list"));
-    private final NodeWithValue<?> leafListWithValue = new NodeWithValue<>(leafList.getNodeType(), "abcd");
+    private final NodeWithValue<String> leafListWithValue = new NodeWithValue<>(leafList.getNodeType(), "abcd");
 
-    @BeforeClass
-    public static void setUp() {
+    @BeforeAll
+    static void setUp() {
         ctx = YangParserTestUtils.parseYangResources(InstanceIdToNodesTest.class, "/filter-test.yang");
     }
 
-    @AfterClass
-    public static void teardown() {
+    @AfterAll
+    static void teardown() {
         ctx = null;
     }
 
     @Test
-    public void testInAugment() {
-        final LeafNode<?> leaf = Builders.leafBuilder().withNodeIdentifier(augmentedLeaf).withValue("").build();
-        final ContainerNode expectedFilter = Builders
-                .containerBuilder()
-                .withNodeIdentifier(rootContainer)
-                .withChild(
-                        Builders.containerBuilder()
-                                .withNodeIdentifier(outerContainer)
-                                .withChild(
-                                        Builders.augmentationBuilder()
-                                                .withNodeIdentifier(augmentation)
-                                                .withChild(
-                                                        leaf).build()).build()).build();
-
-        final NormalizedNode filter = ImmutableNodes.fromInstanceId(ctx,
-                YangInstanceIdentifier.create(rootContainer, outerContainer, augmentation, augmentedLeaf), leaf);
-        assertEquals(expectedFilter, filter);
-    }
-
-    @Test
-    public void testInAugmentLeafOverride() {
-        final LeafNode<Object> lastLeaf = Builders.leafBuilder().withNodeIdentifier(augmentedLeaf)
-                .withValue("randomValue").build();
-
-        final ContainerNode expectedFilter = Builders
-                .containerBuilder()
-                .withNodeIdentifier(rootContainer)
-                .withChild(
-                        Builders.containerBuilder()
-                                .withNodeIdentifier(outerContainer)
-                                .withChild(
-                                        Builders.augmentationBuilder().withNodeIdentifier(augmentation)
-                                                .withChild(lastLeaf).build()).build()).build();
-
-        final NormalizedNode filter = ImmutableNodes.fromInstanceId(ctx,
-                YangInstanceIdentifier.create(rootContainer, outerContainer, augmentation, augmentedLeaf), lastLeaf);
-        assertEquals(expectedFilter, filter);
-    }
-
-    @Test
-    public void testListChoice() {
-        final LeafNode<?> leaf = Builders.leafBuilder().withNodeIdentifier(leafFromCase).withValue("").build();
-        final ContainerNode expectedFilter = Builders
-                .containerBuilder()
-                .withNodeIdentifier(rootContainer)
-                .withChild(
-                        Builders.mapBuilder()
-                                .withNodeIdentifier(outerList)
-                                .withChild(
-                                        Builders.mapEntryBuilder()
-                                                .withNodeIdentifier(outerListWithKey)
-                                                .withChild(
-                                                        Builders.leafBuilder()
-                                                                .withNodeIdentifier(
-                                                                        new NodeIdentifier(ID))
-                                                                .withValue(1).build())
-                                                .withChild(
-                                                        Builders.choiceBuilder()
-                                                                .withNodeIdentifier(choice)
-                                                                .withChild(leaf)
-                                                                .build())
-                                                .build())
-                                .build())
-                .build();
-
-        final NormalizedNode filter = ImmutableNodes.fromInstanceId(ctx,
-                YangInstanceIdentifier.create(rootContainer, outerList, outerListWithKey, choice, leafFromCase), leaf);
-        assertEquals(expectedFilter, filter);
-    }
-
-    @Test
-    public void testTopContainerLastChildOverride() {
-        final ContainerNode expectedStructure = Builders
-                .containerBuilder()
-                .withNodeIdentifier(rootContainer)
-                .withChild(
-                        Builders.mapBuilder()
-                                .withNodeIdentifier(outerList)
-                                .withChild(
-                                        Builders.mapEntryBuilder()
-                                                .withNodeIdentifier(outerListWithKey)
-                                                .withChild(
-                                                        Builders.leafBuilder()
-                                                                .withNodeIdentifier(
-                                                                        new NodeIdentifier(ID))
-                                                                .withValue(1).build())
-                                                .withChild(
-                                                        Builders.choiceBuilder()
-                                                                .withNodeIdentifier(choice)
-                                                                .withChild(
-                                                                        Builders.leafBuilder()
-                                                                                .withNodeIdentifier(leafFromCase)
-                                                                                .withValue("")
-                                                                                .build()).build()).build()).build())
-                .build();
-
-        final NormalizedNode filter = ImmutableNodes.fromInstanceId(ctx,
-                YangInstanceIdentifier.create(rootContainer), expectedStructure);
-        assertEquals(expectedStructure, filter);
+    void testListLastChildOverride() {
+        assertEquals(ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(rootContainer)
+            .withChild(ImmutableNodes.newSystemMapBuilder()
+                .withNodeIdentifier(outerList)
+                .withChild(ImmutableNodes.newMapEntryBuilder()
+                    .withNodeIdentifier(outerListWithKey)
+                    .withChild(ImmutableNodes.leafNode(new NodeIdentifier(ID), 1))
+                    .build())
+                .build())
+            .build(),
+            fromInstanceId(ctx, YangInstanceIdentifier.of(rootContainer, outerList, outerListWithKey)));
     }
 
     @Test
-    public void testListLastChildOverride() {
-        final MapEntryNode outerListEntry = Builders
-                .mapEntryBuilder()
-                .withNodeIdentifier(outerListWithKey)
-                .withChild(
-                        Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(ID))
-                                .withValue(1).build()).build();
-        final MapNode lastChild = Builders.mapBuilder().withNodeIdentifier(this.outerList).withChild(outerListEntry)
-                .build();
-        final ContainerNode expectedStructure = Builders.containerBuilder().withNodeIdentifier(rootContainer)
-                .withChild(lastChild).build();
-
-        NormalizedNode filter = ImmutableNodes.fromInstanceId(ctx,
-                YangInstanceIdentifier.create(rootContainer, outerList, outerListWithKey), outerListEntry);
-        assertEquals(expectedStructure, filter);
-        filter = ImmutableNodes.fromInstanceId(ctx,
-                YangInstanceIdentifier.create(rootContainer, outerList, outerListWithKey));
-        assertEquals(expectedStructure, filter);
-    }
-
-    @Test
-    public void testLeafList() {
-        final ContainerNode expectedFilter = Builders
-                .containerBuilder()
-                .withNodeIdentifier(rootContainer)
-                .withChild(
-                        Builders.orderedLeafSetBuilder()
-                                .withNodeIdentifier(leafList)
-                                .withChild(
-                                        Builders.leafSetEntryBuilder().withNodeIdentifier(leafListWithValue)
-                                                .withValue(leafListWithValue.getValue()).build()).build()).build();
-
-        final NormalizedNode filter = ImmutableNodes.fromInstanceId(ctx,
-                YangInstanceIdentifier.create(rootContainer, leafList, leafListWithValue));
-        assertEquals(expectedFilter, filter);
+    void testLeafList() {
+        assertEquals(ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(rootContainer)
+            .withChild(Builders.<String>orderedLeafSetBuilder()
+                .withNodeIdentifier(leafList)
+                .withChild(Builders.<String>leafSetEntryBuilder()
+                    .withNodeIdentifier(leafListWithValue)
+                    .withValue(leafListWithValue.getValue())
+                    .build())
+                .build())
+            .build(),
+            fromInstanceId(ctx, YangInstanceIdentifier.of(rootContainer, leafList, leafListWithValue)));
     }
 
     @Test
-    public void testEmptyInstanceIdentifier() {
-        assertEquals(ImmutableNodes.containerNode(SchemaContext.NAME),
-            ImmutableNodes.fromInstanceId(ctx, YangInstanceIdentifier.empty()));
+    void testEmptyInstanceIdentifier() {
+        assertEquals(ImmutableNodes.newContainerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(SchemaContext.NAME))
+            .build(), fromInstanceId(ctx, YangInstanceIdentifier.of()));
     }
 
     @Test
-    public void testKeyOrdering() {
+    void testKeyOrdering() {
         final Map<QName, Object> misordered = ImmutableOffsetMap.orderedCopyOf(ImmutableMap.of(BAR, "bar", FOO, "foo"));
-        final NodeIdentifierWithPredicates id = NodeIdentifierWithPredicates.of(TWO_KEY_LIST.getNodeType(), misordered);
+        final var id = NodeIdentifierWithPredicates.of(TWO_KEY_LIST.getNodeType(), misordered);
         assertArrayEquals(new Object[] { BAR, FOO }, id.keySet().toArray());
 
-        final NormalizedNode filter = ImmutableNodes.fromInstanceId(ctx,
-            YangInstanceIdentifier.create(TWO_KEY_LIST, id));
-        assertThat(filter, isA(MapNode.class));
-        final Collection<MapEntryNode> value = ((MapNode) filter).body();
+        final var filter = fromInstanceId(ctx, YangInstanceIdentifier.of(TWO_KEY_LIST, id));
+        final var value = assertInstanceOf(MapNode.class, filter).body();
         assertEquals(1, value.size());
-        final MapEntryNode entry = value.iterator().next();
+        final var entry = value.iterator().next();
 
         // The entry must have a the proper order
-        assertArrayEquals(new Object[] { FOO, BAR }, entry.getIdentifier().keySet().toArray());
+        assertArrayEquals(new Object[] { FOO, BAR }, entry.name().keySet().toArray());
     }
 }