use of org.opendaylight.yang.gen.v1.urn.test.opendaylight.mdsal298.rev180129.ContainerBuilder in project mdsal by opendaylight.
the class Mdsal298Test method testKeyedDataTreeModification.
@Test
public void testKeyedDataTreeModification() throws InterruptedException, ExecutionException {
final DataTreeChangeListener<Container> listener = assertWrittenContainer(Container.QNAME, Container.class, new ContainerBuilder().build());
final DOMDataTreeWriteTransaction domTx = getDomBroker().newWriteOnlyTransaction();
domTx.put(CONFIGURATION, YangInstanceIdentifier.create(CONTAINER_NID).node(Keyed.QNAME), Builders.orderedMapBuilder().withNodeIdentifier(new NodeIdentifier(Keyed.QNAME)).addChild(Builders.mapEntryBuilder().withNodeIdentifier(NodeIdentifierWithPredicates.of(Keyed.QNAME, FOO_QNAME, "foo")).addChild(ImmutableNodes.leafNode(FOO_QNAME, "foo")).build()).addChild(Builders.mapEntryBuilder().withNodeIdentifier(NodeIdentifierWithPredicates.of(Keyed.QNAME, FOO_QNAME, "bar")).addChild(ImmutableNodes.leafNode(FOO_QNAME, "bar")).build()).build());
domTx.commit().get();
final ArgumentCaptor<Collection> captor = ArgumentCaptor.forClass(Collection.class);
verify(listener).onDataTreeChanged(captor.capture());
Collection<DataTreeModification<Container>> capture = captor.getValue();
assertEquals(1, capture.size());
final DataTreeModification<Container> change = capture.iterator().next();
assertEquals(CONTAINER_TID, change.getRootPath());
final DataObjectModification<Container> changedContainer = change.getRootNode();
assertEquals(Item.of(Container.class), changedContainer.getIdentifier());
assertEquals(ModificationType.SUBTREE_MODIFIED, changedContainer.getModificationType());
final Container containerAfter = changedContainer.getDataAfter();
assertEquals(new ContainerBuilder().setKeyed(List.of(new KeyedBuilder().setFoo("foo").withKey(new KeyedKey("foo")).build(), new KeyedBuilder().setFoo("bar").withKey(new KeyedKey("bar")).build())).build(), containerAfter);
final Collection<? extends DataObjectModification<?>> changedChildren = changedContainer.getModifiedChildren();
assertEquals(2, changedChildren.size());
final Iterator<? extends DataObjectModification<?>> it = changedChildren.iterator();
final DataObjectModification<?> changedChild1 = it.next();
assertEquals(ModificationType.WRITE, changedChild1.getModificationType());
assertEquals(List.of(), changedChild1.getModifiedChildren());
final Keyed child1After = (Keyed) changedChild1.getDataAfter();
assertEquals("foo", child1After.getFoo());
final DataObjectModification<?> changedChild2 = it.next();
assertEquals(ModificationType.WRITE, changedChild2.getModificationType());
assertEquals(List.of(), changedChild2.getModifiedChildren());
final Keyed child2After = (Keyed) changedChild2.getDataAfter();
assertEquals("bar", child2After.getFoo());
}
use of org.opendaylight.yang.gen.v1.urn.test.opendaylight.mdsal298.rev180129.ContainerBuilder in project mdsal by opendaylight.
the class TestListSquashing method testUserOrderedList.
@Test
public void testUserOrderedList() {
final Keyed keyed = new KeyedBuilder().withKey(new KeyedKey("a")).build();
final Unkeyed unkeyed = new UnkeyedBuilder().build();
final Container cont = new ContainerBuilder().setKeyed(List.of(keyed)).setUnkeyed(List.of(unkeyed)).build();
// Non-empty Lists should be retained
assertEquals(List.of(keyed), cont.getKeyed());
assertEquals(List.of(unkeyed), cont.getUnkeyed());
}
use of org.opendaylight.yang.gen.v1.urn.test.opendaylight.mdsal298.rev180129.ContainerBuilder in project mdsal by opendaylight.
the class NormalizedNodeSerializeDeserializeTest method augmentMultipleChoices.
@Test
public void augmentMultipleChoices() {
final QName augmentChoice1QName = AugmentChoice1.QNAME;
final QName augmentChoice2QName = QName.create(augmentChoice1QName, "augment-choice2");
final QName containerQName = QName.create(augmentChoice1QName, "case11-choice-case-container");
final QName leafQName = QName.create(augmentChoice1QName, "case11-choice-case-leaf");
final AugmentationIdentifier aug1Id = new AugmentationIdentifier(Set.of(augmentChoice1QName));
final AugmentationIdentifier aug2Id = new AugmentationIdentifier(Set.of(augmentChoice2QName));
final NodeIdentifier augmentChoice1Id = new NodeIdentifier(augmentChoice1QName);
final NodeIdentifier augmentChoice2Id = new NodeIdentifier(augmentChoice2QName);
final NodeIdentifier containerId = new NodeIdentifier(containerQName);
final TopBuilder tBuilder = new TopBuilder();
final TopChoiceAugment1Builder tca1Builder = new TopChoiceAugment1Builder();
final Case1Builder c1Builder = new Case1Builder();
final TopChoiceAugment2Builder tca2Builder = new TopChoiceAugment2Builder();
final Case11Builder c11Builder = new Case11Builder();
final Case11ChoiceCaseContainerBuilder cccc1Builder = new Case11ChoiceCaseContainerBuilder();
cccc1Builder.setCase11ChoiceCaseLeaf("leaf-value");
c11Builder.setCase11ChoiceCaseContainer(cccc1Builder.build());
tca2Builder.setAugmentChoice2(c11Builder.build());
c1Builder.addAugmentation(tca2Builder.build());
tca1Builder.setAugmentChoice1(c1Builder.build());
tBuilder.addAugmentation(tca1Builder.build());
final Top top = tBuilder.build();
final Entry<YangInstanceIdentifier, NormalizedNode> biResult = codecContext.toNormalizedNode(InstanceIdentifier.create(Top.class), top);
final NormalizedNode topNormalized = containerBuilder().withNodeIdentifier(new NodeIdentifier(TOP_QNAME)).withChild(augmentationBuilder().withNodeIdentifier(aug1Id).withChild(choiceBuilder().withNodeIdentifier(augmentChoice1Id).withChild(augmentationBuilder().withNodeIdentifier(aug2Id).withChild(choiceBuilder().withNodeIdentifier(augmentChoice2Id).withChild(containerBuilder().withNodeIdentifier(containerId).withChild(leafNode(leafQName, "leaf-value")).build()).build()).build()).build()).build()).build();
assertEquals(BI_TOP_PATH, biResult.getKey());
assertEquals(topNormalized, biResult.getValue());
final Entry<InstanceIdentifier<?>, DataObject> baResult = codecContext.fromNormalizedNode(BI_TOP_PATH, topNormalized);
assertEquals(InstanceIdentifier.create(Top.class), baResult.getKey());
assertEquals(top, baResult.getValue());
}
use of org.opendaylight.yang.gen.v1.urn.test.opendaylight.mdsal298.rev180129.ContainerBuilder in project mdsal by opendaylight.
the class Mdsal298Test method testUnkeyedDataTreeModification.
@Test
public void testUnkeyedDataTreeModification() throws InterruptedException, ExecutionException {
final DataTreeChangeListener<Container> listener = assertWrittenContainer(Container.QNAME, Container.class, new ContainerBuilder().build());
final DOMDataTreeWriteTransaction domTx = getDomBroker().newWriteOnlyTransaction();
domTx.put(CONFIGURATION, YangInstanceIdentifier.create(CONTAINER_NID).node(Unkeyed.QNAME), Builders.unkeyedListBuilder().withNodeIdentifier(new NodeIdentifier(Unkeyed.QNAME)).withChild(Builders.unkeyedListEntryBuilder().withNodeIdentifier(new NodeIdentifier(Unkeyed.QNAME)).addChild(ImmutableNodes.leafNode(FOO_QNAME, "foo")).build()).withChild(Builders.unkeyedListEntryBuilder().withNodeIdentifier(new NodeIdentifier(Unkeyed.QNAME)).addChild(ImmutableNodes.leafNode(FOO_QNAME, "bar")).build()).build());
domTx.commit().get();
final ArgumentCaptor<Collection> captor = ArgumentCaptor.forClass(Collection.class);
verify(listener).onDataTreeChanged(captor.capture());
Collection<DataTreeModification<Container>> capture = captor.getValue();
assertEquals(1, capture.size());
final DataTreeModification<Container> change = capture.iterator().next();
assertEquals(CONTAINER_TID, change.getRootPath());
final DataObjectModification<Container> changedContainer = change.getRootNode();
assertEquals(Item.of(Container.class), changedContainer.getIdentifier());
assertEquals(ModificationType.WRITE, changedContainer.getModificationType());
final Container containerAfter = changedContainer.getDataAfter();
assertEquals(new ContainerBuilder().setUnkeyed(List.of(new UnkeyedBuilder().setFoo("foo").build(), new UnkeyedBuilder().setFoo("bar").build())).build(), containerAfter);
final Collection<? extends DataObjectModification<?>> changedChildren = changedContainer.getModifiedChildren();
assertEquals(0, changedChildren.size());
}
use of org.opendaylight.yang.gen.v1.urn.test.opendaylight.mdsal298.rev180129.ContainerBuilder in project mdsal by opendaylight.
the class TestListSquashing method testEmptyUserOrderedList.
@Test
public void testEmptyUserOrderedList() {
final Container cont = new ContainerBuilder().setKeyed(List.of()).setUnkeyed(List.of()).build();
// Empty Lists should become null
assertNull(cont.getKeyed());
assertNull(cont.getUnkeyed());
}
Aggregations