Make DataTreeTip.prepare() throw a checked exception
[yangtools.git] / yang / yang-data-impl / src / test / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / Bug5968MergeTest.java
index 7ffedcab0a2bf9d4c583e4982fc9edaaf4a9a4fe..0c8b7d0ade46816ec0a1664182c5c9aa041e23d6 100644 (file)
@@ -8,11 +8,11 @@
 package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
 import com.google.common.collect.ImmutableMap;
-import org.junit.Before;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
@@ -29,7 +29,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailed
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 public class Bug5968MergeTest {
@@ -40,12 +40,16 @@ public class Bug5968MergeTest {
     private static final QName LIST_ID = QName.create(NS, REV, "list-id");
     private static final QName MANDATORY_LEAF = QName.create(NS, REV, "mandatory-leaf");
     private static final QName COMMON_LEAF = QName.create(NS, REV, "common-leaf");
-    private SchemaContext schemaContext;
+    private static SchemaContext SCHEMA_CONTEXT;
 
-    @Before
-    public void init() {
-        this.schemaContext = TestModel.createTestContext("/bug5968/foo.yang");
-        assertNotNull("Schema context must not be null.", this.schemaContext);
+    @BeforeClass
+    public static void beforeClass() {
+        SCHEMA_CONTEXT = TestModel.createTestContext("/bug5968/foo.yang");
+    }
+
+    @AfterClass
+    public static void afterClass() {
+        SCHEMA_CONTEXT = null;
     }
 
     private static DataTree initDataTree(final SchemaContext schemaContext, final boolean withMapNode)
@@ -53,7 +57,7 @@ public class Bug5968MergeTest {
         final DataTree inMemoryDataTree = new InMemoryDataTreeFactory().create(
                 DataTreeConfiguration.DEFAULT_CONFIGURATION, schemaContext);
 
-        final DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> root = Builders.containerBuilder()
+        final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> root = Builders.containerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(ROOT));
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
         modificationTree.merge(
@@ -77,10 +81,10 @@ public class Bug5968MergeTest {
 
     @Test
     public void mergeInvalidContainerTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
 
         final MapNode myList = createMap(true);
-        final DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> root = Builders.containerBuilder()
+        final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> root = Builders.containerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(ROOT)).withChild(myList);
 
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
@@ -101,7 +105,7 @@ public class Bug5968MergeTest {
 
     @Test
     public void mergeInvalidMapTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
         mergeMap(modificationTree, true);
 
@@ -120,7 +124,7 @@ public class Bug5968MergeTest {
 
     @Test
     public void mergeInvalidMapEntryTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = initDataTree(schemaContext, true);
+        final DataTree inMemoryDataTree = initDataTree(SCHEMA_CONTEXT, true);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         mergeMapEntry(modificationTree, "1", null, "common-value");
@@ -160,14 +164,14 @@ public class Bug5968MergeTest {
 
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue))),
                 taskEntryNode);
     }
 
     private static MapEntryNode createMapEntry(final Object listIdValue, final Object mandatoryLeafValue,
             final Object commonLeafValue) throws DataValidationFailedException {
         return Builders.mapEntryBuilder()
-                .withNodeIdentifier(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue)))
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue)))
                 .withChild(ImmutableNodes.leafNode(LIST_ID, listIdValue))
                 .withChild(ImmutableNodes.leafNode(MANDATORY_LEAF, mandatoryLeafValue))
                 .withChild(ImmutableNodes.leafNode(COMMON_LEAF, commonLeafValue)).build();
@@ -176,7 +180,7 @@ public class Bug5968MergeTest {
     private static MapEntryNode createMapEntry(final Object listIdValue, final Object commonLeafValue)
             throws DataValidationFailedException {
         return Builders.mapEntryBuilder()
-                .withNodeIdentifier(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue)))
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue)))
                 .withChild(ImmutableNodes.leafNode(LIST_ID, listIdValue))
                 .withChild(ImmutableNodes.leafNode(COMMON_LEAF, commonLeafValue)).build();
     }
@@ -184,17 +188,17 @@ public class Bug5968MergeTest {
     private static MapEntryNode createMapEntryM(final Object listIdValue, final Object mandatoryLeafValue)
             throws DataValidationFailedException {
         return Builders.mapEntryBuilder()
-                .withNodeIdentifier(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue)))
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue)))
                 .withChild(ImmutableNodes.leafNode(LIST_ID, listIdValue))
                 .withChild(ImmutableNodes.leafNode(MANDATORY_LEAF, mandatoryLeafValue)).build();
     }
 
     @Test
     public void mergeValidContainerTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
 
         final MapNode myList = createMap(false);
