X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2Fbehaviors%2FPartitionedLeadersElectionScenarioTest.java;h=e5f7c6eaa6487b425c3113838d94b2f01db3569b;hb=HEAD;hp=9ad526cadbc413e09b93195e5a4d48df4e93d3fa;hpb=608760751ce7fcf4e84e86a8b33d43bc1d9984d6;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/PartitionedLeadersElectionScenarioTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/PartitionedLeadersElectionScenarioTest.java index 9ad526cadb..e5f7c6eaa6 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/PartitionedLeadersElectionScenarioTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/PartitionedLeadersElectionScenarioTest.java @@ -8,12 +8,14 @@ package org.opendaylight.controller.cluster.raft.behaviors; import static org.junit.Assert.assertEquals; + import akka.actor.ActorRef; import com.google.common.collect.ImmutableMap; import org.junit.Test; import org.opendaylight.controller.cluster.raft.DefaultConfigParamsImpl; import org.opendaylight.controller.cluster.raft.RaftState; import org.opendaylight.controller.cluster.raft.base.messages.ElectionTimeout; +import org.opendaylight.controller.cluster.raft.base.messages.TimeoutNow; import org.opendaylight.controller.cluster.raft.messages.AppendEntries; import org.opendaylight.controller.cluster.raft.messages.AppendEntriesReply; import org.opendaylight.controller.cluster.raft.messages.RequestVote; @@ -31,7 +33,7 @@ public class PartitionedLeadersElectionScenarioTest extends AbstractLeaderElecti * sends a heartbeat first when connectivity is re-established. */ @Test - public void runTest1() throws Exception { + public void runTest1() { testLog.info("PartitionedLeadersElectionScenarioTest 1 starting"); setupInitialMemberBehaviors(); @@ -52,7 +54,7 @@ public class PartitionedLeadersElectionScenarioTest extends AbstractLeaderElecti * sends a heartbeat first when connectivity is re-established. */ @Test - public void runTest2() throws Exception { + public void runTest2() { testLog.info("PartitionedLeadersElectionScenarioTest 2 starting"); setupInitialMemberBehaviors(); @@ -103,7 +105,7 @@ public class PartitionedLeadersElectionScenarioTest extends AbstractLeaderElecti testLog.info("resolvePartitionedLeadersWithLeaderMember2SendingHeartbeatFirst ending"); } - private void resolvePartitionedLeadersWithLeaderMember3SendingHeartbeatFirst() throws Exception { + private void resolvePartitionedLeadersWithLeaderMember3SendingHeartbeatFirst() { testLog.info("resolvePartitionedLeadersWithLeaderMember3SendingHeartbeatFirst starting"); // Re-establish connectivity between member 2 and 3, ie stop dropping messages between @@ -139,7 +141,7 @@ public class PartitionedLeadersElectionScenarioTest extends AbstractLeaderElecti testLog.info("resolvePartitionedLeadersWithLeaderMember3SendingHeartbeatFirst ending"); } - private void sendElectionTimeoutToNowCandidateMember2() throws Exception { + private void sendElectionTimeoutToNowCandidateMember2() { testLog.info("sendElectionTimeoutToNowCandidateMember2 starting"); // member 2, now a candidate, is partitioned from the Leader (now member 3) and hasn't received any @@ -159,7 +161,7 @@ public class PartitionedLeadersElectionScenarioTest extends AbstractLeaderElecti member3Actor.dropMessagesToBehavior(AppendEntries.class); member3Actor.dropMessagesToBehavior(RequestVote.class); - member2ActorRef.tell(new ElectionTimeout(), ActorRef.noSender()); + member2ActorRef.tell(ElectionTimeout.INSTANCE, ActorRef.noSender()); member2Actor.waitForExpectedMessages(RequestVoteReply.class); @@ -187,7 +189,7 @@ public class PartitionedLeadersElectionScenarioTest extends AbstractLeaderElecti testLog.info("sendElectionTimeoutToNowCandidateMember2 ending"); } - private void sendInitialElectionTimeoutToFollowerMember3() throws Exception { + private void sendInitialElectionTimeoutToFollowerMember3() { testLog.info("sendInitialElectionTimeoutToFollowerMember3 starting"); // Send ElectionTimeout to member 3 to simulate no heartbeat from a Leader (originally member 1). @@ -207,7 +209,7 @@ public class PartitionedLeadersElectionScenarioTest extends AbstractLeaderElecti member3Actor.expectMessageClass(RequestVoteReply.class, 1); member3Actor.expectMessageClass(AppendEntriesReply.class, 1); - member3ActorRef.tell(new ElectionTimeout(), ActorRef.noSender()); + member3ActorRef.tell(TimeoutNow.INSTANCE, ActorRef.noSender()); member1Actor.waitForExpectedMessages(RequestVote.class); member2Actor.waitForExpectedMessages(RequestVote.class); @@ -251,7 +253,7 @@ public class PartitionedLeadersElectionScenarioTest extends AbstractLeaderElecti member3Actor.dropMessagesToBehavior(RequestVote.class); - member2ActorRef.tell(new ElectionTimeout(), ActorRef.noSender()); + member2ActorRef.tell(TimeoutNow.INSTANCE, ActorRef.noSender()); member1Actor.waitForExpectedMessages(RequestVote.class); member3Actor.waitForExpectedMessages(RequestVote.class); @@ -273,41 +275,41 @@ public class PartitionedLeadersElectionScenarioTest extends AbstractLeaderElecti testLog.info("sendInitialElectionTimeoutToFollowerMember2 ending"); } - private void setupInitialMemberBehaviors() throws Exception { + private void setupInitialMemberBehaviors() { testLog.info("setupInitialMemberBehaviors starting"); // Create member 2's behavior initially as Follower member2Context = newRaftActorContext("member2", member2ActorRef, - ImmutableMap.builder(). - put("member1", member1ActorRef.path().toString()). - put("member3", member3ActorRef.path().toString()).build()); + ImmutableMap.builder() + .put("member1", member1ActorRef.path().toString()) + .put("member3", member3ActorRef.path().toString()).build()); DefaultConfigParamsImpl member2ConfigParams = newConfigParams(); member2Context.setConfigParams(member2ConfigParams); - Follower member2Behavior = new Follower(member2Context); - member2Actor.behavior = member2Behavior; + member2Actor.self().tell(new SetBehavior(new Follower(member2Context), member2Context), + ActorRef.noSender()); // Create member 3's behavior initially as Follower member3Context = newRaftActorContext("member3", member3ActorRef, - ImmutableMap.builder(). - put("member1", member1ActorRef.path().toString()). - put("member2", member2ActorRef.path().toString()).build()); + ImmutableMap.builder() + .put("member1", member1ActorRef.path().toString()) + .put("member2", member2ActorRef.path().toString()).build()); DefaultConfigParamsImpl member3ConfigParams = newConfigParams(); member3Context.setConfigParams(member3ConfigParams); - Follower member3Behavior = new Follower(member3Context); - member3Actor.behavior = member3Behavior; + member3Actor.self().tell(new SetBehavior(new Follower(member3Context), member3Context), + ActorRef.noSender()); // Create member 1's behavior initially as Leader member1Context = newRaftActorContext("member1", member1ActorRef, - ImmutableMap.builder(). - put("member2", member2ActorRef.path().toString()). - put("member3", member3ActorRef.path().toString()).build()); + ImmutableMap.builder() + .put("member2", member2ActorRef.path().toString()) + .put("member3", member3ActorRef.path().toString()).build()); DefaultConfigParamsImpl member1ConfigParams = newConfigParams(); member1Context.setConfigParams(member1ConfigParams);