2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.cluster.datastore.messages;
11 import static junit.framework.TestCase.assertEquals;
12 import akka.actor.Actor;
13 import akka.serialization.Serialization;
14 import akka.testkit.TestActorRef;
15 import org.junit.After;
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.opendaylight.controller.cluster.datastore.AbstractActorTest;
19 import org.opendaylight.controller.cluster.raft.TestActorFactory;
20 import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor;
21 import org.opendaylight.controller.md.cluster.datastore.model.TestModel;
22 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
23 import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages;
24 import org.opendaylight.controller.protobuff.messages.registration.ListenerRegistrationMessages;
26 public class RegisterChangeListenerTest extends AbstractActorTest {
28 private TestActorFactory factory;
32 factory = new TestActorFactory(getSystem());
36 public void shutDown(){
41 public void testToSerializable(){
42 TestActorRef<Actor> testActor = factory.createTestActor(MessageCollectorActor.props());
43 RegisterChangeListener registerChangeListener = new RegisterChangeListener(TestModel.TEST_PATH, testActor
44 , AsyncDataBroker.DataChangeScope.BASE, false);
46 ListenerRegistrationMessages.RegisterChangeListener serialized
47 = registerChangeListener.toSerializable();
49 NormalizedNodeMessages.InstanceIdentifier path = serialized.getInstanceIdentifierPath();
51 assertEquals("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", path.getCode(0));
52 assertEquals(Serialization.serializedActorPath(testActor), serialized.getDataChangeListenerActorPath());
53 assertEquals(AsyncDataBroker.DataChangeScope.BASE.ordinal(), serialized.getDataChangeScope());
54 assertEquals(false, serialized.getRegisterOnAllInstances());
59 public void testFromSerializable(){
60 TestActorRef<Actor> testActor = factory.createTestActor(MessageCollectorActor.props());
61 RegisterChangeListener registerChangeListener = new RegisterChangeListener(TestModel.TEST_PATH, testActor
62 , AsyncDataBroker.DataChangeScope.SUBTREE, true);
64 ListenerRegistrationMessages.RegisterChangeListener serialized
65 = registerChangeListener.toSerializable();
68 RegisterChangeListener fromSerialized = RegisterChangeListener.fromSerializable(getSystem(), serialized);
70 assertEquals(TestModel.TEST_PATH, registerChangeListener.getPath());
71 assertEquals(testActor.path().toString(), fromSerialized.getDataChangeListenerPath().toString());
72 assertEquals(AsyncDataBroker.DataChangeScope.SUBTREE, fromSerialized.getScope());
73 assertEquals(true, fromSerialized.isRegisterOnAllInstances());