Merge "Avoid IllegalArgument on missing source"
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / messages / RegisterChangeListenerTest.java
1 package org.opendaylight.controller.cluster.datastore.messages;
2
3 import static junit.framework.TestCase.assertEquals;
4 import akka.actor.Actor;
5 import akka.serialization.Serialization;
6 import akka.testkit.TestActorRef;
7 import org.junit.After;
8 import org.junit.Before;
9 import org.junit.Test;
10 import org.opendaylight.controller.cluster.datastore.AbstractActorTest;
11 import org.opendaylight.controller.cluster.raft.TestActorFactory;
12 import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor;
13 import org.opendaylight.controller.md.cluster.datastore.model.TestModel;
14 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
15 import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages;
16 import org.opendaylight.controller.protobuff.messages.registration.ListenerRegistrationMessages;
17
18 public class RegisterChangeListenerTest extends AbstractActorTest {
19
20     private TestActorFactory factory;
21
22     @Before
23     public void setUp(){
24         factory = new TestActorFactory(getSystem());
25     }
26
27     @After
28     public void shutDown(){
29         factory.close();
30     }
31
32     @Test
33     public void testToSerializable(){
34         TestActorRef<Actor> testActor = factory.createTestActor(MessageCollectorActor.props());
35         RegisterChangeListener registerChangeListener = new RegisterChangeListener(TestModel.TEST_PATH, testActor
36                 , AsyncDataBroker.DataChangeScope.BASE);
37
38         ListenerRegistrationMessages.RegisterChangeListener serialized
39                 = registerChangeListener.toSerializable();
40
41         NormalizedNodeMessages.InstanceIdentifier path = serialized.getInstanceIdentifierPath();
42
43         assertEquals("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", path.getCode(0));
44         assertEquals(Serialization.serializedActorPath(testActor), serialized.getDataChangeListenerActorPath());
45         assertEquals(AsyncDataBroker.DataChangeScope.BASE.ordinal(), serialized.getDataChangeScope());
46
47     }
48
49     @Test
50     public void testFromSerializable(){
51         TestActorRef<Actor> testActor = factory.createTestActor(MessageCollectorActor.props());
52         RegisterChangeListener registerChangeListener = new RegisterChangeListener(TestModel.TEST_PATH, testActor
53                 , AsyncDataBroker.DataChangeScope.SUBTREE);
54
55         ListenerRegistrationMessages.RegisterChangeListener serialized
56                 = registerChangeListener.toSerializable();
57
58
59         RegisterChangeListener fromSerialized = RegisterChangeListener.fromSerializable(getSystem(), serialized);
60
61         assertEquals(TestModel.TEST_PATH, registerChangeListener.getPath());
62         assertEquals(testActor.path().toString(), fromSerialized.getDataChangeListenerPath().toString());
63         assertEquals(AsyncDataBroker.DataChangeScope.SUBTREE, fromSerialized.getScope());
64
65
66     }
67 }