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%2FPartitionedCandidateOnStartupElectionScenarioTest.java;h=3f5ca17d7abc17b27bd3288d0cf6d5c9b1819b1f;hb=dac16f0d464eff3325b3800a803e81b303964e4b;hp=65950a9b0b113ec06e490e40c317184ab4848895;hpb=5699039102dc439a1cec521b3a7c320f36ee6d80;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/PartitionedCandidateOnStartupElectionScenarioTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/PartitionedCandidateOnStartupElectionScenarioTest.java index 65950a9b0b..3f5ca17d7a 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/PartitionedCandidateOnStartupElectionScenarioTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/PartitionedCandidateOnStartupElectionScenarioTest.java @@ -8,18 +8,19 @@ 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.MockRaftActorContext.MockPayload; -import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockReplicatedLogEntry; import org.opendaylight.controller.cluster.raft.MockRaftActorContext.SimpleReplicatedLog; 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.RequestVote; import org.opendaylight.controller.cluster.raft.messages.RequestVoteReply; +import org.opendaylight.controller.cluster.raft.persisted.SimpleReplicatedLogEntry; /** * A leader election scenario test that partitions a candidate when trying to join a cluster on startup. @@ -111,7 +112,7 @@ public class PartitionedCandidateOnStartupElectionScenarioTest extends AbstractL // term and return a RequestVoteReply but should not grant the vote. candidateElectionTerm += 2; - for(int i = 0; i < 2; i++) { + for (int i = 0; i < 2; i++) { member1Actor.clear(); member1Actor.expectMessageClass(RequestVote.class, 1); member2Actor.clear(); @@ -154,9 +155,9 @@ public class PartitionedCandidateOnStartupElectionScenarioTest extends AbstractL // Create member 3's behavior initially as a Candidate. 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); @@ -165,7 +166,7 @@ public class PartitionedCandidateOnStartupElectionScenarioTest extends AbstractL // will be 2 and the last term will be 1 so it is behind the leader's log. SimpleReplicatedLog candidateReplicatedLog = new SimpleReplicatedLog(); - candidateReplicatedLog.append(new MockReplicatedLogEntry(2, 0, new MockPayload(""))); + candidateReplicatedLog.append(new SimpleReplicatedLogEntry(0, 2, new MockPayload(""))); member3Context.setReplicatedLog(candidateReplicatedLog); member3Context.setCommitIndex(candidateReplicatedLog.lastIndex()); @@ -181,15 +182,14 @@ public class PartitionedCandidateOnStartupElectionScenarioTest extends AbstractL member2Actor.dropMessagesToBehavior(RequestVote.class, numCandidateElections); - Candidate member3Behavior = new Candidate(member3Context); - member3Actor.behavior = member3Behavior; - member3Context.setCurrentBehavior(member3Behavior); + member3Actor.self().tell(new SetBehavior(new Candidate(member3Context), member3Context), + ActorRef.noSender()); // Send several additional ElectionTimeouts to Candidate member 3. Each ElectionTimeout will // start a new term so Candidate member 3's current term will be greater than the leader's // current term. - for(int i = 0; i < numCandidateElections - 1; i++) { + for (int i = 0; i < numCandidateElections - 1; i++) { member3ActorRef.tell(ElectionTimeout.INSTANCE, ActorRef.noSender()); } @@ -215,15 +215,15 @@ public class PartitionedCandidateOnStartupElectionScenarioTest extends AbstractL // will be 3 and the last term will be 2. SimpleReplicatedLog replicatedLog = new SimpleReplicatedLog(); - replicatedLog.append(new MockReplicatedLogEntry(2, 0, new MockPayload(""))); - replicatedLog.append(new MockReplicatedLogEntry(3, 1, new MockPayload(""))); + replicatedLog.append(new SimpleReplicatedLogEntry(0, 2, new MockPayload(""))); + replicatedLog.append(new SimpleReplicatedLogEntry(1, 3, new MockPayload(""))); // Create member 2's behavior 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); @@ -233,15 +233,15 @@ public class PartitionedCandidateOnStartupElectionScenarioTest extends AbstractL member2Context.setLastApplied(replicatedLog.lastIndex()); member2Context.getTermInformation().update(3, "member1"); - member2Actor.behavior = new Follower(member2Context); - member2Context.setCurrentBehavior(member2Actor.behavior); + member2Actor.self().tell(new SetBehavior(new Follower(member2Context), member2Context), + ActorRef.noSender()); // Create member 1's behavior 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);