X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2Ftest%2FBug1333DataChangeListenerTest.java;h=93331c763fd6f7058f38b4b1ea7fa9f05acf3782;hp=e7b03d9b146f432e0a4722f42a97905216d4a5a7;hb=8e4580f8989c7a40861be1c025822ebba4f1cb07;hpb=1e50fbad8d8605b73d5b2be8f5ae30b437b33780 diff --git a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug1333DataChangeListenerTest.java b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug1333DataChangeListenerTest.java index e7b03d9b14..93331c763f 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug1333DataChangeListenerTest.java +++ b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug1333DataChangeListenerTest.java @@ -7,9 +7,6 @@ */ package org.opendaylight.controller.md.sal.binding.impl.test; -import static org.opendaylight.controller.md.sal.binding.test.AssertCollections.assertContains; -import static org.opendaylight.controller.md.sal.binding.test.AssertCollections.assertEmpty; -import static org.opendaylight.controller.md.sal.binding.test.AssertCollections.assertNotContains; import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION; import static org.opendaylight.controller.md.sal.test.model.util.ListsBindingUtils.TOP_FOO_KEY; import static org.opendaylight.controller.md.sal.test.model.util.ListsBindingUtils.USES_ONE_KEY; @@ -19,39 +16,49 @@ import static org.opendaylight.controller.md.sal.test.model.util.ListsBindingUti import static org.opendaylight.controller.md.sal.test.model.util.ListsBindingUtils.top; import static org.opendaylight.controller.md.sal.test.model.util.ListsBindingUtils.topLevelList; +import com.google.common.collect.ImmutableSet; import org.junit.Test; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; -import org.opendaylight.controller.md.sal.binding.test.AbstractDataChangeListenerTest; -import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; -import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; +import org.opendaylight.controller.md.sal.binding.test.AbstractDataTreeChangeListenerTest; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; 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.complex.from.grouping.ListViaUses; 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.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.YangModuleInfo; +import org.opendaylight.yangtools.yang.binding.util.BindingReflections; /** - * * This testsuite tries to replicate bug 1333 and tests regresion of it * using test-model with similar construction as one reported. * - * + *

* See https://bugs.opendaylight.org/show_bug.cgi?id=1333 for Bug Description - * */ -public class Bug1333DataChangeListenerTest extends AbstractDataChangeListenerTest{ +public class Bug1333DataChangeListenerTest extends AbstractDataTreeChangeListenerTest { private static final InstanceIdentifier TOP_PATH = InstanceIdentifier.create(Top.class); - private static final InstanceIdentifier AUGMENT_WILDCARD = TOP_PATH.child(TopLevelList.class).augmentation( - TreeComplexUsesAugment.class); + private static final InstanceIdentifier AUGMENT_WILDCARD = + TOP_PATH.child(TopLevelList.class).augmentation(TreeComplexUsesAugment.class); + + @Override + protected Iterable getModuleInfos() throws Exception { + return ImmutableSet.of(BindingReflections.getModuleInfo(Top.class), + BindingReflections.getModuleInfo(TreeComplexUsesAugment.class)); + } + + private Top topWithListItem() { + return top(topLevelList(TOP_FOO_KEY, complexUsesAugment(USES_ONE_KEY, USES_TWO_KEY))); + } - public void writeTopWithListItem(final LogicalDatastoreType store) { + public Top writeTopWithListItem(final LogicalDatastoreType store) { ReadWriteTransaction tx = getDataBroker().newReadWriteTransaction(); - Top topItem = top(topLevelList(TOP_FOO_KEY, complexUsesAugment(USES_ONE_KEY, USES_TWO_KEY))); + Top topItem = topWithListItem(); tx.put(store, TOP_PATH, topItem); assertCommit(tx.submit()); + return topItem; } public void deleteItem(final LogicalDatastoreType store, final InstanceIdentifier path) { @@ -62,82 +69,48 @@ public class Bug1333DataChangeListenerTest extends AbstractDataChangeListenerTes @Test public void writeTopWithListItemAugmentedListenTopSubtree() { - TestListener listener = createListener(CONFIGURATION,TOP_PATH, DataChangeScope.SUBTREE, false); + TestListener listener = createListener(CONFIGURATION, TOP_PATH, added(TOP_PATH, topWithListItem())); writeTopWithListItem(CONFIGURATION); - AsyncDataChangeEvent, DataObject> event = listener.event(); - - assertContains(event.getCreatedData(), TOP_PATH); - assertContains(event.getCreatedData(), path(TOP_FOO_KEY)); - assertContains(event.getCreatedData(), path(TOP_FOO_KEY, TreeComplexUsesAugment.class)); - assertContains(event.getCreatedData(), path(TOP_FOO_KEY, USES_ONE_KEY)); - assertContains(event.getCreatedData(), path(TOP_FOO_KEY, USES_TWO_KEY)); - - assertEmpty(event.getUpdatedData()); - assertEmpty(event.getRemovedPaths()); + listener.verify(); } @Test public void writeTopWithListItemAugmentedListenAugmentSubtreeWildcarded() { - TestListener listener = createListener(CONFIGURATION,AUGMENT_WILDCARD, DataChangeScope.SUBTREE, false); - writeTopWithListItem(CONFIGURATION); + TestListener listener = createListener(CONFIGURATION, AUGMENT_WILDCARD, + added(path(TOP_FOO_KEY, TreeComplexUsesAugment.class), complexUsesAugment(USES_ONE_KEY, USES_TWO_KEY))); - AsyncDataChangeEvent, DataObject> event = listener.event(); - - /* - * Event should not contain parent nodes - */ - assertNotContains(event.getCreatedData(), TOP_PATH, path(TOP_FOO_KEY)); - - assertContains(event.getCreatedData(), path(TOP_FOO_KEY, TreeComplexUsesAugment.class)); - assertContains(event.getCreatedData(), path(TOP_FOO_KEY, USES_ONE_KEY)); - assertContains(event.getCreatedData(), path(TOP_FOO_KEY, USES_TWO_KEY)); + writeTopWithListItem(CONFIGURATION); - assertEmpty(event.getUpdatedData()); - assertEmpty(event.getRemovedPaths()); + listener.verify(); } @Test public void deleteAugmentChildListenTopSubtree() { - writeTopWithListItem(CONFIGURATION); - TestListener listener = createListener(CONFIGURATION, TOP_PATH, DataChangeScope.SUBTREE); - InstanceIdentifier deletePath = path(TOP_FOO_KEY,USES_ONE_KEY); - deleteItem(CONFIGURATION,deletePath); - - AsyncDataChangeEvent, DataObject> event = listener.event(); + Top top = writeTopWithListItem(CONFIGURATION); + TestListener listener = createListener(CONFIGURATION, TOP_PATH, added(TOP_PATH, top), + subtreeModified(TOP_PATH, top, top(topLevelList(TOP_FOO_KEY, complexUsesAugment(USES_TWO_KEY))))); - assertEmpty(event.getCreatedData()); + InstanceIdentifier deletePath = path(TOP_FOO_KEY, USES_ONE_KEY); + deleteItem(CONFIGURATION, deletePath); - assertContains(event.getRemovedPaths(), deletePath); - - assertContains(event.getUpdatedData(), TOP_PATH); - assertContains(event.getUpdatedData(), path(TOP_FOO_KEY)); - assertContains(event.getUpdatedData(), path(TOP_FOO_KEY, TreeComplexUsesAugment.class)); - - assertNotContains(event.getCreatedData(), path(TOP_FOO_KEY, USES_TWO_KEY)); + listener.verify(); } @Test public void deleteAugmentChildListenAugmentSubtreeWildcarded() { writeTopWithListItem(CONFIGURATION); - TestListener listener = createListener(CONFIGURATION, AUGMENT_WILDCARD, DataChangeScope.SUBTREE, false); - InstanceIdentifier deletePath = path(TOP_FOO_KEY,USES_ONE_KEY); - deleteItem(CONFIGURATION,deletePath); - AsyncDataChangeEvent, DataObject> event = listener.event(); - - assertEmpty(event.getCreatedData()); + TestListener listener = createListener(CONFIGURATION, AUGMENT_WILDCARD, + added(path(TOP_FOO_KEY, TreeComplexUsesAugment.class), complexUsesAugment(USES_ONE_KEY, USES_TWO_KEY)), + subtreeModified(path(TOP_FOO_KEY, TreeComplexUsesAugment.class), + complexUsesAugment(USES_ONE_KEY, USES_TWO_KEY), complexUsesAugment(USES_TWO_KEY))); - assertContains(event.getUpdatedData(), path(TOP_FOO_KEY, TreeComplexUsesAugment.class)); + InstanceIdentifier deletePath = path(TOP_FOO_KEY, USES_ONE_KEY); + deleteItem(CONFIGURATION, deletePath); - /* - * Event should not contain parent nodes - */ - assertNotContains(event.getUpdatedData(), TOP_PATH, path(TOP_FOO_KEY)); - - assertContains(event.getRemovedPaths(), deletePath); + listener.verify(); } - }