X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDataChangeListenerTest.java;h=26ec583b3e058108f9cc18517f5f6909847f5cd6;hb=c911a187bdcd6160c1929e53466cd9de681c2098;hp=fd610322201f1ffb168640d413f5afe0c8d743d7;hpb=0eb621d29daaf08979c356e2148e99c48458e169;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerTest.java index fd61032220..26ec583b3e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerTest.java @@ -6,6 +6,7 @@ import akka.testkit.JavaTestKit; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.messages.DataChanged; import org.opendaylight.controller.cluster.datastore.messages.DataChangedReply; +import org.opendaylight.controller.cluster.datastore.messages.EnableNotification; import org.opendaylight.controller.md.cluster.datastore.model.CompositeModel; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; @@ -86,24 +87,28 @@ public class DataChangeListenerTest extends AbstractActorTest { } @Test - public void testDataChanged(){ + public void testDataChangedWhenNotificationsAreEnabled(){ new JavaTestKit(getSystem()) {{ final MockDataChangeListener listener = new MockDataChangeListener(); final Props props = DataChangeListener.props(CompositeModel.createTestContext(),listener,CompositeModel.FAMILY_PATH ); final ActorRef subject = - getSystem().actorOf(props, "testDataChanged"); + getSystem().actorOf(props, "testDataChangedNotificationsEnabled"); new Within(duration("1 seconds")) { protected void run() { + // Let the DataChangeListener know that notifications should + // be enabled + subject.tell(new EnableNotification(true), getRef()); + subject.tell( - new DataChanged(CompositeModel.createTestContext(),new MockDataChangedEvent()).toSerializable(), + new DataChanged(CompositeModel.createTestContext(),new MockDataChangedEvent()), getRef()); - final Boolean out = new ExpectMsg("dataChanged") { + final Boolean out = new ExpectMsg(duration("800 millis"), "dataChanged") { // do not put code outside this method, will run afterwards protected Boolean match(Object in) { - if (in.getClass().equals(DataChangedReply.SERIALIZABLE_CLASS)) { + if (in != null && in.getClass().equals(DataChangedReply.class)) { return true; } else { @@ -115,7 +120,30 @@ public class DataChangeListenerTest extends AbstractActorTest { assertTrue(out); assertTrue(listener.gotIt()); assertNotNull(listener.getChange().getCreatedData()); - // Will wait for the rest of the 3 seconds + + expectNoMsg(); + } + + + }; + }}; + } + + @Test + public void testDataChangedWhenNotificationsAreDisabled(){ + new JavaTestKit(getSystem()) {{ + final MockDataChangeListener listener = new MockDataChangeListener(); + final Props props = DataChangeListener.props(CompositeModel.createTestContext(),listener,CompositeModel.FAMILY_PATH ); + final ActorRef subject = + getSystem().actorOf(props, "testDataChangedNotificationsDisabled"); + + new Within(duration("1 seconds")) { + protected void run() { + + subject.tell( + new DataChanged(CompositeModel.createTestContext(),new MockDataChangedEvent()), + getRef()); + expectNoMsg(); }