Remove schema-aware builders
[yangtools.git] / yang / yang-data-impl / src / test / java / org / opendaylight / yangtools / yang / data / impl / schema / BuilderTest.java
index e2368452ffbdac27574e4de031036cafb14c671e..383b1b6db4058c922f65caf0b623870e025bf750 100644 (file)
@@ -10,7 +10,8 @@ package org.opendaylight.yangtools.yang.data.impl.schema;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.mock;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
 
 import java.io.File;
 import java.net.URISyntaxException;
@@ -19,7 +20,6 @@ import java.util.LinkedList;
 import java.util.Map;
 import org.junit.Before;
 import org.junit.Test;
-import org.opendaylight.yangtools.odlext.model.api.YangModeledAnyxmlSchemaNode;
 import org.opendaylight.yangtools.util.UnmodifiableCollection;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
@@ -30,32 +30,25 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
 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.api.schema.OrderedLeafSetNode;
-import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.SystemLeafSetNode;
+import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.ListNodeBuilder;
+import org.opendaylight.yangtools.yang.data.api.schema.UserLeafSetNode;
+import org.opendaylight.yangtools.yang.data.api.schema.UserMapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAugmentationNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableChoiceNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeSchemaAwareBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeSchemaAwareBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeSchemaAwareBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeSchemaAwareBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedLeafSetNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedLeafSetNodeSchemaAwareBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedMapNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedMapNodeSchemaAwareBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableYangModeledAnyXmlNodeBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserLeafSetNodeBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserMapNodeBuilder;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
@@ -107,58 +100,56 @@ public class BuilderTest {
         final Map<QName, Object> keys = new HashMap<>();
         keys.put(LIST_MAIN_CHILD_QNAME_1, 1);
         final NodeIdentifierWithPredicates mapEntryPath = NodeIdentifierWithPredicates.of(LIST_MAIN, keys);
-        final OrderedMapNode orderedMapNodeCreateNull = ImmutableOrderedMapNodeBuilder.create()
+        final UserMapNode orderedMapNodeCreateNull = ImmutableUserMapNodeBuilder.create()
                 .withNodeIdentifier(NODE_IDENTIFIER_LIST)
                 .withChild(LIST_MAIN_CHILD_1)
                 .addChild(LIST_MAIN_CHILD_2)
                 .withValue(mapEntryNodeColl)
                 .build();
-        final OrderedMapNode orderedMapNodeCreateSize = ImmutableOrderedMapNodeBuilder.create(SIZE)
+        final UserMapNode orderedMapNodeCreateSize = ImmutableUserMapNodeBuilder.create(SIZE)
                 .withNodeIdentifier(NODE_IDENTIFIER_LIST)
                 .build();
-        final OrderedMapNode orderedMapNodeCreateNode = ImmutableOrderedMapNodeBuilder.create(orderedMapNodeCreateNull)
+        final UserMapNode orderedMapNodeCreateNode = ImmutableUserMapNodeBuilder.create(orderedMapNodeCreateNull)
                 .removeChild(mapEntryPath)
                 .build();
-        final OrderedMapNode orderedMapNodeSchemaAware = ImmutableOrderedMapNodeSchemaAwareBuilder.create(list)
+        final UserMapNode orderedMapNodeSchemaAware = ImmutableUserMapNodeBuilder.create()
+                .withNodeIdentifier(NODE_IDENTIFIER_LEAF_LIST)
                 .withChild(LIST_MAIN_CHILD_1)
                 .build();
-        final OrderedMapNode orderedMapNodeSchemaAwareMapNodeConst = ImmutableOrderedMapNodeSchemaAwareBuilder.create(
-                list, getImmutableOrderedMapNode())
+        final UserMapNode orderedMapNodeSchemaAwareMapNodeConst =
+                ImmutableUserMapNodeBuilder.create(getImmutableUserMapNode())
                 .build();
 
-        assertNotNull(Builders.orderedMapBuilder(list));
-        assertEquals(SIZE, orderedMapNodeCreateNull.getSize());
-        assertEquals(orderedMapNodeCreateNode.getSize(), orderedMapNodeCreateNull.getSize() - 1);
+        assertEquals(SIZE, orderedMapNodeCreateNull.size());
+        assertEquals(orderedMapNodeCreateNode.size(), orderedMapNodeCreateNull.size() - 1);
         assertEquals(NODE_IDENTIFIER_LIST, orderedMapNodeCreateSize.getIdentifier());
-        assertEquals(LIST_MAIN_CHILD_1, orderedMapNodeCreateNull.getChild(0));
-        assertEquals(SIZE, orderedMapNodeCreateNull.getValue().size());
-        assertEquals(orderedMapNodeSchemaAware.getChild(0), orderedMapNodeSchemaAwareMapNodeConst.getChild(0));
+        assertEquals(LIST_MAIN_CHILD_1, orderedMapNodeCreateNull.childAt(0));
+        assertEquals(SIZE, orderedMapNodeCreateNull.size());
+        assertEquals(orderedMapNodeSchemaAware.childAt(0), orderedMapNodeSchemaAwareMapNodeConst.childAt(0));
     }
 
     @Test
