+ @Test
+ public void readLeafWithDefaultParameters() {
+ final LeafNode leafNode = Builders.leafBuilder().withNodeIdentifier(
+ new NodeIdentifier(QName.create(DATA.base, "exampleLeaf"))).withValue("i am leaf").build();
+
+ final ContainerNode content = Builders.containerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(QName.create(DATA.base, "cont")))
+ .withChild(leafNode)
+ .build();
+
+ final YangInstanceIdentifier path = YangInstanceIdentifier.builder().node(content.getIdentifier()).build();
+
+ doReturn(immediateFluentFuture(Optional.of(content))).when(read)
+ .read(LogicalDatastoreType.CONFIGURATION, path);
+ doReturn(immediateFluentFuture(Optional.of(content))).when(read)
+ .read(LogicalDatastoreType.OPERATIONAL, path);
+
+ final NormalizedNode normalizedNode = ReadDataTransactionUtil.readData(
+ ContentParam.ALL, path, mdsalStrategy, WithDefaultsParam.TRIM, schemaContext);
+ assertEquals(content, normalizedNode);
+ }
+
+ @Test
+ public void readContainerWithDefaultParameters() {
+ final QName leafBool = QName.create(DATA.base, "leafBool");
+ final QName containerBool = QName.create(DATA.base, "containerBool");
+ final QName containerInt = QName.create(DATA.base, "containerInt");
+ final QName leafInt = QName.create(DATA.base, "leafInt");
+ final QName exampleList = QName.create(DATA.base, "exampleList");
+ final QName cont = QName.create(DATA.base, "cont");
+
+ final LeafNode leafNode = Builders.leafBuilder().withNodeIdentifier(
+ NodeIdentifier.create(leafBool))
+ .withValue(true).build();
+ final ContainerNode containerNode = Builders.containerBuilder().withNodeIdentifier(
+ NodeIdentifier.create(containerBool))
+ .withChild(leafNode).build();
+ final LeafNode leafNode1 = Builders.leafBuilder().withNodeIdentifier(
+ NodeIdentifier.create(leafInt))
+ .withValue(12).build();
+ final ContainerNode containerNode1 = Builders.containerBuilder().withNodeIdentifier(
+ NodeIdentifier.create(containerInt))
+ .withChild(leafNode1).build();
+ final MapEntryNode entryNode = Builders.mapEntryBuilder()
+ .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifierWithPredicates.of(exampleList))
+ .withChild(containerNode)
+ .addChild(containerNode1).build();
+ final MapNode mapNode = Builders.mapBuilder().withNodeIdentifier(
+ NodeIdentifier.create(exampleList))
+ .withChild(entryNode).build();
+ final ContainerNode content = Builders.containerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(cont))
+ .withChild(mapNode).build();
+
+ final YangInstanceIdentifier path = YangInstanceIdentifier.builder().node(cont).build();
+
+ doReturn(immediateFluentFuture(Optional.of(content))).when(read)
+ .read(LogicalDatastoreType.CONFIGURATION, path);
+ doReturn(immediateFluentFuture(Optional.of(content))).when(read)
+ .read(LogicalDatastoreType.OPERATIONAL, path);
+
+ final NormalizedNode normalizedNode = ReadDataTransactionUtil.readData(
+ ContentParam.ALL, path, mdsalStrategy, WithDefaultsParam.TRIM, schemaContext);
+
+//assertEquals(content, normalizedNode); is not used because two duplicated child nodes are created in mapEntryNode
+ assertTrue(normalizedNode instanceof ContainerNode);
+ assertEquals(((MapNode) ((ContainerNode) normalizedNode).getChildByArg(
+ NodeIdentifier.create(exampleList))).getChildByArg(
+ YangInstanceIdentifier.NodeIdentifierWithPredicates.of(exampleList)),
+ ((MapNode) content.getChildByArg(
+ NodeIdentifier.create(exampleList))).childByArg(
+ YangInstanceIdentifier.NodeIdentifierWithPredicates.of(exampleList)));
+ }
+
+ @Test
+ public void readLeafInListWithDefaultParameters() {
+ final QName leafInList = QName.create(DATA.base, "leafInList");
+ final QName exampleList = QName.create(DATA.base, "exampleList");
+ final QName container = QName.create(DATA.base, "cont");
+
+ final LeafNode leafNode = Builders.leafBuilder().withNodeIdentifier(
+ NodeIdentifier.create(leafInList))
+ .withValue("I am leaf in list").build();
+
+ final MapEntryNode entryNode = Builders.mapEntryBuilder()
+ .withNodeIdentifier(
+ YangInstanceIdentifier.NodeIdentifierWithPredicates.of(exampleList))
+ .addChild(leafNode).build();
+
+ final MapNode mapNode = Builders.mapBuilder().withNodeIdentifier(
+ NodeIdentifier.create(QName.create(DATA.base, "exampleList")))
+ .withChild(entryNode).build();
+
+ final ContainerNode content = Builders.containerBuilder()
+ .withNodeIdentifier(new NodeIdentifier(container))
+ .withChild(mapNode).build();
+
+ final YangInstanceIdentifier path = YangInstanceIdentifier.builder().node(container).build();
+
+ doReturn(immediateFluentFuture(Optional.of(content))).when(read)
+ .read(LogicalDatastoreType.CONFIGURATION, path);
+ doReturn(immediateFluentFuture(Optional.of(content))).when(read)
+ .read(LogicalDatastoreType.OPERATIONAL, path);
+
+ final NormalizedNode normalizedNode = ReadDataTransactionUtil.readData(
+ ContentParam.ALL, path, mdsalStrategy, WithDefaultsParam.TRIM, schemaContext);
+ assertEquals(content, normalizedNode);
+ }
+