X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fnode%2Futils%2Ftransformer%2FNormalizedNodePrunerTest.java;h=6b150131b3e5b058b8fe65e1f281c523b29549b3;hb=HEAD;hp=8001ebd05158528cbc958659dec1e9a0f9bdf9fd;hpb=abaef4a5ae37f27542155457fe7306a4662b1eeb;p=controller.git diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/NormalizedNodePrunerTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/NormalizedNodePrunerTest.java index 8001ebd051..6b150131b3 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/NormalizedNodePrunerTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/NormalizedNodePrunerTest.java @@ -11,11 +11,11 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; +import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.containerNode; import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntry; import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntryBuilder; import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapNodeBuilder; -import com.google.common.collect.Sets; import java.io.IOException; import java.util.Optional; import java.util.concurrent.atomic.AtomicInteger; @@ -26,19 +26,16 @@ import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.controller.cluster.datastore.node.utils.NormalizedNodeNavigator; import org.opendaylight.controller.cluster.datastore.util.TestModel; 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.NodeWithValue; -import org.opendaylight.yangtools.yang.data.api.schema.DOMSourceAnyxmlNode; +import org.opendaylight.yangtools.yang.data.api.schema.AnyxmlNode; +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.LeafSetEntryNode; -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.SystemLeafSetNode; +import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; -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.impl.ImmutableLeafSetEntryNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder; +import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; @RunWith(MockitoJUnitRunner.StrictStubs.class) @@ -78,7 +75,6 @@ public class NormalizedNodePrunerTest { NormalizedNode actual = pruner.getResult().orElseThrow(); assertEquals(expected, actual); - } @Test(expected = IllegalStateException.class) @@ -96,10 +92,8 @@ public class NormalizedNodePrunerTest { assertEquals(expected, actual); NormalizedNodeWriter.forStreamWriter(pruner).write(expected); - } - @Test public void testNodesPrunedWhenAugmentationSchemaMissing() throws IOException { AbstractNormalizedNodePruner pruner = prunerNoAugSchema(TestModel.TEST_PATH); @@ -136,7 +130,6 @@ public class NormalizedNodePrunerTest { // Asserting true here instead of checking actual value because I don't want this assertion to be fragile assertTrue(countNodes(expected, "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test") > 0); - } private static int countNodes(final NormalizedNode normalizedNode, final String namespaceFilter) { @@ -145,12 +138,10 @@ public class NormalizedNodePrunerTest { } final AtomicInteger count = new AtomicInteger(); new NormalizedNodeNavigator((level, parentPath, normalizedNode1) -> { - if (!(normalizedNode1.getIdentifier() instanceof AugmentationIdentifier)) { - if (normalizedNode1.getIdentifier().getNodeType().getNamespace().toString().contains(namespaceFilter)) { - count.incrementAndGet(); - } + if (normalizedNode1.name().getNodeType().getNamespace().toString().contains(namespaceFilter)) { + count.incrementAndGet(); } - }).navigate(YangInstanceIdentifier.empty().toString(), normalizedNode); + }).navigate(YangInstanceIdentifier.of().toString(), normalizedNode); return count.get(); } @@ -158,33 +149,16 @@ public class NormalizedNodePrunerTest { @Test public void testLeafNodeNotPrunedWhenHasNoParent() throws IOException { AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.DESC_QNAME)); - NormalizedNode input = Builders.leafBuilder().withNodeIdentifier( - new NodeIdentifier(TestModel.DESC_QNAME)).withValue("test").build(); + NormalizedNode input = ImmutableNodes.leafNode(TestModel.DESC_QNAME, "test"); NormalizedNodeWriter.forStreamWriter(pruner).write(input); assertEquals("normalizedNode", input, pruner.getResult().orElseThrow()); } - @Test - public void testLeafNodePrunedWhenHasAugmentationParentAndSchemaMissing() throws IOException { - AugmentationIdentifier augId = new AugmentationIdentifier(Sets.newHashSet(TestModel.AUG_CONT_QNAME)); - AbstractNormalizedNodePruner pruner = prunerFullSchema(YangInstanceIdentifier.builder() - .node(TestModel.TEST_QNAME).node(TestModel.AUGMENTED_LIST_QNAME) - .node(TestModel.AUGMENTED_LIST_QNAME).node(augId).build()); - LeafNode child = Builders.leafBuilder().withNodeIdentifier( - new NodeIdentifier(TestModel.INVALID_QNAME)).withValue("test").build(); - NormalizedNode input = Builders.augmentationBuilder().withNodeIdentifier(augId).withChild(child).build(); - NormalizedNodeWriter.forStreamWriter(pruner).write(input); - - NormalizedNode actual = pruner.getResult().orElseThrow(); - assertEquals("normalizedNode", Builders.augmentationBuilder().withNodeIdentifier(augId).build(), actual); - } - @Test public void testLeafNodePrunedWhenHasNoParentAndSchemaMissing() throws IOException { AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.INVALID_QNAME)); - NormalizedNode input = Builders.leafBuilder().withNodeIdentifier( - new NodeIdentifier(TestModel.INVALID_QNAME)).withValue("test").build(); + LeafNode input = ImmutableNodes.leafNode(TestModel.INVALID_QNAME, "test"); NormalizedNodeWriter.forStreamWriter(pruner).write(input); assertEquals(Optional.empty(), pruner.getResult()); @@ -193,8 +167,7 @@ public class NormalizedNodePrunerTest { @Test public void testLeafSetEntryNodeNotPrunedWhenHasNoParent() throws IOException { AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.SHOE_QNAME)); - NormalizedNode input = Builders.leafSetEntryBuilder().withValue("puma").withNodeIdentifier( - new NodeWithValue<>(TestModel.SHOE_QNAME, "puma")).build(); + LeafSetEntryNode input = ImmutableNodes.leafSetEntry(TestModel.SHOE_QNAME, "puma"); NormalizedNodeWriter.forStreamWriter(pruner).write(input); NormalizedNode actual = pruner.getResult().orElseThrow(); @@ -204,10 +177,10 @@ public class NormalizedNodePrunerTest { @Test public void testLeafSetEntryNodeNotPrunedWhenHasParent() throws IOException { AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.SHOE_QNAME)); - LeafSetEntryNode child = Builders.leafSetEntryBuilder().withValue("puma").withNodeIdentifier( - new NodeWithValue<>(TestModel.SHOE_QNAME, "puma")).build(); - NormalizedNode input = Builders.leafSetBuilder().withNodeIdentifier( - new NodeIdentifier(TestModel.SHOE_QNAME)).withChild(child).build(); + SystemLeafSetNode input = ImmutableNodes.newSystemLeafSetBuilder() + .withNodeIdentifier(new NodeIdentifier(TestModel.SHOE_QNAME)) + .withChildValue("puma") + .build(); NormalizedNodeWriter.forStreamWriter(pruner).write(input); NormalizedNode actual = pruner.getResult().orElseThrow(); @@ -217,8 +190,7 @@ public class NormalizedNodePrunerTest { @Test public void testLeafSetEntryNodePrunedWhenHasNoParentAndSchemaMissing() throws IOException { AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.INVALID_QNAME)); - NormalizedNode input = Builders.leafSetEntryBuilder().withValue("test").withNodeIdentifier( - new NodeWithValue<>(TestModel.INVALID_QNAME, "test")).build(); + LeafSetEntryNode input = ImmutableNodes.leafSetEntry(TestModel.INVALID_QNAME, "test"); NormalizedNodeWriter.forStreamWriter(pruner).write(input); assertEquals(Optional.empty(), pruner.getResult()); @@ -227,11 +199,10 @@ public class NormalizedNodePrunerTest { @Test public void testLeafSetEntryNodePrunedWhenHasParentAndSchemaMissing() throws IOException { AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.INVALID_QNAME)); - LeafSetEntryNode child = Builders.leafSetEntryBuilder().withValue("test").withNodeIdentifier( - new NodeWithValue<>(TestModel.INVALID_QNAME, "test")).build(); - NormalizedNode input = Builders.leafSetBuilder().withNodeIdentifier( - new NodeIdentifier(TestModel.INVALID_QNAME)).withChild(child).build(); - NormalizedNodeWriter.forStreamWriter(pruner).write(input); + NormalizedNodeWriter.forStreamWriter(pruner).write(ImmutableNodes.newSystemLeafSetBuilder() + .withNodeIdentifier(new NodeIdentifier(TestModel.INVALID_QNAME)) + .withChildValue("test") + .build()); assertEquals(Optional.empty(), pruner.getResult()); } @@ -239,33 +210,37 @@ public class NormalizedNodePrunerTest { @Test public void testAnyXMLNodeNotPrunedWhenHasNoParent() throws IOException { AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.ANY_XML_QNAME)); - NormalizedNode input = Builders.anyXmlBuilder().withNodeIdentifier( - new NodeIdentifier(TestModel.ANY_XML_QNAME)).withValue(mock(DOMSource.class)).build(); + AnyxmlNode input = ImmutableNodes.newAnyxmlBuilder(DOMSource.class) + .withNodeIdentifier(new NodeIdentifier(TestModel.ANY_XML_QNAME)) + .withValue(mock(DOMSource.class)) + .build(); NormalizedNodeWriter.forStreamWriter(pruner).write(input); - NormalizedNode actual = pruner.getResult().orElseThrow(); - assertEquals("normalizedNode", input, actual); + assertEquals(input, pruner.getResult().orElseThrow()); } @Test public void testAnyXMLNodeNotPrunedWhenHasParent() throws IOException { - AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH); - DOMSourceAnyxmlNode child = Builders.anyXmlBuilder().withNodeIdentifier( - new NodeIdentifier(TestModel.ANY_XML_QNAME)).withValue(mock(DOMSource.class)).build(); - NormalizedNode input = Builders.containerBuilder().withNodeIdentifier( - new NodeIdentifier(TestModel.TEST_QNAME)).withChild(child).build(); + final var pruner = prunerFullSchema(TestModel.TEST_PATH); + final var input = ImmutableNodes.newContainerBuilder() + .withNodeIdentifier(new NodeIdentifier(TestModel.TEST_QNAME)) + .withChild(ImmutableNodes.newAnyxmlBuilder(DOMSource.class) + .withNodeIdentifier(new NodeIdentifier(TestModel.ANY_XML_QNAME)) + .withValue(mock(DOMSource.class)) + .build()) + .build(); NormalizedNodeWriter.forStreamWriter(pruner).write(input); - NormalizedNode actual = pruner.getResult().orElseThrow(); - assertEquals("normalizedNode", input, actual); + assertEquals(input, pruner.getResult().orElseThrow()); } @Test public void testAnyXmlNodePrunedWhenHasNoParentAndSchemaMissing() throws IOException { AbstractNormalizedNodePruner pruner = prunerNoTestSchema(TestModel.TEST_PATH.node(TestModel.ANY_XML_QNAME)); - NormalizedNode input = Builders.anyXmlBuilder().withNodeIdentifier( - new NodeIdentifier(TestModel.ANY_XML_QNAME)).withValue(mock(DOMSource.class)).build(); - NormalizedNodeWriter.forStreamWriter(pruner).write(input); + NormalizedNodeWriter.forStreamWriter(pruner).write(ImmutableNodes.newAnyxmlBuilder(DOMSource.class) + .withNodeIdentifier(new NodeIdentifier(TestModel.ANY_XML_QNAME)) + .withValue(mock(DOMSource.class)) + .build()); assertEquals(Optional.empty(), pruner.getResult()); } @@ -278,11 +253,10 @@ public class NormalizedNodePrunerTest { .node(TestModel.INNER_CONTAINER_QNAME).build(); AbstractNormalizedNodePruner pruner = prunerFullSchema(path); - NormalizedNode input = ImmutableNodes.containerNode(TestModel.INNER_CONTAINER_QNAME); + ContainerNode input = containerNode(TestModel.INNER_CONTAINER_QNAME); NormalizedNodeWriter.forStreamWriter(pruner).write(input); - NormalizedNode actual = pruner.getResult().orElseThrow(); - assertEquals("normalizedNode", input, actual); + assertEquals(input, pruner.getResult().orElseThrow()); } @Test @@ -293,8 +267,7 @@ public class NormalizedNodePrunerTest { .node(TestModel.INVALID_QNAME).build(); AbstractNormalizedNodePruner pruner = prunerFullSchema(path); - NormalizedNode input = ImmutableNodes.containerNode(TestModel.INVALID_QNAME); - NormalizedNodeWriter.forStreamWriter(pruner).write(input); + NormalizedNodeWriter.forStreamWriter(pruner).write(containerNode(TestModel.INVALID_QNAME)); assertEquals(Optional.empty(), pruner.getResult()); } @@ -306,18 +279,20 @@ public class NormalizedNodePrunerTest { .build(); AbstractNormalizedNodePruner pruner = prunerFullSchema(path); - MapNode innerList = mapNodeBuilder(TestModel.INNER_LIST_QNAME).withChild(mapEntryBuilder( - TestModel.INNER_LIST_QNAME, TestModel.NAME_QNAME, "one").withChild( - ImmutableNodes.containerNode(TestModel.INVALID_QNAME)).build()).build(); - NormalizedNode input = mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1) - .withChild(innerList).build(); - NormalizedNodeWriter.forStreamWriter(pruner).write(input); - - NormalizedNode expected = mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1) - .withChild(mapNodeBuilder(TestModel.INNER_LIST_QNAME).withChild(mapEntryBuilder( - TestModel.INNER_LIST_QNAME, TestModel.NAME_QNAME, "one").build()).build()).build(); - NormalizedNode actual = pruner.getResult().orElseThrow(); - assertEquals("normalizedNode", expected, actual); + NormalizedNodeWriter.forStreamWriter(pruner) + .write(mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1) + .withChild(mapNodeBuilder(TestModel.INNER_LIST_QNAME) + .withChild(mapEntryBuilder(TestModel.INNER_LIST_QNAME, TestModel.NAME_QNAME, "one") + .withChild(containerNode(TestModel.INVALID_QNAME)) + .build()) + .build()) + .build()); + + assertEquals(mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1) + .withChild(mapNodeBuilder(TestModel.INNER_LIST_QNAME) + .withChild(mapEntryBuilder(TestModel.INNER_LIST_QNAME, TestModel.NAME_QNAME, "one").build()) + .build()) + .build(), pruner.getResult().orElseThrow()); } @Test @@ -327,13 +302,14 @@ public class NormalizedNodePrunerTest { .node(TestModel.INNER_LIST_QNAME).build(); AbstractNormalizedNodePruner pruner = prunerFullSchema(path); - MapNode input = mapNodeBuilder(TestModel.INNER_LIST_QNAME).withChild(mapEntryBuilder( - TestModel.INNER_LIST_QNAME, TestModel.NAME_QNAME, "one").withChild( - ImmutableNodes.containerNode(TestModel.INNER_CONTAINER_QNAME)).build()).build(); + SystemMapNode input = mapNodeBuilder(TestModel.INNER_LIST_QNAME) + .withChild(mapEntryBuilder(TestModel.INNER_LIST_QNAME, TestModel.NAME_QNAME, "one") + .withChild(containerNode(TestModel.INNER_CONTAINER_QNAME)) + .build()) + .build(); NormalizedNodeWriter.forStreamWriter(pruner).write(input); - NormalizedNode actual = pruner.getResult().orElseThrow(); - assertEquals("normalizedNode", input, actual); + assertEquals(input, pruner.getResult().orElseThrow()); } @Test @@ -343,10 +319,11 @@ public class NormalizedNodePrunerTest { .node(TestModel.INVALID_QNAME).build(); AbstractNormalizedNodePruner pruner = prunerFullSchema(path); - MapNode input = mapNodeBuilder(TestModel.INVALID_QNAME).withChild(mapEntryBuilder( - TestModel.INVALID_QNAME, TestModel.NAME_QNAME, "one").withChild( - ImmutableNodes.containerNode(TestModel.INNER_CONTAINER_QNAME)).build()).build(); - NormalizedNodeWriter.forStreamWriter(pruner).write(input); + NormalizedNodeWriter.forStreamWriter(pruner).write(mapNodeBuilder(TestModel.INVALID_QNAME) + .withChild(mapEntryBuilder(TestModel.INVALID_QNAME, TestModel.NAME_QNAME, "one") + .withChild(containerNode(TestModel.INNER_CONTAINER_QNAME)) + .build()) + .build()); assertEquals(Optional.empty(), pruner.getResult()); } @@ -358,32 +335,27 @@ public class NormalizedNodePrunerTest { .build(); AbstractNormalizedNodePruner pruner = prunerFullSchema(path); - MapNode innerList = mapNodeBuilder(TestModel.INVALID_QNAME).withChild(mapEntryBuilder( - TestModel.INVALID_QNAME, TestModel.NAME_QNAME, "one").withChild( - ImmutableNodes.containerNode(TestModel.INNER_CONTAINER_QNAME)).build()).build(); - NormalizedNode input = mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1) - .withChild(innerList).build(); - NormalizedNodeWriter.forStreamWriter(pruner).write(input); - - NormalizedNode expected = mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1); - NormalizedNode actual = pruner.getResult().orElseThrow(); - assertEquals("normalizedNode", expected, actual); + NormalizedNodeWriter.forStreamWriter(pruner) + .write(mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1) + .withChild(mapNodeBuilder(TestModel.INVALID_QNAME) + .withChild(mapEntryBuilder(TestModel.INVALID_QNAME, TestModel.NAME_QNAME, "one") + .withChild(containerNode(TestModel.INNER_CONTAINER_QNAME)) + .build()) + .build()) + .build()); + + assertEquals(mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1), + pruner.getResult().orElseThrow()); } - private static NormalizedNode createTestContainer() { - byte[] bytes1 = {1, 2, 3}; - LeafSetEntryNode entry1 = ImmutableLeafSetEntryNodeBuilder.create().withNodeIdentifier( - new NodeWithValue<>(TestModel.BINARY_LEAF_LIST_QNAME, bytes1)).withValue(bytes1).build(); - - byte[] bytes2 = {}; - LeafSetEntryNode entry2 = ImmutableLeafSetEntryNodeBuilder.create().withNodeIdentifier( - new NodeWithValue<>(TestModel.BINARY_LEAF_LIST_QNAME, bytes2)).withValue(bytes2).build(); - + private static ContainerNode createTestContainer() { return TestModel.createBaseTestContainerBuilder() - .withChild(ImmutableLeafSetNodeBuilder.create().withNodeIdentifier( - new NodeIdentifier(TestModel.BINARY_LEAF_LIST_QNAME)) - .withChild(entry1).withChild(entry2).build()) - .withChild(ImmutableNodes.leafNode(TestModel.SOME_BINARY_DATA_QNAME, new byte[]{1, 2, 3, 4})) - .build(); + .withChild(ImmutableNodes.newSystemLeafSetBuilder() + .withNodeIdentifier(new NodeIdentifier(TestModel.BINARY_LEAF_LIST_QNAME)) + .withChildValue(new byte[] {1, 2, 3}) + .withChildValue(new byte[0]) + .build()) + .withChild(ImmutableNodes.leafNode(TestModel.SOME_BINARY_DATA_QNAME, new byte[] {1, 2, 3, 4})) + .build(); } }