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%2FFollowerTest.java;h=6b0857351df132fd30b10406dae2acfe3cbd1237;hb=614324d63a339ef4acbc9e2c3bbaaef469f97868;hp=a04d6aeb556cd2f84ffb10ac23302c9e5928451b;hpb=3591817114661bb7971d6d355186ff1b39636fcd;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerTest.java index a04d6aeb55..6b0857351d 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/FollowerTest.java @@ -41,11 +41,13 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { return new Follower(actorContext); } - @Override protected RaftActorContext createActorContext() { + @Override + protected MockRaftActorContext createActorContext() { return createActorContext(followerActor); } - protected RaftActorContext createActorContext(ActorRef actorRef){ + @Override + protected MockRaftActorContext createActorContext(ActorRef actorRef){ return new MockRaftActorContext("test", getSystem(), actorRef); } @@ -54,12 +56,14 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { new JavaTestKit(getSystem()) {{ new Within(DefaultConfigParamsImpl.HEART_BEAT_INTERVAL.$times(6)) { + @Override protected void run() { Follower follower = new Follower(createActorContext(getTestActor())); final Boolean out = new ExpectMsg(DefaultConfigParamsImpl.HEART_BEAT_INTERVAL.$times(6), "ElectionTimeout") { // do not put code outside this method, will run afterwards + @Override protected Boolean match(Object in) { if (in instanceof ElectionTimeout) { return true; @@ -92,6 +96,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { new JavaTestKit(getSystem()) {{ new Within(duration("1 seconds")) { + @Override protected void run() { RaftActorContext context = createActorContext(getTestActor()); @@ -104,6 +109,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { final Boolean out = new ExpectMsg(duration("1 seconds"), "RequestVoteReply") { // do not put code outside this method, will run afterwards + @Override protected Boolean match(Object in) { if (in instanceof RequestVoteReply) { RequestVoteReply reply = (RequestVoteReply) in; @@ -125,6 +131,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { new JavaTestKit(getSystem()) {{ new Within(duration("1 seconds")) { + @Override protected void run() { RaftActorContext context = createActorContext(getTestActor()); @@ -137,6 +144,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { final Boolean out = new ExpectMsg(duration("1 seconds"), "RequestVoteReply") { // do not put code outside this method, will run afterwards + @Override protected Boolean match(Object in) { if (in instanceof RequestVoteReply) { RequestVoteReply reply = (RequestVoteReply) in; @@ -181,7 +189,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { // The new commitIndex is 101 AppendEntries appendEntries = - new AppendEntries(2, "leader-1", 100, 1, entries, 101); + new AppendEntries(2, "leader-1", 100, 1, entries, 101, 100); RaftActorBehavior raftBehavior = createBehavior(context).handleMessage(getRef(), appendEntries); @@ -203,8 +211,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { throws Exception { new JavaTestKit(getSystem()) {{ - MockRaftActorContext context = (MockRaftActorContext) - createActorContext(); + MockRaftActorContext context = createActorContext(); // First set the receivers term to lower number context.getTermInformation().update(95, "test"); @@ -217,7 +224,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { // AppendEntries is now sent with a bigger term // this will set the receivers term to be the same as the sender's term AppendEntries appendEntries = - new AppendEntries(100, "leader-1", 0, 0, null, 101); + new AppendEntries(100, "leader-1", 0, 0, null, 101, -1); RaftActorBehavior behavior = createBehavior(context); @@ -233,6 +240,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { final Boolean out = new ExpectMsg(duration("1 seconds"), "AppendEntriesReply") { // do not put code outside this method, will run afterwards + @Override protected Boolean match(Object in) { if (in instanceof AppendEntriesReply) { AppendEntriesReply reply = (AppendEntriesReply) in; @@ -263,8 +271,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { public void testHandleAppendEntriesAddNewEntries() throws Exception { new JavaTestKit(getSystem()) {{ - MockRaftActorContext context = (MockRaftActorContext) - createActorContext(); + MockRaftActorContext context = createActorContext(); // First set the receivers term to lower number context.getTermInformation().update(1, "test"); @@ -293,7 +300,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { // This will not work for a Candidate because as soon as a Candidate // is created it increments the term AppendEntries appendEntries = - new AppendEntries(1, "leader-1", 2, 1, entries, 4); + new AppendEntries(1, "leader-1", 2, 1, entries, 4, -1); RaftActorBehavior behavior = createBehavior(context); @@ -312,6 +319,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { final Boolean out = new ExpectMsg(duration("1 seconds"), "AppendEntriesReply") { // do not put code outside this method, will run afterwards + @Override protected Boolean match(Object in) { if (in instanceof AppendEntriesReply) { AppendEntriesReply reply = (AppendEntriesReply) in; @@ -343,8 +351,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { throws Exception { new JavaTestKit(getSystem()) {{ - MockRaftActorContext context = (MockRaftActorContext) - createActorContext(); + MockRaftActorContext context = createActorContext(); // First set the receivers term to lower number context.getTermInformation().update(2, "test"); @@ -373,7 +380,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { // This will not work for a Candidate because as soon as a Candidate // is created it increments the term AppendEntries appendEntries = - new AppendEntries(2, "leader-1", 1, 1, entries, 3); + new AppendEntries(2, "leader-1", 1, 1, entries, 3, -1); RaftActorBehavior behavior = createBehavior(context); @@ -405,6 +412,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { final Boolean out = new ExpectMsg(duration("1 seconds"), "AppendEntriesReply") { // do not put code outside this method, will run afterwards + @Override protected Boolean match(Object in) { if (in instanceof AppendEntriesReply) { AppendEntriesReply reply = (AppendEntriesReply) in; @@ -425,8 +433,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { public void testHandleAppendEntriesPreviousLogEntryMissing(){ new JavaTestKit(getSystem()) {{ - MockRaftActorContext context = (MockRaftActorContext) - createActorContext(); + MockRaftActorContext context = createActorContext(); // Prepare the receivers log MockRaftActorContext.SimpleReplicatedLog log = @@ -446,7 +453,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { new MockRaftActorContext.MockReplicatedLogEntry(1, 4, new MockRaftActorContext.MockPayload("two-1"))); AppendEntries appendEntries = - new AppendEntries(1, "leader-1", 3, 1, entries, 4); + new AppendEntries(1, "leader-1", 3, 1, entries, 4, -1); RaftActorBehavior behavior = createBehavior(context); @@ -462,6 +469,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { final Boolean out = new ExpectMsg(duration("1 seconds"), "AppendEntriesReply") { // do not put code outside this method, will run afterwards + @Override protected Boolean match(Object in) { if (in instanceof AppendEntriesReply) { AppendEntriesReply reply = (AppendEntriesReply) in; @@ -482,8 +490,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { public void testHandleAppendAfterInstallingSnapshot(){ new JavaTestKit(getSystem()) {{ - MockRaftActorContext context = (MockRaftActorContext) - createActorContext(); + MockRaftActorContext context = createActorContext(); // Prepare the receivers log @@ -502,7 +509,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { new MockRaftActorContext.MockReplicatedLogEntry(1, 4, new MockRaftActorContext.MockPayload("two-1"))); AppendEntries appendEntries = - new AppendEntries(1, "leader-1", 3, 1, entries, 4); + new AppendEntries(1, "leader-1", 3, 1, entries, 4, 3); RaftActorBehavior behavior = createBehavior(context); @@ -518,6 +525,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { final Boolean out = new ExpectMsg(duration("1 seconds"), "AppendEntriesReply") { // do not put code outside this method, will run afterwards + @Override protected Boolean match(Object in) { if (in instanceof AppendEntriesReply) { AppendEntriesReply reply = (AppendEntriesReply) in; @@ -548,8 +556,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { ActorRef leaderActor = getSystem().actorOf(Props.create( MessageCollectorActor.class)); - MockRaftActorContext context = (MockRaftActorContext) - createActorContext(getRef()); + MockRaftActorContext context = createActorContext(getRef()); Follower follower = (Follower)createBehavior(context); @@ -641,8 +648,7 @@ public class FollowerTest extends AbstractRaftActorBehaviorTest { ActorRef leaderActor = getSystem().actorOf(Props.create( MessageCollectorActor.class)); - MockRaftActorContext context = (MockRaftActorContext) - createActorContext(getRef()); + MockRaftActorContext context = createActorContext(getRef()); Follower follower = (Follower) createBehavior(context);