X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Ftree%2FBug5968Test.java;h=7772cf2ad2397116ec3a73f74e953f0a964a08b9;hb=970923b5f47f7507ec78021965fa5df1a878af48;hp=620342422c2e2f7316e2dad6a5005614b480c615;hpb=a6ea70c09b13489918c387d54cde8f1095721acc;p=yangtools.git diff --git a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug5968Test.java b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug5968Test.java index 620342422c..7772cf2ad2 100644 --- a/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug5968Test.java +++ b/yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/Bug5968Test.java @@ -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; @@ -20,41 +20,46 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; 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.SystemMapNode; +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; 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.DataContainerNodeAttrBuilder; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; public class Bug5968Test { - private static final String NS = "foo"; + private static final String NS = "bug5968"; private static final String REV = "2016-07-28"; private static final QName ROOT = QName.create(NS, REV, "root"); private static final QName MY_LIST = QName.create(NS, REV, "my-list"); 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; - @Before - public void init() throws ReactorException { - this.schemaContext = TestModel.createTestContext("/bug5968/foo.yang"); - assertNotNull("Schema context must not be null.", this.schemaContext); + private static EffectiveModelContext SCHEMA_CONTEXT; + + @BeforeClass + public static void beforeClass() { + SCHEMA_CONTEXT = TestModel.createTestContext("/bug5968.yang"); + } + + @AfterClass + public static void afterClass() { + SCHEMA_CONTEXT = null; } - private static InMemoryDataTree initDataTree(final SchemaContext schemaContext, final boolean withMapNode) + private static DataTree initDataTree(final EffectiveModelContext schemaContext, final boolean withMapNode) throws DataValidationFailedException { - final InMemoryDataTree inMemoryDataTree = (InMemoryDataTree) InMemoryDataTreeFactory.getInstance().create( - DataTreeConfiguration.DEFAULT_CONFIGURATION); - inMemoryDataTree.setSchemaContext(schemaContext); + final DataTree inMemoryDataTree = new InMemoryDataTreeFactory().create( + DataTreeConfiguration.DEFAULT_CONFIGURATION, schemaContext); - final DataContainerNodeAttrBuilder root = Builders.containerBuilder() + final DataContainerNodeBuilder root = Builders.containerBuilder() .withNodeIdentifier(new NodeIdentifier(ROOT)); - final InMemoryDataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); + final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); modificationTree.write( YangInstanceIdentifier.of(ROOT), withMapNode ? root.withChild( @@ -69,24 +74,20 @@ public class Bug5968Test { return inMemoryDataTree; } - private static InMemoryDataTree emptyDataTree(final SchemaContext schemaContext) + private static DataTree emptyDataTree(final EffectiveModelContext schemaContext) throws DataValidationFailedException { - final InMemoryDataTree inMemoryDataTree = (InMemoryDataTree) InMemoryDataTreeFactory.getInstance().create( - DataTreeConfiguration.DEFAULT_CONFIGURATION); - inMemoryDataTree.setSchemaContext(schemaContext); - - return inMemoryDataTree; + return new InMemoryDataTreeFactory().create(DataTreeConfiguration.DEFAULT_CONFIGURATION, schemaContext); } @Test - public void writeInvalidContainerTest() throws ReactorException, DataValidationFailedException { - final InMemoryDataTree inMemoryDataTree = emptyDataTree(schemaContext); + public void writeInvalidContainerTest() throws DataValidationFailedException { + final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT); - final MapNode myList = createMap(true); - final DataContainerNodeAttrBuilder root = Builders.containerBuilder() + final SystemMapNode myList = createMap(true); + final DataContainerNodeBuilder root = Builders.containerBuilder() .withNodeIdentifier(new NodeIdentifier(ROOT)).withChild(myList); - final InMemoryDataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); + final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); modificationTree.write(YangInstanceIdentifier.of(ROOT), root.build()); try { @@ -96,16 +97,15 @@ public class Bug5968Test { inMemoryDataTree.commit(prepare); fail("Should fail due to missing mandatory leaf."); } catch (final IllegalArgumentException e) { - assertEquals( - "Node (foo?revision=2016-07-28)my-list[{(foo?revision=2016-07-28)list-id=1}] is missing mandatory " - + "descendant /(foo?revision=2016-07-28)mandatory-leaf", e.getMessage()); + assertEquals("Node (bug5968?revision=2016-07-28)my-list[{(bug5968?revision=2016-07-28)list-id=1}] is " + + "missing mandatory descendant /(bug5968?revision=2016-07-28)mandatory-leaf", e.getMessage()); } } @Test - public void writeInvalidMapTest() throws ReactorException, DataValidationFailedException { - final InMemoryDataTree inMemoryDataTree = emptyDataTree(schemaContext); - final InMemoryDataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); + public void writeInvalidMapTest() throws DataValidationFailedException { + final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT); + final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); writeMap(modificationTree, true); try { @@ -115,16 +115,15 @@ public class Bug5968Test { inMemoryDataTree.commit(prepare); fail("Should fail due to missing mandatory leaf."); } catch (final IllegalArgumentException e) { - assertEquals( - "Node (foo?revision=2016-07-28)my-list[{(foo?revision=2016-07-28)list-id=1}] is missing mandatory " - + "descendant /(foo?revision=2016-07-28)mandatory-leaf", e.getMessage()); + assertEquals("Node (bug5968?revision=2016-07-28)my-list[{(bug5968?revision=2016-07-28)list-id=1}] is " + + "missing mandatory descendant /(bug5968?revision=2016-07-28)mandatory-leaf", e.getMessage()); } } @Test - public void writeInvalidMapEntryTest() throws ReactorException, DataValidationFailedException { - final InMemoryDataTree inMemoryDataTree = initDataTree(schemaContext, true); - final InMemoryDataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); + public void writeInvalidMapEntryTest() throws DataValidationFailedException { + final DataTree inMemoryDataTree = initDataTree(SCHEMA_CONTEXT, true); + final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); writeMapEntry(modificationTree, "1", null, "common-value"); @@ -135,42 +134,38 @@ public class Bug5968Test { inMemoryDataTree.commit(prepare); fail("Should fail due to missing mandatory leaf."); } catch (final IllegalArgumentException e) { - assertEquals( - "Node (foo?revision=2016-07-28)my-list[{(foo?revision=2016-07-28)list-id=1}] is missing mandatory " - + "descendant /(foo?revision=2016-07-28)mandatory-leaf", e.getMessage()); + assertEquals("Node (bug5968?revision=2016-07-28)my-list[{(bug5968?revision=2016-07-28)list-id=1}] is " + + "missing mandatory descendant /(bug5968?revision=2016-07-28)mandatory-leaf", e.getMessage()); } } - private static void writeMap(final InMemoryDataTreeModification modificationTree, - final boolean mandatoryDataMissing) { - final MapNode myList = createMap(mandatoryDataMissing); - modificationTree.write(YangInstanceIdentifier.of(ROOT).node(MY_LIST), myList); + private static void writeMap(final DataTreeModification modificationTree, final boolean mandatoryDataMissing) { + modificationTree.write(YangInstanceIdentifier.of(ROOT).node(MY_LIST), createMap(mandatoryDataMissing)); } - private static MapNode createMap(final boolean mandatoryDataMissing) { - return Builders - .mapBuilder() - .withNodeIdentifier(new NodeIdentifier(MY_LIST)) - .withChild( - mandatoryDataMissing ? createMapEntry("1", "common-value") : createMapEntry("1", - "mandatory-value", "common-value")).build(); + private static SystemMapNode createMap(final boolean mandatoryDataMissing) { + return Builders.mapBuilder() + .withNodeIdentifier(new NodeIdentifier(MY_LIST)) + .withChild(mandatoryDataMissing ? createMapEntry("1", "common-value") + : createMapEntry("1", "mandatory-value", "common-value")) + .build(); } - private static void writeMapEntry(final InMemoryDataTreeModification modificationTree, final Object listIdValue, + private static void writeMapEntry(final DataTreeModification modificationTree, final Object listIdValue, final Object mandatoryLeafValue, final Object commonLeafValue) throws DataValidationFailedException { final MapEntryNode taskEntryNode = mandatoryLeafValue == null ? createMapEntry(listIdValue, commonLeafValue) : createMapEntry(listIdValue, mandatoryLeafValue, commonLeafValue); modificationTree.write( 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) { 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(); @@ -178,20 +173,20 @@ public class Bug5968Test { private static MapEntryNode createMapEntry(final Object listIdValue, final Object commonLeafValue) { 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(); } @Test - public void writeValidContainerTest() throws ReactorException, DataValidationFailedException { - final InMemoryDataTree inMemoryDataTree = emptyDataTree(schemaContext); + public void writeValidContainerTest() throws DataValidationFailedException { + final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT); - final MapNode myList = createMap(false); - final DataContainerNodeAttrBuilder root = Builders.containerBuilder() + final SystemMapNode myList = createMap(false); + final DataContainerNodeBuilder root = Builders.containerBuilder() .withNodeIdentifier(new NodeIdentifier(ROOT)).withChild(myList); - final InMemoryDataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); + final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); modificationTree.write(YangInstanceIdentifier.of(ROOT), root.build()); modificationTree.ready(); inMemoryDataTree.validate(modificationTree); @@ -200,9 +195,9 @@ public class Bug5968Test { } @Test - public void writeValidMapTest() throws ReactorException, DataValidationFailedException { - final InMemoryDataTree inMemoryDataTree = emptyDataTree(schemaContext); - final InMemoryDataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); + public void writeValidMapTest() throws DataValidationFailedException { + final DataTree inMemoryDataTree = emptyDataTree(SCHEMA_CONTEXT); + final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); writeMap(modificationTree, false); modificationTree.ready(); @@ -212,9 +207,9 @@ public class Bug5968Test { } @Test - public void writeValidMapEntryTest() throws ReactorException, DataValidationFailedException { - final InMemoryDataTree inMemoryDataTree = initDataTree(schemaContext, true); - final InMemoryDataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); + public void writeValidMapEntryTest() throws DataValidationFailedException { + final DataTree inMemoryDataTree = initDataTree(SCHEMA_CONTEXT, true); + final DataTreeModification modificationTree = inMemoryDataTree.takeSnapshot().newModification(); writeMapEntry(modificationTree, "1", "mandatory-value", "common-value");