-    public void immutableOrderedLeafSetNodeBuilderTest() {
-        final NormalizedNode<?, ?> orderedLeafSet = ImmutableOrderedLeafSetNodeBuilder.<String>create()
+    public void immutableUserLeafSetNodeBuilderTest() {
+        final UserLeafSetNode<String> orderedLeafSet = ImmutableUserLeafSetNodeBuilder.<String>create()
                 .withNodeIdentifier(NODE_IDENTIFIER_LEAF_LIST)
                 .withChild(LEAF_SET_ENTRY_NODE)
                 .withChildValue("baz")
                 .removeChild(BAR_PATH)
                 .build();
         final LinkedList<LeafSetNode<?>> mapEntryNodeColl = new LinkedList<>();
-        mapEntryNodeColl.add((LeafSetNode<?>)orderedLeafSet);
-        final UnmodifiableCollection<?> leafSetCollection = (UnmodifiableCollection<?>)orderedLeafSet.getValue();
-        final NormalizedNode<?, ?> orderedMapNodeSchemaAware = ImmutableOrderedLeafSetNodeSchemaAwareBuilder.create(
-            leafList).withChildValue("baz").build();
+        mapEntryNodeColl.add(orderedLeafSet);
+        final UnmodifiableCollection<?> leafSetCollection = (UnmodifiableCollection<?>)orderedLeafSet.body();
+        final NormalizedNode orderedMapNodeSchemaAware = ImmutableUserLeafSetNodeBuilder.create()
+            .withNodeIdentifier(NODE_IDENTIFIER_LEAF_LIST)
+            .withChildValue("baz")
+            .build();
         final UnmodifiableCollection<?> SchemaAwareleafSetCollection =
-                (UnmodifiableCollection<?>)orderedMapNodeSchemaAware.getValue();
-        final NormalizedNode<?, ?> orderedLeafSetShemaAware = ImmutableOrderedLeafSetNodeSchemaAwareBuilder.create(
-            leafList,(LeafSetNode<?>)orderedLeafSet).build();
+                (UnmodifiableCollection<?>) orderedMapNodeSchemaAware.body();
 
-        assertNotNull(Builders.orderedLeafSetBuilder(leafList));
         assertNotNull(Builders.anyXmlBuilder());
-        assertNotNull(orderedLeafSetShemaAware);
-        assertEquals(1, ((OrderedLeafSetNode<?>)orderedLeafSet).getSize());
-        assertEquals("baz", ((OrderedLeafSetNode<?>)orderedLeafSet).getChild(0).getValue());
-        assertNotNull(((OrderedLeafSetNode<?>)orderedLeafSet).getChild(BAR_PATH));
+        assertEquals(1, ((UserLeafSetNode<?>)orderedLeafSet).size());
+        assertEquals("baz", orderedLeafSet.childAt(0).body());
+        assertNull(orderedLeafSet.childByArg(BAR_PATH));
         assertEquals(1, leafSetCollection.size());
         assertEquals(1, SchemaAwareleafSetCollection.size());
     }
@@ -167,14 +158,12 @@ public class BuilderTest {
     public void immutableMapNodeBuilderTest() {
         final LinkedList<MapEntryNode> mapEntryNodeColl = new LinkedList<>();
         mapEntryNodeColl.add(LIST_MAIN_CHILD_3);
-        final CollectionNodeBuilder<MapEntryNode, MapNode> collectionNodeBuilder = ImmutableMapNodeBuilder.create(1);
+        final CollectionNodeBuilder<MapEntryNode, SystemMapNode> collectionNodeBuilder =
+            ImmutableMapNodeBuilder.create(1);
         assertNotNull(collectionNodeBuilder);
         collectionNodeBuilder.withNodeIdentifier(NODE_IDENTIFIER_LEAF_LIST);
         collectionNodeBuilder.withValue(mapEntryNodeColl);
-        final MapNode mapNode = collectionNodeBuilder.build();
-        final MapNode mapNodeSchemaAware = ImmutableMapNodeSchemaAwareBuilder.create(list, getImmutableMapNode())
-                .build();
-        assertNotNull(mapNodeSchemaAware);
+        final SystemMapNode mapNode = collectionNodeBuilder.build();
         assertNotNull(Builders.mapBuilder(mapNode));
     }
 
@@ -210,16 +199,12 @@ public class BuilderTest {
                 .build();
         final UnkeyedListNode unkeyedListNodeCreated = ImmutableUnkeyedListNodeBuilder.create(unkeyedListNode)
                 .build();
-        try {
-            unkeyedListNodeSize.getChild(1);
-        } catch (IndexOutOfBoundsException e) {
-            // Ignored on purpose
-        }
 
-        assertNotNull(unkeyedListNodeSize.getValue());
-        assertEquals(unkeyedListEntryNode, unkeyedListNodeCreated.getChild(0));
-        assertEquals(unkeyedListNode.getNodeType().getLocalName(), unkeyedListNodeSize.getNodeType()
-                .getLocalName());
+        assertThrows(IndexOutOfBoundsException.class, () -> unkeyedListNodeSize.childAt(1));
+
+        assertNotNull(unkeyedListNodeSize.body());
+        assertEquals(unkeyedListEntryNode, unkeyedListNodeCreated.childAt(0));
+        assertEquals(unkeyedListNode.getNodeType().getLocalName(), unkeyedListNodeSize.getNodeType().getLocalName());
         assertNotNull(unkeyedListNodeCreated);
     }
 
@@ -232,99 +217,51 @@ public class BuilderTest {
     }
 
 
-    @Test(expected = NullPointerException.class)
+    @Test
     public void immutableAugmentationNodeBuilderExceptionTest() {
-        ImmutableAugmentationNodeBuilder.create(1).build();
+        final var builder = ImmutableAugmentationNodeBuilder.create(1);
+        assertThrows(NullPointerException.class, builder::build);
     }
 
-    @Test(expected = NullPointerException.class)
+    @Test
     public void immutableContainerNodeBuilderExceptionTest() {
         final ContainerNode immutableContainerNode = ImmutableContainerNodeBuilder.create(1)
                 .withNodeIdentifier(NODE_IDENTIFIER_LIST)
                 .build();
         assertNotNull(immutableContainerNode);
-        final ContainerSchemaNode containerSchemaNode = mock(ContainerSchemaNode.class);
-        ImmutableContainerNodeSchemaAwareBuilder.create(containerSchemaNode, immutableContainerNode)
-                .withNodeIdentifier(NODE_IDENTIFIER_LIST)
-                .build();
     }
 
-    @Test(expected = NullPointerException.class)
+    @Test
     public void immutableLeafSetNodeBuilderExceptionTest() {
-        final LeafSetNode<?> leafSetNode = ImmutableLeafSetNodeBuilder.create(1)
-                .withNodeIdentifier(NODE_IDENTIFIER_LEAF_LIST).build();
+        final SystemLeafSetNode<Object> leafSetNode = ImmutableLeafSetNodeBuilder.create(1)
+                .withNodeIdentifier(NODE_IDENTIFIER_LEAF_LIST)
+                .build();
         assertNotNull(leafSetNode);
-        ImmutableLeafSetNodeSchemaAwareBuilder.create(mock(LeafListSchemaNode.class), leafSetNode).build();
-    }
-
-    @Test(expected = UnsupportedOperationException.class)
-    public void immutableLeafSetEntryNodeSchemaAwareBuilderExceptionTest() {
-        final LeafListSchemaNode leafListSchemaNode = mock(LeafListSchemaNode.class);
-        ImmutableLeafSetEntryNodeSchemaAwareBuilder.create(leafListSchemaNode).withNodeIdentifier(BAR_PATH).build();
     }
 
-    @Test(expected = NullPointerException.class)
+    @Test
     public void immutableMapEntryNodeBuilderExceptionTest() {
-        ImmutableMapEntryNodeBuilder.create(1).build();
-    }
-
-    @Test(expected = NullPointerException.class)
-    public void immutableYangModeledAnyXmlNodeBuilderExceptionTest() {
-        ImmutableYangModeledAnyXmlNodeBuilder.create(mock(YangModeledAnyxmlSchemaNode.class), 1);
+        final var builder = ImmutableMapEntryNodeBuilder.create(1);
+        assertThrows(NullPointerException.class, builder::build);
     }
 
-    @Test(expected = UnsupportedOperationException.class)
+    @Test
     public void immutableUnkeyedListNodeBuilderExceptionTest() {
-        ImmutableUnkeyedListNodeBuilder.create().withNodeIdentifier(NODE_IDENTIFIER_LEAF)
-                .removeChild(NODE_IDENTIFIER_LIST).build();
+        final var builder = ImmutableUnkeyedListNodeBuilder.create().withNodeIdentifier(NODE_IDENTIFIER_LEAF);
+        assertThrows(UnsupportedOperationException.class, () -> builder.removeChild(NODE_IDENTIFIER_LIST));
     }
 
-    @Test(expected = UnsupportedOperationException.class)
-    public void immutableOrderedMapNotSchemaAwareExceptionTest1() {
-        ImmutableOrderedMapNodeBuilder.create(getImmutableMapNode()).build();
-    }
-
-    @Test(expected = UnsupportedOperationException.class)
-    public void immutableMapNodeSchemaAwareExceptionTest() {
-        ImmutableMapNodeSchemaAwareBuilder.create(list, getImmutableMapNode()).withNodeIdentifier(NODE_IDENTIFIER_LIST)
-        .build();
-    }
-
-    @Test(expected = UnsupportedOperationException.class)
-    public void immutableOrderedMapSchemaAwareExceptionTest1() {
-        ImmutableOrderedMapNodeSchemaAwareBuilder.create(list).withNodeIdentifier(NODE_IDENTIFIER_LIST).build();
-    }
-
-    @Test(expected = UnsupportedOperationException.class)
-    public void immutableOrderedMapSchemaAwareExceptionTest2() {
-        ImmutableOrderedMapNodeSchemaAwareBuilder.create(list, getImmutableMapNode()).build();
-    }
-
-    @Test(expected = UnsupportedOperationException.class)
-    public void immutableOrderedLeafSetNodeExceptionTest1() {
-        ImmutableOrderedLeafSetNodeBuilder.create(getImmutableLeafSetNode()).build();
-    }
-
-    @Test(expected = UnsupportedOperationException.class)
-    public void immutableOrderedLeafSetNodeSchemaAwareExceptionTest1() {
-        ImmutableOrderedLeafSetNodeSchemaAwareBuilder.create(leafList).withNodeIdentifier(NODE_IDENTIFIER_LEAF_LIST)
-        .build();
-    }
-
-    private static LeafSetNode<?> getImmutableLeafSetNode() {
-        final ListNodeBuilder<String, LeafSetEntryNode<String>> leafSetBuilder = Builders.leafSetBuilder();
-        leafSetBuilder.withNodeIdentifier(NODE_IDENTIFIER_LEAF_LIST);
-        leafSetBuilder.addChild(LEAF_SET_ENTRY_NODE);
-        return leafSetBuilder.build();
-    }
-
-    private static MapNode getImmutableMapNode() {
-        return ImmutableMapNodeBuilder.create().withNodeIdentifier(NODE_IDENTIFIER_LIST).withChild(LIST_MAIN_CHILD_1)
-                .build();
+    private static SystemMapNode getImmutableMapNode() {
+        return ImmutableMapNodeBuilder.create()
+            .withNodeIdentifier(NODE_IDENTIFIER_LIST)
+            .withChild(LIST_MAIN_CHILD_1)
+            .build();
     }
 
-    private static MapNode getImmutableOrderedMapNode() {
-        return ImmutableOrderedMapNodeBuilder.create().withNodeIdentifier(NODE_IDENTIFIER_LIST)
-                .withChild(LIST_MAIN_CHILD_1).build();
+    private static UserMapNode getImmutableUserMapNode() {
+        return ImmutableUserMapNodeBuilder.create()
+            .withNodeIdentifier(NODE_IDENTIFIER_LIST)
+            .withChild(LIST_MAIN_CHILD_1)
+            .build();
     }
 }