+ mod.write(CarsModel.BASE_PATH, CarsModel.create());
+ shardDataTree.commit(mod);
+
+ NormalizedNode<?, ?> normalizedNode = shardDataTree.readNode(YangInstanceIdentifier.EMPTY).get();
+ pruningDataTreeModification.write(YangInstanceIdentifier.EMPTY, normalizedNode);
+ dataTree.commit(getCandidate());
+
+ Optional<NormalizedNode<?, ?>> actual = dataTree.takeSnapshot().readNode(YangInstanceIdentifier.EMPTY);
+ assertEquals("Root present", true, actual.isPresent());
+ assertEquals("Root node", normalizedNode, actual.get());
+
+ }
+
+ @Test
+ public void testWriteRootNodeWithInvalidChild() throws Exception{
+ ShardDataTree shardDataTree = new ShardDataTree(SCHEMA_CONTEXT, TreeType.CONFIGURATION);
+ NormalizedNode<?, ?> root = shardDataTree.readNode(YangInstanceIdentifier.EMPTY).get();
+
+ NormalizedNode<?, ?> normalizedNode = ImmutableContainerNodeBuilder.create().withNodeIdentifier(
+ new YangInstanceIdentifier.NodeIdentifier(root.getNodeType())).withChild(
+ ImmutableNodes.containerNode(AUG_CONTAINER)).build();
+ pruningDataTreeModification.write(YangInstanceIdentifier.EMPTY, normalizedNode);
+ dataTree.commit(getCandidate());
+
+ Optional<NormalizedNode<?, ?>> actual = dataTree.takeSnapshot().readNode(YangInstanceIdentifier.EMPTY);
+ assertEquals("Root present", true, actual.isPresent());
+ assertEquals("Root node", root, actual.get());
+
+ }
+
+ @Test
+ public void testWriteWithInvalidNamespace() throws DataValidationFailedException{
+ NormalizedNode<?, ?> normalizedNode = PeopleModel.emptyContainer();
+ YangInstanceIdentifier path = PeopleModel.BASE_PATH;
+
+ pruningDataTreeModification.write(path, normalizedNode);
+
+ verify(mockModification, times(1)).write(path, normalizedNode);
+
+ DataTreeCandidateTip candidate = getCandidate();
+ assertEquals("getModificationType", ModificationType.UNMODIFIED, candidate.getRootNode().getModificationType());
+ }
+
+ @Test
+ public void testWriteWithInvalidChildNodeNames() throws DataValidationFailedException{
+ ContainerNode augContainer = ImmutableContainerNodeBuilder.create().withNodeIdentifier(
+ new YangInstanceIdentifier.NodeIdentifier(AUG_CONTAINER)).withChild(
+ ImmutableNodes.containerNode(AUG_INNER_CONTAINER)).build();
+
+ DataContainerChild<?, ?> outerNode = outerNode(outerNodeEntry(1, innerNode("one", "two")));
+ ContainerNode normalizedNode = ImmutableContainerNodeBuilder.create().withNodeIdentifier(
+ new YangInstanceIdentifier.NodeIdentifier(TEST_QNAME)).withChild(outerNode).withChild(augContainer).
+ withChild(ImmutableNodes.leafNode(AUG_QNAME, "aug")).
+ withChild(ImmutableNodes.leafNode(NAME_QNAME, "name")).build();
+
+ YangInstanceIdentifier path = TestModel.TEST_PATH;