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%2FBug1125RegressionTest.java;h=cf278bd8ab5684d5a20c7896c2955fb81476ee9e;hp=fb115350612cfe894e2cf85a29c6af2f0c53741c;hb=97f90cb2c7865665e6f152bec1f82f4ad784b389;hpb=cf5be659d906cc80d52647cb516bbab435156742 diff --git a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug1125RegressionTest.java b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug1125RegressionTest.java index fb11535061..cf278bd8ab 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug1125RegressionTest.java +++ b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug1125RegressionTest.java @@ -1,31 +1,37 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ 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.test.model.util.ListsBindingUtils.TOP_FOO_KEY; import static org.opendaylight.controller.md.sal.test.model.util.ListsBindingUtils.path; import static org.opendaylight.controller.md.sal.test.model.util.ListsBindingUtils.topLevelList; +import com.google.common.collect.ImmutableSet; +import java.util.Set; import org.junit.Test; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; -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.mdsal.binding.spec.reflect.BindingReflections; 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.TopBuilder; 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; /** * Regression test suite for Bug 1125 - Can't detect switch disconnection - * https://bugs.opendaylight.org/show_bug.cgi?id=1125 + * https://bugs.opendaylight.org/show_bug.cgi?id=1125. */ -public class Bug1125RegressionTest extends AbstractDataChangeListenerTest { +public class Bug1125RegressionTest extends AbstractDataTreeChangeListenerTest { private static final InstanceIdentifier TOP_PATH = InstanceIdentifier .create(Top.class); @@ -39,7 +45,13 @@ public class Bug1125RegressionTest extends AbstractDataChangeListenerTest { .child(TopLevelList.class).augmentation( TreeComplexUsesAugment.class); - private void writeInitialState() { + @Override + protected Set getModuleInfos() throws Exception { + return ImmutableSet.of(BindingReflections.getModuleInfo(Top.class), + BindingReflections.getModuleInfo(TreeComplexUsesAugment.class)); + } + + private TreeComplexUsesAugment writeInitialState() { WriteTransaction initialTx = getDataBroker().newWriteOnlyTransaction(); initialTx.put(LogicalDatastoreType.OPERATIONAL, TOP_PATH, new TopBuilder().build()); @@ -50,6 +62,7 @@ public class Bug1125RegressionTest extends AbstractDataChangeListenerTest { initialTx.put(LogicalDatastoreType.OPERATIONAL, path(TOP_FOO_KEY), topLevelList(TOP_FOO_KEY, fooAugment)); assertCommit(initialTx.submit()); + return fooAugment; } private void delete(final InstanceIdentifier path) { @@ -58,42 +71,20 @@ public class Bug1125RegressionTest extends AbstractDataChangeListenerTest { assertCommit(tx.submit()); } - private void verifyRemoved( - final AsyncDataChangeEvent, DataObject> event) { - assertEmpty(event.getCreatedData()); - assertEmpty(event.getUpdatedData()); - assertContains(event.getRemovedPaths(), FOO_AUGMENT_PATH); - } - - private void deleteAndListenAugment(final DataChangeScope scope, - final InstanceIdentifier path) { - writeInitialState(); - TestListener listener = createListener( - LogicalDatastoreType.OPERATIONAL, WILDCARDED_AUGMENT_PATH, - scope); + private void deleteAndListenAugment(final InstanceIdentifier path) { + TreeComplexUsesAugment augment = writeInitialState(); + TestListener listener = createListener(LogicalDatastoreType.OPERATIONAL, + WILDCARDED_AUGMENT_PATH, added(FOO_AUGMENT_PATH, augment), deleted(FOO_AUGMENT_PATH, augment)); delete(path); - verifyRemoved(listener.event()); + listener.verify(); } @Test public void deleteAndListenAugment() { + deleteAndListenAugment(TOP_PATH); - deleteAndListenAugment(DataChangeScope.ONE, TOP_PATH); - - deleteAndListenAugment(DataChangeScope.BASE, TOP_PATH); - - deleteAndListenAugment(DataChangeScope.SUBTREE, TOP_PATH); - - deleteAndListenAugment(DataChangeScope.BASE, TOP_FOO_PATH); - - deleteAndListenAugment(DataChangeScope.ONE, TOP_FOO_PATH); - - deleteAndListenAugment(DataChangeScope.SUBTREE, TOP_FOO_PATH); - - deleteAndListenAugment(DataChangeScope.BASE, FOO_AUGMENT_PATH); - - deleteAndListenAugment(DataChangeScope.ONE, FOO_AUGMENT_PATH); + deleteAndListenAugment(TOP_FOO_PATH); - deleteAndListenAugment(DataChangeScope.SUBTREE, FOO_AUGMENT_PATH); + deleteAndListenAugment(FOO_AUGMENT_PATH); } }