-        final DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> root = Builders.containerBuilder()
+        final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> root = Builders.containerBuilder()
                 .withNodeIdentifier(new NodeIdentifier(ROOT)).withChild(myList);
 
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
@@ -207,7 +211,7 @@ public class Bug5968MergeTest {
 
     @Test
     public void mergeValidMapTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
         mergeMap(modificationTree, false);
 
@@ -219,7 +223,7 @@ public class Bug5968MergeTest {
 
     @Test
     public void mergeValidMapEntryTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = initDataTree(schemaContext, true);
+        final DataTree inMemoryDataTree = initDataTree(SCHEMA_CONTEXT, true);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         mergeMapEntry(modificationTree, "1", "mandatory-value", "common-value");
@@ -232,18 +236,18 @@ public class Bug5968MergeTest {
 
     @Test
     public void validMultiStepsMergeTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         modificationTree.merge(YangInstanceIdentifier.of(ROOT), createContainerBuilder().build());
         modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMapBuilder().build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createEmptyMapEntryBuilder("1").build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntry("1", "mandatory-value", "common-value"));
 
         modificationTree.ready();
@@ -254,18 +258,18 @@ public class Bug5968MergeTest {
 
     @Test
     public void invalidMultiStepsMergeTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         modificationTree.merge(YangInstanceIdentifier.of(ROOT), createContainerBuilder().build());
         modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMapBuilder().build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createEmptyMapEntryBuilder("1").build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntry("1", "common-value"));
 
         try {
@@ -281,10 +285,10 @@ public class Bug5968MergeTest {
         }
     }
 
-    private static DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> createEmptyMapEntryBuilder(
+    private static DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> createEmptyMapEntryBuilder(
             final Object listIdValue) throws DataValidationFailedException {
         return Builders.mapEntryBuilder()
-                .withNodeIdentifier(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue)))
+                .withNodeIdentifier(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, listIdValue)))
                 .withChild(ImmutableNodes.leafNode(LIST_ID, listIdValue));
     }
 
@@ -292,24 +296,24 @@ public class Bug5968MergeTest {
         return Builders.mapBuilder().withNodeIdentifier(new NodeIdentifier(MY_LIST));
     }
 
-    private static DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> createContainerBuilder() {
+    private static DataContainerNodeBuilder<NodeIdentifier, ContainerNode> createContainerBuilder() {
         return Builders.containerBuilder().withNodeIdentifier(new NodeIdentifier(ROOT));
     }
 
     @Test
     public void validMultiStepsWriteAndMergeTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         modificationTree.write(YangInstanceIdentifier.of(ROOT), createContainerBuilder().build());
         modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMapBuilder().build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createEmptyMapEntryBuilder("1").build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntry("1", "mandatory-value", "common-value"));
 
         modificationTree.ready();
@@ -320,18 +324,18 @@ public class Bug5968MergeTest {
 
     @Test
     public void invalidMultiStepsWriteAndMergeTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         modificationTree.write(YangInstanceIdentifier.of(ROOT), createContainerBuilder().build());
         modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMapBuilder().build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createEmptyMapEntryBuilder("1").build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntry("1", "common-value"));
 
         try {
@@ -349,18 +353,18 @@ public class Bug5968MergeTest {
 
     @Test
     public void validMapEntryMultiCommitMergeTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         modificationTree.write(YangInstanceIdentifier.of(ROOT), createContainerBuilder().build());
         modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMapBuilder().build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createEmptyMapEntryBuilder("1").build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntryM("1", "mandatory-value"));
 
         modificationTree.ready();
@@ -371,7 +375,7 @@ public class Bug5968MergeTest {
         final DataTreeModification modificationTree2 = inMemoryDataTree.takeSnapshot().newModification();
         modificationTree2.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntry("1", "common-value"));
         modificationTree2.ready();
         inMemoryDataTree.validate(modificationTree2);
@@ -381,18 +385,18 @@ public class Bug5968MergeTest {
 
     @Test
     public void invalidMapEntryMultiCommitMergeTest() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
 
         modificationTree.write(YangInstanceIdentifier.of(ROOT), createContainerBuilder().build());
         modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMapBuilder().build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createEmptyMapEntryBuilder("1").build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntryM("1", "mandatory-value"));
 
         modificationTree.ready();
@@ -403,15 +407,15 @@ public class Bug5968MergeTest {
         final DataTreeModification modificationTree2 = inMemoryDataTree.takeSnapshot().newModification();
         modificationTree2.write(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntry("1", "common-value"));
         modificationTree2.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntryM("1", "mandatory-value"));
         modificationTree2.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "2"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "2"))),
                 createMapEntry("2", "common-value"));
         try {
             modificationTree2.ready();
@@ -433,7 +437,7 @@ public class Bug5968MergeTest {
      */
     @Test
     public void validMapEntryMultiCommitMergeTest2() throws DataValidationFailedException {
-        final DataTree inMemoryDataTree = emptyDataTree(schemaContext);
+        final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT);
         final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification();
         final DataTreeModification modificationTree2 = inMemoryDataTree.takeSnapshot().newModification();
 
@@ -441,11 +445,11 @@ public class Bug5968MergeTest {
         modificationTree.merge(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMapBuilder().build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createEmptyMapEntryBuilder("1").build());
         modificationTree.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntryM("1", "mandatory-value"));
 
         modificationTree.ready();
@@ -455,7 +459,7 @@ public class Bug5968MergeTest {
 
         modificationTree2.merge(
                 YangInstanceIdentifier.of(ROOT).node(MY_LIST)
-                        .node(new NodeIdentifierWithPredicates(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
+                        .node(NodeIdentifierWithPredicates.of(MY_LIST, ImmutableMap.of(LIST_ID, "1"))),
                 createMapEntry("1", "common-value"));
         modificationTree2.ready();
         inMemoryDataTree.validate(modificationTree2);