Merge "Added comments to the opendaylight-inventory.yang file to help describe the...
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / DataChangeListenerProxyTest.java
1 package org.opendaylight.controller.cluster.datastore;
2
3 import akka.actor.ActorRef;
4 import akka.actor.Props;
5 import junit.framework.Assert;
6 import org.junit.Test;
7 import org.opendaylight.controller.cluster.datastore.messages.DataChanged;
8 import org.opendaylight.controller.cluster.datastore.utils.ActorContext;
9 import org.opendaylight.controller.cluster.datastore.utils.DoNothingActor;
10 import org.opendaylight.controller.cluster.datastore.utils.MessageCollectorActor;
11 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
12 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
13 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
14
15 import java.util.List;
16 import java.util.Map;
17 import java.util.Set;
18
19 public class DataChangeListenerProxyTest extends AbstractActorTest {
20
21     private static class MockDataChangeEvent implements
22         AsyncDataChangeEvent<InstanceIdentifier,NormalizedNode<?,?>> {
23
24         @Override
25         public Map<InstanceIdentifier, NormalizedNode<?, ?>> getCreatedData() {
26             throw new UnsupportedOperationException("getCreatedData");
27         }
28
29         @Override
30         public Map<InstanceIdentifier, NormalizedNode<?, ?>> getUpdatedData() {
31             throw new UnsupportedOperationException("getUpdatedData");
32         }
33
34         @Override public Set<InstanceIdentifier> getRemovedPaths() {
35             throw new UnsupportedOperationException("getRemovedPaths");
36         }
37
38         @Override
39         public Map<InstanceIdentifier, ? extends NormalizedNode<?, ?>> getOriginalData() {
40             throw new UnsupportedOperationException("getOriginalData");
41         }
42
43         @Override public NormalizedNode<?, ?> getOriginalSubtree() {
44             throw new UnsupportedOperationException("getOriginalSubtree");
45         }
46
47         @Override public NormalizedNode<?, ?> getUpdatedSubtree() {
48             throw new UnsupportedOperationException("getUpdatedSubtree");
49         }
50     }
51
52     @Test
53     public void testOnDataChanged() throws Exception {
54         final Props props = Props.create(MessageCollectorActor.class);
55         final ActorRef actorRef = getSystem().actorOf(props);
56
57         DataChangeListenerProxy dataChangeListenerProxy =
58             new DataChangeListenerProxy(
59                 getSystem().actorSelection(actorRef.path()));
60
61         dataChangeListenerProxy.onDataChanged(new MockDataChangeEvent());
62
63         //Check if it was received by the remote actor
64         ActorContext
65             testContext = new ActorContext(getSystem(), getSystem().actorOf(Props.create(DoNothingActor.class)));
66         Object messages = testContext
67             .executeLocalOperation(actorRef, "messages",
68                 ActorContext.ASK_DURATION);
69
70         Assert.assertNotNull(messages);
71
72         Assert.assertTrue(messages instanceof List);
73
74         List<Object> listMessages = (List<Object>) messages;
75
76         Assert.assertEquals(1, listMessages.size());
77
78         Assert.assertTrue(listMessages.get(0) instanceof DataChanged);
79
80     }
81 }