+ return factory.createTestActorPath(id);
+ }
+
+ protected void verifyLeadersTrimmedLog(long lastIndex) {
+ verifyTrimmedLog("Leader", leaderActor, lastIndex, lastIndex - 1);
+ }
+
+ protected void verifyLeadersTrimmedLog(long lastIndex, long replicatedToAllIndex) {
+ verifyTrimmedLog("Leader", leaderActor, lastIndex, replicatedToAllIndex);
+ }
+
+ protected void verifyFollowersTrimmedLog(int num, TestActorRef<TestRaftActor> actorRef, long lastIndex) {
+ verifyTrimmedLog("Follower " + num, actorRef, lastIndex, lastIndex - 1);
+ }
+
+ protected void verifyTrimmedLog(String name, TestActorRef<TestRaftActor> actorRef, long lastIndex,
+ long replicatedToAllIndex) {
+ TestRaftActor actor = actorRef.underlyingActor();
+ RaftActorContext context = actor.getRaftActorContext();
+ long snapshotIndex = lastIndex - 1;
+ assertEquals(name + " snapshot term", snapshotIndex < 0 ? -1 : currentTerm,
+ context.getReplicatedLog().getSnapshotTerm());
+ assertEquals(name + " snapshot index", snapshotIndex, context.getReplicatedLog().getSnapshotIndex());
+ assertEquals(name + " journal log size", 1, context.getReplicatedLog().size());
+ assertEquals(name + " journal last index", lastIndex, context.getReplicatedLog().lastIndex());
+ assertEquals(name + " commit index", lastIndex, context.getCommitIndex());
+ assertEquals(name + " last applied", lastIndex, context.getLastApplied());
+ assertEquals(name + " replicatedToAllIndex", replicatedToAllIndex,
+ actor.getCurrentBehavior().getReplicatedToAllIndex());