X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FRoleChangeNotifierTest.java;h=be2ba8ce7153b0fb435ea06a9dfb0b53cc121759;hb=9905bf0575ff196a531eb114e89b1bdb7226bc6c;hp=13c42f919ef84b8b42fb6de5a0c28dead296a4fb;hpb=5464f50be733df1bbbe31cf05665d542d3b7c5e7;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/RoleChangeNotifierTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/RoleChangeNotifierTest.java index 13c42f919e..be2ba8ce71 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/RoleChangeNotifierTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/RoleChangeNotifierTest.java @@ -13,9 +13,9 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import akka.actor.ActorRef; -import akka.actor.Props; -import akka.testkit.JavaTestKit; 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; @@ -27,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 JavaTestKit(getSystem()) { - { - String memberId = "testHandleRegisterRoleChangeListener"; - ActorRef listenerActor = getSystem().actorOf(Props.create(MessageCollectorActor.class)); - - TestActorRef 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 JavaTestKit(getSystem()) { - { - String memberId = "testHandleRegisterRoleChangeListenerWithNotificationSet"; - ActorRef listenerActor = getSystem().actorOf(Props.create(MessageCollectorActor.class)); - ActorRef shardActor = getTestActor(); + public void testHandleRegisterRoleChangeListener() { + String memberId = "testHandleRegisterRoleChangeListener"; + ActorRef listenerActor = getSystem().actorOf(MessageCollectorActor.props()); + + TestActorRef notifierTestActorRef = TestActorRef.create(getSystem(), + RoleChangeNotifier.getProps(memberId), memberId); + + notifierTestActorRef.tell(new RegisterRoleChangeListener(), listenerActor); - TestActorRef 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 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 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 JavaTestKit(getSystem()) { - { - String actorId = "testHandleLeaderStateChanged"; - TestActorRef 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()); } }