X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDataChangeListenerTest.java;fp=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDataChangeListenerTest.java;h=fd610322201f1ffb168640d413f5afe0c8d743d7;hp=d64859a91ce781301fb972cfe652effd6a81eb8a;hb=516a4b2ea78179c9bd6ebb584862e8fc686ebf08;hpb=de3e413b633b7555ae8f3fe2ec163dbb7dda5da8 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 d64859a91c..fd61032220 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,66 +6,90 @@ 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.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; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.Set; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; public class DataChangeListenerTest extends AbstractActorTest { - private static class MockDataChangedEvent implements AsyncDataChangeEvent> { + private static class MockDataChangedEvent implements AsyncDataChangeEvent> { + Map> createdData = new HashMap(); + Map> updatedData = new HashMap(); + Map> originalData = new HashMap(); + + @Override - public Map> getCreatedData() { - throw new UnsupportedOperationException("getCreatedData"); + public Map> getCreatedData() { + createdData.put(CompositeModel.FAMILY_PATH, CompositeModel.createFamily()); + return createdData; } @Override - public Map> getUpdatedData() { - throw new UnsupportedOperationException("getUpdatedData"); + public Map> getUpdatedData() { + updatedData.put(CompositeModel.FAMILY_PATH, CompositeModel.createFamily()); + return updatedData; + } - @Override public Set getRemovedPaths() { - throw new UnsupportedOperationException("getRemovedPaths"); + @Override + public Set getRemovedPaths() { + Setids = new HashSet(); + ids.add( CompositeModel.TEST_PATH); + return ids; } @Override - public Map> getOriginalData() { - throw new UnsupportedOperationException("getOriginalData"); + public Map> getOriginalData() { + originalData.put(CompositeModel.FAMILY_PATH, CompositeModel.createFamily()); + return originalData; } @Override public NormalizedNode getOriginalSubtree() { - throw new UnsupportedOperationException("getOriginalSubtree"); + + + return originalData.put(CompositeModel.FAMILY_PATH, CompositeModel.createFamily()); } @Override public NormalizedNode getUpdatedSubtree() { - throw new UnsupportedOperationException("getUpdatedSubtree"); + + //fixme: need to have some valid data here + return originalData.put(CompositeModel.FAMILY_PATH, CompositeModel.createFamily()); } } - private class MockDataChangeListener implements AsyncDataChangeListener> { + private class MockDataChangeListener implements AsyncDataChangeListener> { private boolean gotIt = false; + private AsyncDataChangeEvent> change; @Override public void onDataChanged( - AsyncDataChangeEvent> change) { - gotIt = true; + AsyncDataChangeEvent> change) { + gotIt = true;this.change=change; } public boolean gotIt() { return gotIt; } + public AsyncDataChangeEvent> getChange(){ + return change; + } } @Test public void testDataChanged(){ new JavaTestKit(getSystem()) {{ final MockDataChangeListener listener = new MockDataChangeListener(); - final Props props = DataChangeListener.props(listener); + final Props props = DataChangeListener.props(CompositeModel.createTestContext(),listener,CompositeModel.FAMILY_PATH ); final ActorRef subject = getSystem().actorOf(props, "testDataChanged"); @@ -73,15 +97,14 @@ public class DataChangeListenerTest extends AbstractActorTest { protected void run() { subject.tell( - new DataChanged(new MockDataChangedEvent()), + new DataChanged(CompositeModel.createTestContext(),new MockDataChangedEvent()).toSerializable(), getRef()); final Boolean out = new ExpectMsg("dataChanged") { // do not put code outside this method, will run afterwards protected Boolean match(Object in) { - if (in instanceof DataChangedReply) { - DataChangedReply reply = - (DataChangedReply) in; + if (in.getClass().equals(DataChangedReply.SERIALIZABLE_CLASS)) { + return true; } else { throw noMatch(); @@ -91,6 +114,7 @@ public class DataChangeListenerTest extends AbstractActorTest { assertTrue(out); assertTrue(listener.gotIt()); + assertNotNull(listener.getChange().getCreatedData()); // Will wait for the rest of the 3 seconds expectNoMsg(); }