package org.opendaylight.yangtools.yang.data.tree.impl;
import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
-import com.google.common.collect.ImmutableMap;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppliedException;
import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
}
public void modification1() throws DataValidationFailedException {
- final var parentOrderedListNode = Builders.orderedMapBuilder().withNodeIdentifier(
- new NodeIdentifier(parentOrderedList))
- .withChild(createParentOrderedListEntry("pkval1", "plfval1"))
- .withChild(createParentOrderedListEntry("pkval2", "plfval2"))
- .withChild(createParentOrderedListEntry("pkval3", "plfval3")).build();
-
- final var parentContainerNode = Builders.containerBuilder().withNodeIdentifier(
- new NodeIdentifier(parentContainer)).withChild(Builders.containerBuilder()
- .withNodeIdentifier(new NodeIdentifier(childContainer)).withChild(parentOrderedListNode).build())
- .build();
+ final var parentOrderedListNode = ImmutableNodes.newUserMapBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentOrderedList))
+ .withChild(createParentOrderedListEntry("pkval1", "plfval1"))
+ .withChild(createParentOrderedListEntry("pkval2", "plfval2"))
+ .withChild(createParentOrderedListEntry("pkval3", "plfval3"))
+ .build();
+
+ final var parentContainerNode = ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentContainer))
+ .withChild(ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(childContainer))
+ .withChild(parentOrderedListNode)
+ .build())
+ .build();
final var path1 = YangInstanceIdentifier.of(parentContainer);
final var treeModification = inMemoryDataTree.takeSnapshot().newModification();
treeModification.write(path1, parentContainerNode);
- final var childOrderedListNode = Builders.orderedMapBuilder().withNodeIdentifier(
- new NodeIdentifier(childOrderedList))
- .withChild(createChildOrderedListEntry("chkval1", "chlfval1"))
- .withChild(createChildOrderedListEntry("chkval2", "chlfval2")).build();
+ final var childOrderedListNode = ImmutableNodes.newUserMapBuilder()
+ .withNodeIdentifier(new NodeIdentifier(childOrderedList))
+ .withChild(createChildOrderedListEntry("chkval1", "chlfval1"))
+ .withChild(createChildOrderedListEntry("chkval2", "chlfval2"))
+ .build();
final var path2 = YangInstanceIdentifier.of(parentContainer, childContainer, parentOrderedList)
.node(createParentOrderedListEntryPath("pkval2")).node(childOrderedList);
}
public void modification2() throws DataValidationFailedException {
- final var parentOrderedListNode = Builders.orderedMapBuilder().withNodeIdentifier(
- new NodeIdentifier(parentOrderedList))
- .withChild(createParentOrderedListEntry("pkval3", "plfval3updated"))
- .withChild(createParentOrderedListEntry("pkval4", "plfval4"))
- .withChild(createParentOrderedListEntry("pkval5", "plfval5")).build();
-
- final var parentContainerNode = Builders.containerBuilder().withNodeIdentifier(
- new NodeIdentifier(parentContainer)).withChild(Builders.containerBuilder()
- .withNodeIdentifier(new NodeIdentifier(childContainer)).withChild(parentOrderedListNode).build())
- .build();
+ final var parentOrderedListNode = ImmutableNodes.newUserMapBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentOrderedList))
+ .withChild(createParentOrderedListEntry("pkval3", "plfval3updated"))
+ .withChild(createParentOrderedListEntry("pkval4", "plfval4"))
+ .withChild(createParentOrderedListEntry("pkval5", "plfval5"))
+ .build();
+
+ final var parentContainerNode = ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentContainer))
+ .withChild(ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(childContainer))
+ .withChild(parentOrderedListNode)
+ .build())
+ .build();
final var treeModification = inMemoryDataTree.takeSnapshot().newModification();
final var path1 = YangInstanceIdentifier.of(parentContainer);
treeModification.merge(path1, parentContainerNode);
- final var childOrderedListNode = Builders.orderedMapBuilder().withNodeIdentifier(
- new NodeIdentifier(childOrderedList))
- .withChild(createChildOrderedListEntry("chkval1", "chlfval1updated"))
- .withChild(createChildOrderedListEntry("chkval2", "chlfval2updated"))
- .withChild(createChildOrderedListEntry("chkval3", "chlfval3")).build();
+ final var childOrderedListNode = ImmutableNodes.newUserMapBuilder()
+ .withNodeIdentifier(new NodeIdentifier(childOrderedList))
+ .withChild(createChildOrderedListEntry("chkval1", "chlfval1updated"))
+ .withChild(createChildOrderedListEntry("chkval2", "chlfval2updated"))
+ .withChild(createChildOrderedListEntry("chkval3", "chlfval3"))
+ .build();
final var path2 = YangInstanceIdentifier.of(parentContainer).node(childContainer)
.node(parentOrderedList).node(createParentOrderedListEntryPath("pkval2")).node(childOrderedList);
}
public void modification3() throws DataValidationFailedException {
- final var parentOrderedListNode = Builders.orderedMapBuilder().withNodeIdentifier(
- new NodeIdentifier(parentOrderedList))
- .withChild(createParentOrderedListEntry("pkval1", "plfval1")).build();
-
- final var parentContainerNode = Builders.containerBuilder().withNodeIdentifier(
- new NodeIdentifier(parentContainer)).withChild(Builders.containerBuilder()
- .withNodeIdentifier(new NodeIdentifier(childContainer)).withChild(parentOrderedListNode).build())
- .build();
+ final var parentOrderedListNode = ImmutableNodes.newUserMapBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentOrderedList))
+ .withChild(createParentOrderedListEntry("pkval1", "plfval1"))
+ .build();
+
+ final var parentContainerNode = ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentContainer))
+ .withChild(ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(childContainer))
+ .withChild(parentOrderedListNode)
+ .build())
+ .build();
final var path1 = YangInstanceIdentifier.of(parentContainer);
final var treeModification = inMemoryDataTree.takeSnapshot().newModification();
treeModification.write(path1, parentContainerNode);
- final var childOrderedListNode = Builders.orderedMapBuilder().withNodeIdentifier(
- new NodeIdentifier(childOrderedList))
- .withChild(createChildOrderedListEntry("chkval1", "chlfval1new")).build();
+ final var childOrderedListNode = ImmutableNodes.newUserMapBuilder()
+ .withNodeIdentifier(new NodeIdentifier(childOrderedList))
+ .withChild(createChildOrderedListEntry("chkval1", "chlfval1new"))
+ .build();
final var path2 = YangInstanceIdentifier.of(parentContainer).node(childContainer)
.node(parentOrderedList)
treeModification.merge(path2, childOrderedListNode);
- try {
- treeModification.ready();
- fail("Exception should have been thrown.");
- inMemoryDataTree.validate(treeModification);
- inMemoryDataTree.commit(inMemoryDataTree.prepare(treeModification));
- } catch (final IllegalArgumentException ex) {
- LOG.debug("IllegalArgumentException was thrown as expected", ex);
- assertTrue(ex.getMessage().contains("Metadata not available for modification ModifiedNode"));
- }
+ final var ex = assertThrows(IllegalArgumentException.class, treeModification::ready);
+ assertTrue(ex.getMessage().contains("Metadata not available for modification ModifiedNode"));
final var snapshotAfterCommits = inMemoryDataTree.takeSnapshot();
var readNode = snapshotAfterCommits.readNode(path1);
final var treeModification1 = inMemoryDataTree.takeSnapshot().newModification();
final var treeModification2 = inMemoryDataTree.takeSnapshot().newModification();
- final var parentOrderedListNode = Builders.orderedMapBuilder().withNodeIdentifier(
- new NodeIdentifier(parentOrderedList)).withChild(createParentOrderedListEntry("pkval1", "plfval1"))
- .build();
-
- final var parentOrderedListNode2 = Builders.orderedMapBuilder().withNodeIdentifier(
- new NodeIdentifier(parentOrderedList)).withChild(createParentOrderedListEntry("pkval2", "plfval2"))
- .build();
-
- final var parentContainerNode = Builders.containerBuilder().withNodeIdentifier(
- new NodeIdentifier(parentContainer)).withChild(Builders.containerBuilder()
- .withNodeIdentifier(new NodeIdentifier(childContainer)).withChild(parentOrderedListNode).build())
- .build();
-
- final var parentContainerNode2 = Builders.containerBuilder().withNodeIdentifier(
- new NodeIdentifier(parentContainer)).withChild(Builders.containerBuilder()
- .withNodeIdentifier(new NodeIdentifier(childContainer)).withChild(parentOrderedListNode2).build())
- .build();
+ final var parentOrderedListNode = ImmutableNodes.newUserMapBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentOrderedList))
+ .withChild(createParentOrderedListEntry("pkval1", "plfval1"))
+ .build();
+
+ final var parentOrderedListNode2 = ImmutableNodes.newUserMapBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentOrderedList))
+ .withChild(createParentOrderedListEntry("pkval2", "plfval2"))
+ .build();
+
+ final var parentContainerNode = ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentContainer))
+ .withChild(ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(childContainer))
+ .withChild(parentOrderedListNode)
+ .build())
+ .build();
+
+ final var parentContainerNode2 = ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(parentContainer))
+ .withChild(ImmutableNodes.newContainerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(childContainer))
+ .withChild(parentOrderedListNode2)
+ .build())
+ .build();
final var path = YangInstanceIdentifier.of(parentContainer);
inMemoryDataTree.validate(treeModification1);
inMemoryDataTree.commit(inMemoryDataTree.prepare(treeModification1));
- try {
- inMemoryDataTree.validate(treeModification2);
- fail("Exception should have been thrown.");
- inMemoryDataTree.commit(inMemoryDataTree.prepare(treeModification2));
- } catch (ConflictingModificationAppliedException ex) {
- LOG.debug("ConflictingModificationAppliedException was thrown as expected", ex);
- assertTrue(ex.getMessage().contains("Node was replaced by other transaction"));
- }
+ final var ex = assertThrows(ConflictingModificationAppliedException.class,
+ () -> inMemoryDataTree.validate(treeModification2));
+ LOG.debug("ConflictingModificationAppliedException was thrown as expected", ex);
+ assertTrue(ex.getMessage().contains("Node was replaced by other transaction"));
final var snapshotAfterCommits = inMemoryDataTree.takeSnapshot();
final var readNode = snapshotAfterCommits.readNode(path);
}
private MapEntryNode createParentOrderedListEntry(final String keyValue, final String leafValue) {
- return Builders.mapEntryBuilder().withNodeIdentifier(NodeIdentifierWithPredicates.of(parentOrderedList,
- parentKeyLeaf, keyValue))
- .withChild(Builders.leafBuilder().withNodeIdentifier(NodeIdentifier.create(parentOrdinaryLeaf))
- .withValue(leafValue).build()).build();
+ return ImmutableNodes.newMapEntryBuilder()
+ .withNodeIdentifier(NodeIdentifierWithPredicates.of(parentOrderedList, parentKeyLeaf, keyValue))
+ .withChild(ImmutableNodes.leafNode(parentOrdinaryLeaf, leafValue))
+ .build();
}
private MapEntryNode createChildOrderedListEntry(final String keyValue, final String leafValue) {
- return Builders.mapEntryBuilder().withNodeIdentifier(NodeIdentifierWithPredicates.of(childOrderedList,
- childKeyLeaf, keyValue))
- .withChild(Builders.leafBuilder().withNodeIdentifier(NodeIdentifier.create(childOrdinaryLeaf))
- .withValue(leafValue).build()).build();
+ return ImmutableNodes.newMapEntryBuilder()
+ .withNodeIdentifier(NodeIdentifierWithPredicates.of(childOrderedList, childKeyLeaf, keyValue))
+ .withChild(ImmutableNodes.leafNode(childOrdinaryLeaf, leafValue))
+ .build();
}
private NodeIdentifierWithPredicates createParentOrderedListEntryPath(final String keyValue) {
- ImmutableMap.Builder<QName, Object> builder = ImmutableMap.builder();
- ImmutableMap<QName, Object> keys = builder.put(parentKeyLeaf, keyValue).build();
- return NodeIdentifierWithPredicates.of(parentOrderedList, keys);
+ return NodeIdentifierWithPredicates.of(parentOrderedList, parentKeyLeaf, keyValue);
}
private NodeIdentifierWithPredicates createChildOrderedListEntryPath(final String keyValue) {
- ImmutableMap.Builder<QName, Object> builder = ImmutableMap.builder();
- ImmutableMap<QName, Object> keys = builder.put(childKeyLeaf, keyValue).build();
- return NodeIdentifierWithPredicates.of(childOrderedList, keys);
+ return NodeIdentifierWithPredicates.of(childOrderedList, childKeyLeaf, keyValue);
}
}