X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-dom-it%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Ftest%2Fbugfix%2FDeleteNestedAugmentationListenParentTest.java;h=81d7e9dc619e2484aabe1e11fbd82eab51c8e29f;hp=73712813d404b310afd6e8049e547b8d45e0d525;hb=97f90cb2c7865665e6f152bec1f82f4ad784b389;hpb=a54ec60368110d22794602343c934902f6833c65 diff --git a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/DeleteNestedAugmentationListenParentTest.java b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/DeleteNestedAugmentationListenParentTest.java index 73712813d4..81d7e9dc61 100644 --- a/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/DeleteNestedAugmentationListenParentTest.java +++ b/opendaylight/md-sal/sal-binding-dom-it/src/test/java/org/opendaylight/controller/sal/binding/test/bugfix/DeleteNestedAugmentationListenParentTest.java @@ -1,13 +1,23 @@ +/* + * Copyright (c) 2014, 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.sal.binding.test.bugfix; -import static org.junit.Assert.assertFalse; -import com.google.common.util.concurrent.SettableFuture; +import com.google.common.collect.ImmutableSet; +import java.util.Set; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; 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.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.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.of.migration.test.model.rev150210.List11SimpleAugment; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.List11SimpleAugmentBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.TllComplexAugment; @@ -19,10 +29,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll 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.TopLevelListKey; -import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.YangModuleInfo; -public class DeleteNestedAugmentationListenParentTest extends AbstractDataServiceTest { +public class DeleteNestedAugmentationListenParentTest extends AbstractDataTreeChangeListenerTest { private static final TopLevelListKey FOO_KEY = new TopLevelListKey("foo"); @@ -30,7 +40,8 @@ public class DeleteNestedAugmentationListenParentTest extends AbstractDataServic private static final List11Key LIST11_KEY = new List11Key(100); - private static final InstanceIdentifier TLL_COMPLEX_AUGMENT_PATH = InstanceIdentifier.builder(Top.class) + private static final InstanceIdentifier TLL_COMPLEX_AUGMENT_PATH = InstanceIdentifier + .builder(Top.class) .child(TopLevelList.class,FOO_KEY) .augmentation(TllComplexAugment.class) .build(); @@ -40,39 +51,39 @@ public class DeleteNestedAugmentationListenParentTest extends AbstractDataServic .child(List11.class,LIST11_KEY) .build(); + @Override + protected Set getModuleInfos() throws Exception { + return ImmutableSet.of(BindingReflections.getModuleInfo(Top.class), + BindingReflections.getModuleInfo(List11SimpleAugment.class)); + } @Test - public void deleteChildListenParent() throws InterruptedException, ExecutionException { - DataModificationTransaction initTx = baDataService.beginTransaction(); - - initTx.putOperationalData(LIST11_PATH, createList11()); - initTx.commit().get(); + public void deleteChildListenParent() throws InterruptedException, ExecutionException, TimeoutException { + DataBroker dataBroker = getDataBroker(); + final WriteTransaction initTx = dataBroker.newWriteOnlyTransaction(); - final SettableFuture, DataObject>> event = SettableFuture.create(); + List11 list11Before = createList11(); + initTx.put(LogicalDatastoreType.OPERATIONAL, LIST11_PATH, list11Before, true); + initTx.submit().get(5, TimeUnit.SECONDS); - baDataService.registerDataChangeListener(LIST11_PATH, new DataChangeListener() { + List11 list11After = new List11Builder().withKey(LIST11_KEY).setAttrStr("good").build(); - @Override - public void onDataChanged(final DataChangeEvent, DataObject> change) { - event.set(change); - } - }); + final TestListener listener = createListener(LogicalDatastoreType.OPERATIONAL, LIST11_PATH, + added(LIST11_PATH, list11Before), subtreeModified(LIST11_PATH, list11Before, list11After)); - DataModificationTransaction deleteTx = baDataService.beginTransaction(); - deleteTx.removeOperationalData(LIST11_PATH.augmentation(List11SimpleAugment.class)); - deleteTx.commit().get(); + final WriteTransaction deleteTx = dataBroker.newWriteOnlyTransaction(); + deleteTx.delete(LogicalDatastoreType.OPERATIONAL, LIST11_PATH.augmentation(List11SimpleAugment.class)); + deleteTx.submit().get(5, TimeUnit.SECONDS); - DataChangeEvent, DataObject> receivedEvent = event.get(); - assertFalse(receivedEvent.getRemovedOperationalData().contains(TLL_COMPLEX_AUGMENT_PATH)); + listener.verify(); } - private List11 createList11() { + private static List11 createList11() { List11Builder builder = new List11Builder() - .setKey(LIST11_KEY) + .withKey(LIST11_KEY) .addAugmentation(List11SimpleAugment.class,new List11SimpleAugmentBuilder() .setAttrStr2("bad").build()) .setAttrStr("good"); return builder.build(); } - -} \ No newline at end of file +}