X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-dom-it%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Ftest%2Fbugfix%2FWriteParentListenAugmentTest.java;h=4a76ad97fd5da06da2c05994c516d88f3ed9613b;hb=8e4580f8989c7a40861be1c025822ebba4f1cb07;hp=b09ba39a65e120f20c51801f2a699552f91132eb;hpb=cbe83ca3074fa0182d4f079f528bb710a997ced7;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/WriteParentListenAugmentTest.java b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/WriteParentListenAugmentTest.java index b09ba39a65..4a76ad97fd 100644 --- a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/WriteParentListenAugmentTest.java +++ b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/WriteParentListenAugmentTest.java @@ -9,82 +9,76 @@ package org.opendaylight.controller.sal.binding.test.bugfix; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL; +import com.google.common.collect.ImmutableSet; import java.util.concurrent.TimeUnit; - import org.junit.Test; -import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent; -import org.opendaylight.controller.sal.binding.api.data.DataChangeListener; -import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction; -import org.opendaylight.controller.sal.binding.test.AbstractDataServiceTest; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; -import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; +import org.opendaylight.controller.md.sal.binding.test.AbstractDataTreeChangeListenerTest; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.augment.rev140709.TreeComplexUsesAugment; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.augment.rev140709.TreeComplexUsesAugmentBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.augment.rev140709.complex.from.grouping.ContainerWithUsesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.Top; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelListBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelListKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.YangModuleInfo; +import org.opendaylight.yangtools.yang.binding.util.BindingReflections; -import com.google.common.util.concurrent.SettableFuture; +public class WriteParentListenAugmentTest extends AbstractDataTreeChangeListenerTest { -@SuppressWarnings("deprecation") -public class WriteParentListenAugmentTest extends AbstractDataServiceTest { + private static final String TLL_NAME = "foo"; - private static final String NODE_ID = "node:1"; + private static final TopLevelListKey TLL_KEY = new TopLevelListKey(TLL_NAME); + private static final InstanceIdentifier TLL_INSTANCE_ID_BA = InstanceIdentifier.builder(Top.class) + .child(TopLevelList.class, TLL_KEY).build(); - private static final NodeKey NODE_KEY = new NodeKey(new NodeId(NODE_ID)); - private static final InstanceIdentifier NODE_INSTANCE_ID_BA = InstanceIdentifier.builder(Nodes.class) // - .child(Node.class, NODE_KEY).toInstance(); + private static final InstanceIdentifier AUGMENT_WILDCARDED_PATH = InstanceIdentifier + .builder(Top.class).child(TopLevelList.class).augmentation(TreeComplexUsesAugment.class).build(); - private static final InstanceIdentifier AUGMENT_WILDCARDED_PATH = InstanceIdentifier - .builder(Nodes.class).child(Node.class).augmentation(FlowCapableNode.class).toInstance(); + private static final InstanceIdentifier AUGMENT_TLL_PATH = InstanceIdentifier + .builder(Top.class).child(TopLevelList.class, TLL_KEY).augmentation(TreeComplexUsesAugment.class).build(); - private static final InstanceIdentifier AUGMENT_NODE_PATH = InstanceIdentifier - .builder(Nodes.class).child(Node.class, NODE_KEY).augmentation(FlowCapableNode.class).toInstance(); + @Override + protected Iterable getModuleInfos() throws Exception { + return ImmutableSet.of(BindingReflections.getModuleInfo(Top.class), + BindingReflections.getModuleInfo(TreeComplexUsesAugment.class)); + } @Test public void writeNodeListenAugment() throws Exception { - final SettableFuture, DataObject>> event = SettableFuture.create(); - - ListenerRegistration dclRegistration = baDataService.registerDataChangeListener( - AUGMENT_WILDCARDED_PATH, new DataChangeListener() { - - @Override - public void onDataChanged(final DataChangeEvent, DataObject> change) { - event.set(change); - } - }); + DataBroker dataBroker = getDataBroker(); - DataModificationTransaction modification = baDataService.beginTransaction(); + final TreeComplexUsesAugment treeComplexUsesAugment = treeComplexUsesAugment("one"); - Node node = new NodeBuilder() // - .setKey(NODE_KEY) // - .addAugmentation(FlowCapableNode.class, flowCapableNode("one")).build(); - modification.putOperationalData(NODE_INSTANCE_ID_BA, node); - modification.commit().get(); + final TestListener listener = createListener(OPERATIONAL, AUGMENT_WILDCARDED_PATH, + added(AUGMENT_TLL_PATH, treeComplexUsesAugment)); - DataChangeEvent, DataObject> receivedEvent = event.get(1000, TimeUnit.MILLISECONDS); - assertTrue(receivedEvent.getCreatedOperationalData().containsKey(AUGMENT_NODE_PATH)); + final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction(); - dclRegistration.close(); + TopLevelList tll = new TopLevelListBuilder().setKey(TLL_KEY) + .addAugmentation(TreeComplexUsesAugment.class, treeComplexUsesAugment).build(); + transaction.put(OPERATIONAL, TLL_INSTANCE_ID_BA, tll, true); + transaction.submit().get(5, TimeUnit.SECONDS); - DataModificationTransaction mod2 = baDataService.beginTransaction(); - mod2.putOperationalData(AUGMENT_NODE_PATH, flowCapableNode("two")); - mod2.commit().get(); + listener.verify(); - FlowCapableNode readedAug = (FlowCapableNode) baDataService.readOperationalData(AUGMENT_NODE_PATH); - assertEquals("two", readedAug.getDescription()); + final WriteTransaction transaction2 = dataBroker.newWriteOnlyTransaction(); + transaction2.put(OPERATIONAL, AUGMENT_TLL_PATH, treeComplexUsesAugment("two")); + transaction2.submit().get(5, TimeUnit.SECONDS); + TreeComplexUsesAugment readedAug = dataBroker.newReadOnlyTransaction().read( + OPERATIONAL, AUGMENT_TLL_PATH).get(5, TimeUnit.SECONDS).get(); + assertEquals("two", readedAug.getContainerWithUses().getLeafFromGrouping()); } - private FlowCapableNode flowCapableNode(final String description) { - return new FlowCapableNodeBuilder() // - .setDescription(description) // + private static TreeComplexUsesAugment treeComplexUsesAugment(final String value) { + return new TreeComplexUsesAugmentBuilder() + .setContainerWithUses(new ContainerWithUsesBuilder().setLeafFromGrouping(value).build()) .build(); } -} \ No newline at end of file +}