Specify initial serialization buffer capacity for Payloads
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / RoleChangeNotifierTest.java
index 344ec10a809a97fce9bc27194fa678ffb7c22339..be2ba8ce7153b0fb435ea06a9dfb0b53cc121759 100644 (file)
@@ -15,6 +15,7 @@ import static org.junit.Assert.assertNull;
 import akka.actor.ActorRef;
 import akka.testkit.TestActorRef;
 import akka.testkit.javadsl.TestKit;
+import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.controller.cluster.notifications.LeaderStateChanged;
 import org.opendaylight.controller.cluster.notifications.RegisterRoleChangeListener;
@@ -26,95 +27,87 @@ import org.opendaylight.controller.cluster.raft.RaftState;
 import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor;
 
 public class RoleChangeNotifierTest extends AbstractActorTest {
+    private TestKit testKit;
 
-    @Test
-    public void testHandleRegisterRoleChangeListener() throws Exception {
-        new TestKit(getSystem()) {
-            {
-                String memberId = "testHandleRegisterRoleChangeListener";
-                ActorRef listenerActor = getSystem().actorOf(MessageCollectorActor.props());
-
-                TestActorRef<RoleChangeNotifier> notifierTestActorRef = TestActorRef.create(getSystem(),
-                        RoleChangeNotifier.getProps(memberId), memberId);
-
-                notifierTestActorRef.tell(new RegisterRoleChangeListener(), listenerActor);
-
-                RegisterRoleChangeListenerReply reply = MessageCollectorActor.getFirstMatching(listenerActor,
-                        RegisterRoleChangeListenerReply.class);
-                assertNotNull(reply);
-
-                RoleChangeNotification notification = MessageCollectorActor.getFirstMatching(listenerActor,
-                        RoleChangeNotification.class);
-                assertNull(notification);
-            }
-        };
+    @Before
+    public void setup() {
+        testKit = new TestKit(getSystem());
     }
 
     @Test
-    public void testHandleRaftRoleChanged() throws Exception {
-        new TestKit(getSystem()) {
-            {
-                String memberId = "testHandleRegisterRoleChangeListenerWithNotificationSet";
-                ActorRef listenerActor = getSystem().actorOf(MessageCollectorActor.props());
-                ActorRef shardActor = getTestActor();
+    public void testHandleRegisterRoleChangeListener() {
+        String memberId = "testHandleRegisterRoleChangeListener";
+        ActorRef listenerActor = getSystem().actorOf(MessageCollectorActor.props());
+
+        TestActorRef<RoleChangeNotifier> notifierTestActorRef = TestActorRef.create(getSystem(),
+            RoleChangeNotifier.getProps(memberId), memberId);
+
+        notifierTestActorRef.tell(new RegisterRoleChangeListener(), listenerActor);
 
-                TestActorRef<RoleChangeNotifier> notifierTestActorRef = TestActorRef.create(getSystem(),
-                        RoleChangeNotifier.getProps(memberId), memberId);
+        RegisterRoleChangeListenerReply reply = MessageCollectorActor.getFirstMatching(listenerActor,
+            RegisterRoleChangeListenerReply.class);
+        assertNotNull(reply);
+
+        RoleChangeNotification notification = MessageCollectorActor.getFirstMatching(listenerActor,
+            RoleChangeNotification.class);
+        assertNull(notification);
+    }
 
-                notifierTestActorRef.tell(
-                        new RoleChanged(memberId, RaftState.Candidate.name(), RaftState.Leader.name()), shardActor);
+    @Test
+    public void testHandleRaftRoleChanged() {
+        String memberId = "testHandleRegisterRoleChangeListenerWithNotificationSet";
+        ActorRef listenerActor = getSystem().actorOf(MessageCollectorActor.props());
+        ActorRef shardActor = testKit.getTestActor();
+
+        TestActorRef<RoleChangeNotifier> notifierTestActorRef = TestActorRef.create(getSystem(),
+            RoleChangeNotifier.getProps(memberId), memberId);
+
+        notifierTestActorRef.tell(
+            new RoleChanged(memberId, RaftState.Candidate.name(), RaftState.Leader.name()), shardActor);
+
+        // no notification should be sent as listener has not yet
+        // registered
+        assertNull(MessageCollectorActor.getFirstMatching(listenerActor, RoleChangeNotification.class));
+
+        // listener registers after role has been changed, ensure we
+        // sent the latest role change after a reply
+        notifierTestActorRef.tell(new RegisterRoleChangeListener(), listenerActor);
+
+        RegisterRoleChangeListenerReply reply = MessageCollectorActor.getFirstMatching(listenerActor,
+            RegisterRoleChangeListenerReply.class);
+        assertNotNull(reply);
+
+        RoleChangeNotification notification = MessageCollectorActor.getFirstMatching(listenerActor,
+            RoleChangeNotification.class);
+        assertNotNull(notification);
+        assertEquals(RaftState.Candidate.name(), notification.getOldRole());
+        assertEquals(RaftState.Leader.name(), notification.getNewRole());
+    }
 
-                // no notification should be sent as listener has not yet
-                // registered
-                assertNull(MessageCollectorActor.getFirstMatching(listenerActor, RoleChangeNotification.class));
+    @Test
+    public void testHandleLeaderStateChanged() {
+        String actorId = "testHandleLeaderStateChanged";
+        TestActorRef<RoleChangeNotifier> notifierTestActorRef = TestActorRef.create(getSystem(),
+            RoleChangeNotifier.getProps(actorId), actorId);
 
-                // listener registers after role has been changed, ensure we
-                // sent the latest role change after a reply
-                notifierTestActorRef.tell(new RegisterRoleChangeListener(), listenerActor);
+        notifierTestActorRef.tell(new LeaderStateChanged("member1", "leader1", (short) 5), ActorRef.noSender());
 
-                RegisterRoleChangeListenerReply reply = MessageCollectorActor.getFirstMatching(listenerActor,
-                        RegisterRoleChangeListenerReply.class);
-                assertNotNull(reply);
+        // listener registers after the sate has been changed, ensure we
+        // sent the latest state change after a reply
+        notifierTestActorRef.tell(new RegisterRoleChangeListener(), testKit.getRef());
 
-                RoleChangeNotification notification = MessageCollectorActor.getFirstMatching(listenerActor,
-                        RoleChangeNotification.class);
-                assertNotNull(notification);
-                assertEquals(RaftState.Candidate.name(), notification.getOldRole());
-                assertEquals(RaftState.Leader.name(), notification.getNewRole());
+        testKit.expectMsgClass(RegisterRoleChangeListenerReply.class);
 
-            }
-        };
+        LeaderStateChanged leaderStateChanged = testKit.expectMsgClass(LeaderStateChanged.class);
+        assertEquals("getMemberId", "member1", leaderStateChanged.getMemberId());
+        assertEquals("getLeaderId", "leader1", leaderStateChanged.getLeaderId());
+        assertEquals("getLeaderPayloadVersion", 5, leaderStateChanged.getLeaderPayloadVersion());
 
-    }
+        notifierTestActorRef.tell(new LeaderStateChanged("member1", "leader2", (short) 6), ActorRef.noSender());
 
-    @Test
-    public void testHandleLeaderStateChanged() throws Exception {
-        new TestKit(getSystem()) {
-            {
-                String actorId = "testHandleLeaderStateChanged";
-                TestActorRef<RoleChangeNotifier> notifierTestActorRef = TestActorRef.create(getSystem(),
-                        RoleChangeNotifier.getProps(actorId), actorId);
-
-                notifierTestActorRef.tell(new LeaderStateChanged("member1", "leader1", (short) 5), ActorRef.noSender());
-
-                // listener registers after the sate has been changed, ensure we
-                // sent the latest state change after a reply
-                notifierTestActorRef.tell(new RegisterRoleChangeListener(), getRef());
-
-                expectMsgClass(RegisterRoleChangeListenerReply.class);
-
-                LeaderStateChanged leaderStateChanged = expectMsgClass(LeaderStateChanged.class);
-                assertEquals("getMemberId", "member1", leaderStateChanged.getMemberId());
-                assertEquals("getLeaderId", "leader1", leaderStateChanged.getLeaderId());
-                assertEquals("getLeaderPayloadVersion", 5, leaderStateChanged.getLeaderPayloadVersion());
-
-                notifierTestActorRef.tell(new LeaderStateChanged("member1", "leader2", (short) 6), ActorRef.noSender());
-
-                leaderStateChanged = expectMsgClass(LeaderStateChanged.class);
-                assertEquals("getMemberId", "member1", leaderStateChanged.getMemberId());
-                assertEquals("getLeaderId", "leader2", leaderStateChanged.getLeaderId());
-                assertEquals("getLeaderPayloadVersion", 6, leaderStateChanged.getLeaderPayloadVersion());
-            }
-        };
+        leaderStateChanged = testKit.expectMsgClass(LeaderStateChanged.class);
+        assertEquals("getMemberId", "member1", leaderStateChanged.getMemberId());
+        assertEquals("getLeaderId", "leader2", leaderStateChanged.getLeaderId());
+        assertEquals("getLeaderPayloadVersion", 6, leaderStateChanged.getLeaderPayloadVersion());
     }
 }