private long candidateElectionTerm;
@Test
- public void runTest() throws Exception {
+ public void runTest() {
testLog.info("PartitionedCandidateOnStartupElectionScenarioTest starting");
setupInitialMember1AndMember2Behaviors();
testLog.info("PartitionedCandidateOnStartupElectionScenarioTest ending");
}
- private void sendElectionTimeoutToFollowerMember1() throws Exception {
+ private void sendElectionTimeoutToFollowerMember1() {
testLog.info("sendElectionTimeoutToFollowerMember1 starting");
// At this point we have no leader. Candidate member 3 would continue to start new elections
testLog.info("sendElectionTimeoutToFollowerMember1 ending");
}
- private void resolvePartitionAndSendElectionTimeoutsToCandidateMember3() throws Exception {
+ private void resolvePartitionAndSendElectionTimeoutsToCandidateMember3() {
testLog.info("resolvePartitionAndSendElectionTimeoutsToCandidateMember3 starting");
// Now send a couple more ElectionTimeouts to Candidate member 3 with the partition resolved.
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
testLog.info("setupPartitionedCandidateMember3AndSendElectionTimeouts ending");
}
- private void setupInitialMember1AndMember2Behaviors() throws Exception {
+ private void setupInitialMember1AndMember2Behaviors() {
testLog.info("setupInitialMember1AndMember2Behaviors starting");
// Initialize the ReplicatedLog and election term info for member 1 and 2. The current term
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.
member3Actor.clear();
testLog.info("setupInitialMember1AndMember2Behaviors ending");
-
}
}