assertEquals("getSnapshotTerm", -1, replicatedLogImpl.getSnapshotTerm());
assertEquals("lastIndex", -1, replicatedLogImpl.lastIndex());
assertEquals("lastTerm", -1, replicatedLogImpl.lastTerm());
- assertEquals("isPresent", false, replicatedLogImpl.isPresent(0));
- assertEquals("isInSnapshot", false, replicatedLogImpl.isInSnapshot(0));
+ assertFalse("isPresent", replicatedLogImpl.isPresent(0));
+ assertFalse("isInSnapshot", replicatedLogImpl.isInSnapshot(0));
assertNull("get(0)", replicatedLogImpl.get(0));
assertNull("last", replicatedLogImpl.last());
};
TestActorRef<MockRaftActor> raftActorRef = factory.createTestActor(MockRaftActor.builder().id(id)
- .config(config).snapshotCohort(snapshotCohort).persistent(Optional.of(true)).props()
+ .config(config).snapshotCohort(snapshotCohort).persistent(Optional.of(Boolean.TRUE)).props()
.withDispatcher(Dispatchers.DefaultDispatcherId()), id);
MockRaftActor mockRaftActor = raftActorRef.underlyingActor();
*/
package org.opendaylight.controller.cluster.raft;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import com.google.common.io.ByteSource;
public void waitForRecoveryComplete() {
try {
- assertEquals("Recovery complete", true, recoveryComplete.await(5, TimeUnit.SECONDS));
+ assertTrue("Recovery complete", recoveryComplete.await(5, TimeUnit.SECONDS));
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
public void waitForInitializeBehaviorComplete() {
try {
- assertEquals("Behavior initialized", true, initializeBehaviorComplete.await(5, TimeUnit.SECONDS));
+ assertTrue("Behavior initialized", initializeBehaviorComplete.await(5, TimeUnit.SECONDS));
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
package org.opendaylight.controller.cluster.raft;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import java.util.List;
import java.util.Map;
follower2ConfigParams.setCustomRaftPolicyImplementationClass(DisableElectionsRaftPolicy.class.getName());
follower2Actor = newTestRaftActor(follower2Id, TestRaftActor.newBuilder().peerAddresses(
Map.of(leaderId, testActorPath(leaderId), follower1Id, follower1Actor.path().toString()))
- .config(follower2ConfigParams).persistent(Optional.of(false)));
+ .config(follower2ConfigParams).persistent(Optional.of(Boolean.FALSE)));
TestRaftActor follower2Instance = follower2Actor.underlyingActor();
follower2Instance.waitForRecoveryComplete();
follower2CollectorActor = follower2Instance.collectorActor();
private void createNewLeaderActor() {
expSnapshotState.clear();
leaderActor = newTestRaftActor(leaderId, TestRaftActor.newBuilder().peerAddresses(peerAddresses)
- .config(leaderConfigParams).persistent(Optional.of(false)));
+ .config(leaderConfigParams).persistent(Optional.of(Boolean.FALSE)));
leaderInstance = leaderActor.underlyingActor();
leaderCollectorActor = leaderInstance.collectorActor();
waitUntilLeader(leaderActor);
DefaultConfigParamsImpl followerConfigParams = newFollowerConfigParams();
follower1Actor = newTestRaftActor(follower1Id, follower1Builder.peerAddresses(
Map.of(leaderId, testActorPath(leaderId))).config(followerConfigParams)
- .persistent(Optional.of(false)));
+ .persistent(Optional.of(Boolean.FALSE)));
peerAddresses = Map.of(follower1Id, follower1Actor.path().toString());
leaderConfigParams = newLeaderConfigParams();
leaderActor = newTestRaftActor(leaderId, TestRaftActor.newBuilder().peerAddresses(peerAddresses)
- .config(leaderConfigParams).persistent(Optional.of(false)));
+ .config(leaderConfigParams).persistent(Optional.of(Boolean.FALSE)));
followerInstance = follower1Actor.underlyingActor();
follower1CollectorActor = followerInstance.collectorActor();
assertEquals("Leader term", currentTerm, leaderContext.currentTerm());
assertEquals("Leader server config", Set.copyOf(persistedServerConfig.getServerConfig()),
Set.copyOf(leaderContext.getPeerServerInfo(true).getServerConfig()));
- assertEquals("Leader isVotingMember", true, leaderContext.isVotingMember());
+ assertTrue("Leader isVotingMember", leaderContext.isVotingMember());
// Verify follower's context after startup
assertEquals("Follower term", currentTerm, follower1Context.currentTerm());
assertEquals("Follower server config", Set.copyOf(persistedServerConfig.getServerConfig()),
Set.copyOf(follower1Context.getPeerServerInfo(true).getServerConfig()));
- assertEquals("FollowerisVotingMember", false, follower1Context.isVotingMember());
+ assertFalse("FollowerisVotingMember", follower1Context.isVotingMember());
}
}
package org.opendaylight.controller.cluster.raft;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
context.updatePeerIds(new ServerConfigurationPayload(List.of(new ServerInfo("self", false),
new ServerInfo("peer2", true), new ServerInfo("peer3", false))));
verifyPeerInfo(context, "peer1", null);
- verifyPeerInfo(context, "peer2", true);
- verifyPeerInfo(context, "peer3", false);
- assertEquals("isVotingMember", false, context.isVotingMember());
+ verifyPeerInfo(context, "peer2", Boolean.TRUE);
+ verifyPeerInfo(context, "peer3", Boolean.FALSE);
+ assertFalse("isVotingMember", context.isVotingMember());
context.updatePeerIds(new ServerConfigurationPayload(List.of(new ServerInfo("self", true),
new ServerInfo("peer2", true), new ServerInfo("peer3", true))));
- verifyPeerInfo(context, "peer2", true);
- verifyPeerInfo(context, "peer3", true);
- assertEquals("isVotingMember", true, context.isVotingMember());
+ verifyPeerInfo(context, "peer2", Boolean.TRUE);
+ verifyPeerInfo(context, "peer3", Boolean.TRUE);
+ assertTrue("isVotingMember", context.isVotingMember());
context.updatePeerIds(new ServerConfigurationPayload(List.of(new ServerInfo("peer2", true),
new ServerInfo("peer3", true))));
- verifyPeerInfo(context, "peer2", true);
- verifyPeerInfo(context, "peer3", true);
- assertEquals("isVotingMember", false, context.isVotingMember());
+ verifyPeerInfo(context, "peer2", Boolean.TRUE);
+ verifyPeerInfo(context, "peer3", Boolean.TRUE);
+ assertFalse("isVotingMember", context.isVotingMember());
}
private static DataPersistenceProvider createProvider() {
//verify new peers
assertTrue("Dynamic server configuration", context.isDynamicServerConfigurationInUse());
assertEquals("New peer Ids", Set.of(follower1, follower2, follower3), Set.copyOf(context.getPeerIds()));
- assertEquals("follower1 isVoting", true, context.getPeerInfo(follower1).isVoting());
- assertEquals("follower2 isVoting", false, context.getPeerInfo(follower2).isVoting());
- assertEquals("follower3 isVoting", true, context.getPeerInfo(follower3).isVoting());
+ assertTrue("follower1 isVoting", context.getPeerInfo(follower1).isVoting());
+ assertFalse("follower2 isVoting", context.getPeerInfo(follower2).isVoting());
+ assertTrue("follower3 isVoting", context.getPeerInfo(follower3).isVoting());
sendMessageToSupport(new ApplyJournalEntries(0));
package org.opendaylight.controller.cluster.raft;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
assertEquals("getStatus", ServerChangeStatus.NO_LEADER, addServerReply.getStatus());
assertEquals("Leader peers size", 0, leaderActorContext.getPeerIds().size());
- assertEquals("isCapturing", false, leaderActorContext.getSnapshotManager().isCapturing());
+ assertFalse("isCapturing", leaderActorContext.getSnapshotManager().isCapturing());
LOG.info("testAddServerWithLeaderChangeBeforePriorSnapshotComplete ending");
}
TestActorRef<MockRaftActor> noLeaderActor = actorFactory.createTestActor(
MockRaftActor.builder().id(LEADER_ID).peerAddresses(Map.of(FOLLOWER_ID,
- followerActor.path().toString())).config(configParams).persistent(Optional.of(false))
+ followerActor.path().toString())).config(configParams).persistent(Optional.of(Boolean.FALSE))
.props().withDispatcher(Dispatchers.DefaultDispatcherId()),
actorFactory.generateActorId(LEADER_ID));
noLeaderActor.underlyingActor().waitForInitializeBehaviorComplete();
TestActorRef<MockRaftActor> followerRaftActor = actorFactory.createTestActor(
MockRaftActor.builder().id(FOLLOWER_ID).peerAddresses(Map.of(LEADER_ID,
- leaderActor.path().toString())).config(configParams).persistent(Optional.of(false))
+ leaderActor.path().toString())).config(configParams).persistent(Optional.of(Boolean.FALSE))
.props().withDispatcher(Dispatchers.DefaultDispatcherId()),
actorFactory.generateActorId(FOLLOWER_ID));
followerRaftActor.underlyingActor().waitForInitializeBehaviorComplete();
configParams.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS));
TestActorRef<MockRaftActor> noLeaderActor = actorFactory.createTestActor(
MockRaftActor.builder().id(LEADER_ID).peerAddresses(Map.of(FOLLOWER_ID,
- followerActor.path().toString())).config(configParams).persistent(Optional.of(false))
+ followerActor.path().toString())).config(configParams).persistent(Optional.of(Boolean.FALSE))
.props().withDispatcher(Dispatchers.DefaultDispatcherId()),
actorFactory.generateActorId(LEADER_ID));
ReplicatedLogEntry serverConfigEntry = new SimpleReplicatedLogEntry(1, 1,
new ServerConfigurationPayload(List.of()));
boolean handled = support.handleMessage(new ApplyState(null, null, serverConfigEntry), ActorRef.noSender());
- assertEquals("Message handled", true, handled);
+ assertTrue("Message handled", handled);
ReplicatedLogEntry nonServerConfigEntry = new SimpleReplicatedLogEntry(1, 1,
new MockRaftActorContext.MockPayload("1"));
handled = support.handleMessage(new ApplyState(null, null, nonServerConfigEntry), ActorRef.noSender());
- assertEquals("Message handled", false, handled);
+ assertFalse("Message handled", handled);
LOG.info("testOnApplyState ending");
}
TestActorRef<MockRaftActor> leaderActor = actorFactory.createTestActor(
MockRaftActor.builder().id(LEADER_ID).peerAddresses(Map.of(FOLLOWER_ID,
- followerActor.path().toString())).config(configParams).persistent(Optional.of(false))
+ followerActor.path().toString())).config(configParams).persistent(Optional.of(Boolean.FALSE))
.props().withDispatcher(Dispatchers.DefaultDispatcherId()),
actorFactory.generateActorId(LEADER_ID));
leaderActor.underlyingActor().waitForInitializeBehaviorComplete();
TestActorRef<MockRaftActor> followerRaftActor = actorFactory.createTestActor(
MockRaftActor.builder().id(FOLLOWER_ID).peerAddresses(Map.of(LEADER_ID,
- leaderActor.path().toString())).config(configParams).persistent(Optional.of(false))
+ leaderActor.path().toString())).config(configParams).persistent(Optional.of(Boolean.FALSE))
.props().withDispatcher(Dispatchers.DefaultDispatcherId()),
actorFactory.generateActorId(FOLLOWER_ID));
followerRaftActor.underlyingActor().waitForInitializeBehaviorComplete();
verifyServerConfigurationPayloadEntry(node1RaftActor.getRaftActorContext().getReplicatedLog(),
nonVotingServer(node1ID), nonVotingServer(node2ID), votingServer("downNode1"),
votingServer("downNode2"));
- assertEquals("isVotingMember", false, node1RaftActor.getRaftActorContext().isVotingMember());
+ assertFalse("isVotingMember", node1RaftActor.getRaftActorContext().isVotingMember());
assertEquals("getRaftState", RaftState.Follower, node1RaftActor.getRaftState());
assertEquals("getLeaderId", null, node1RaftActor.getLeaderId());
verifyServerConfigurationPayloadEntry(node2RaftActor.getRaftActorContext().getReplicatedLog(),
nonVotingServer(node1ID), nonVotingServer(node2ID), votingServer("downNode1"),
votingServer("downNode2"));
- assertEquals("isVotingMember", false, node2RaftActor.getRaftActorContext().isVotingMember());
+ assertFalse("isVotingMember", node2RaftActor.getRaftActorContext().isVotingMember());
// For the test, we send a ChangeServersVotingStatus message to node1 to flip the voting states for
// each server, ie node1 and node2 to voting and the 2 down nodes to non-voting. This should cause
// ChangeServersVotingStatus message, it will try to elect a leader.
AbstractRaftActorIntegrationTest.verifyRaftState(node1RaftActorRef,
- rs -> assertEquals("getLeader", null, rs.getLeader()));
+ rs -> assertNull("getLeader", rs.getLeader()));
// Update node2's peer address and send the message again
verifyServerConfigurationPayloadEntry(node1RaftActor.getRaftActorContext().getReplicatedLog(),
votingServer(node1ID), votingServer(node2ID), nonVotingServer("downNode1"),
nonVotingServer("downNode2"));
- assertEquals("isVotingMember", true, node1RaftActor.getRaftActorContext().isVotingMember());
+ assertTrue("isVotingMember", node1RaftActor.getRaftActorContext().isVotingMember());
assertEquals("getRaftState", RaftState.Leader, node1RaftActor.getRaftState());
apply = MessageCollectorActor.expectFirstMatching(node2Collector, ApplyJournalEntries.class);
verifyServerConfigurationPayloadEntry(node2RaftActor.getRaftActorContext().getReplicatedLog(),
votingServer(node1ID), votingServer(node2ID), nonVotingServer("downNode1"),
nonVotingServer("downNode2"));
- assertEquals("isVotingMember", true, node2RaftActor.getRaftActorContext().isVotingMember());
+ assertTrue("isVotingMember", node2RaftActor.getRaftActorContext().isVotingMember());
assertEquals("getRaftState", RaftState.Follower, node2RaftActor.getRaftState());
LOG.info("testChangeToVotingWithNoLeader ending");
MessageCollectorActor.expectFirstMatching(node1Collector, ApplyJournalEntries.class);
verifyServerConfigurationPayloadEntry(node1RaftActor.getRaftActorContext().getReplicatedLog(),
votingServer(node1ID), votingServer(node2ID));
- assertEquals("isVotingMember", true, node1RaftActor.getRaftActorContext().isVotingMember());
+ assertTrue("isVotingMember", node1RaftActor.getRaftActorContext().isVotingMember());
assertEquals("getRaftState", RaftState.Follower, node1RaftActor.getRaftState());
LOG.info("testChangeToVotingWithNoLeaderAndForwardedToOtherNodeAfterElectionTimeout ending");
MessageCollectorActor.expectFirstMatching(node1Collector, ApplyJournalEntries.class);
verifyServerConfigurationPayloadEntry(node1RaftActor.getRaftActorContext().getReplicatedLog(),
votingServer(node1ID), votingServer(node2ID));
- assertEquals("isVotingMember", true, node1RaftActor.getRaftActorContext().isVotingMember());
+ assertTrue("isVotingMember", node1RaftActor.getRaftActorContext().isVotingMember());
assertEquals("getRaftState", RaftState.Follower, node1RaftActor.getRaftState());
MessageCollectorActor.expectFirstMatching(node2Collector, ApplyJournalEntries.class);
MessageCollectorActor.clearMessages(actorRef);
}
- @SuppressWarnings({ "rawtypes", "unchecked" })
@Test
public void testCapture() {
boolean capture = snapshotManager.capture(new SimpleReplicatedLogEntry(9, 1,
assertTrue(snapshotManager.isCapturing());
verify(mockProcedure).accept(outputStreamCaptor.capture());
- assertEquals("isPresent", false, outputStreamCaptor.getValue().isPresent());
+ assertFalse("isPresent", outputStreamCaptor.getValue().isPresent());
CaptureSnapshot captureSnapshot = snapshotManager.getCaptureSnapshot();
MessageCollectorActor.clearMessages(actorRef);
}
- @SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void testCaptureWithNullLastLogEntry() {
boolean capture = snapshotManager.capture(null, 1);
assertTrue(snapshotManager.isCapturing());
verify(mockProcedure).accept(outputStreamCaptor.capture());
- assertEquals("isPresent", false, outputStreamCaptor.getValue().isPresent());
+ assertFalse("isPresent", outputStreamCaptor.getValue().isPresent());
CaptureSnapshot captureSnapshot = snapshotManager.getCaptureSnapshot();
verify(mockProcedure).accept(outputStreamCaptor.capture());
Optional<OutputStream> installSnapshotStream = outputStreamCaptor.getValue();
- assertEquals("isPresent", true, installSnapshotStream.isPresent());
+ assertTrue("isPresent", installSnapshotStream.isPresent());
installSnapshotStream.orElseThrow().write(snapshotState.getBytes());
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(behaviorActor, AppendEntriesReply.class);
- assertEquals("isSuccess", false, reply.isSuccess());
+ assertFalse("isSuccess", reply.isSuccess());
assertEquals("getPayloadVersion", payloadVersion, reply.getPayloadVersion());
}
behavior.handleMessage(behaviorActor, new RequestVote(context.currentTerm(), "test", 10000, 999));
RequestVoteReply reply = MessageCollectorActor.expectFirstMatching(behaviorActor, RequestVoteReply.class);
- assertEquals("isVoteGranted", true, reply.isVoteGranted());
+ assertTrue("isVoteGranted", reply.isVoteGranted());
}
/**
new RequestVote(context.currentTerm(), "test", index - 1, context.currentTerm()));
RequestVoteReply reply = MessageCollectorActor.expectFirstMatching(behaviorActor, RequestVoteReply.class);
- assertEquals("isVoteGranted", false, reply.isVoteGranted());
+ assertFalse("isVoteGranted", reply.isVoteGranted());
}
-
-
/**
* This test verifies that the receiving RaftActor will not grant a vote
* to a sender if the sender's term is lesser than the currentTerm of the
behavior.handleMessage(behaviorActor, new RequestVote(999, "test", 10000, 999));
RequestVoteReply reply = MessageCollectorActor.expectFirstMatching(behaviorActor, RequestVoteReply.class);
- assertEquals("isVoteGranted", false, reply.isVoteGranted());
+ assertFalse("isVoteGranted", reply.isVoteGranted());
}
@Test
package org.opendaylight.controller.cluster.raft.behaviors;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import com.google.common.base.Stopwatch;
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(
peerActors[0], AppendEntriesReply.class);
- assertEquals("isSuccess", false, reply.isSuccess());
+ assertFalse("isSuccess", reply.isSuccess());
assertEquals("getTerm", 2, reply.getTerm());
assertTrue("New Behavior : " + newBehavior, newBehavior instanceof Candidate);
}
RequestVoteReply reply = MessageCollectorActor.expectFirstMatching(
peerActors[0], RequestVoteReply.class);
- assertEquals("isVoteGranted", false, reply.isVoteGranted());
+ assertFalse("isVoteGranted", reply.isVoteGranted());
assertEquals("getTerm", 2, reply.getTerm());
}
RequestVoteReply reply = MessageCollectorActor.expectFirstMatching(
peerActors[0], RequestVoteReply.class);
- assertEquals("isVoteGranted", true, reply.isVoteGranted());
+ assertTrue("isVoteGranted", reply.isVoteGranted());
assertEquals("getTerm", 1001, reply.getTerm());
}
RequestVoteReply reply = MessageCollectorActor.expectFirstMatching(
peerActors[0], RequestVoteReply.class);
- assertEquals("isVoteGranted", false, reply.isVoteGranted());
+ assertFalse("isVoteGranted", reply.isVoteGranted());
assertEquals("getTerm", 1001, reply.getTerm());
}
package org.opendaylight.controller.cluster.raft.behaviors;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import com.google.common.collect.ImmutableMap;
import org.apache.pekko.actor.ActorRef;
RequestVoteReply requestVoteReply = member3Actor.getCapturedMessage(RequestVoteReply.class);
assertEquals("getTerm", member3Context.currentTerm(), requestVoteReply.getTerm());
- assertEquals("isVoteGranted", true, requestVoteReply.isVoteGranted());
+ assertTrue("isVoteGranted", requestVoteReply.isVoteGranted());
verifyBehaviorState("member 3", member3Actor, RaftState.Leader);
RequestVoteReply reply = MessageCollectorActor.expectFirstMatching(leaderActor, RequestVoteReply.class);
- assertEquals("isVoteGranted", true, reply.isVoteGranted());
+ assertTrue("isVoteGranted", reply.isVoteGranted());
assertEquals("getTerm", term, reply.getTerm());
verify(follower).scheduleElection(any(FiniteDuration.class));
}
RequestVoteReply reply = MessageCollectorActor.expectFirstMatching(leaderActor, RequestVoteReply.class);
- assertEquals("isVoteGranted", false, reply.isVoteGranted());
+ assertFalse("isVoteGranted", reply.isVoteGranted());
verify(follower, never()).scheduleElection(any(FiniteDuration.class));
}
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(leaderActor,
AppendEntriesReply.class);
- assertEquals("isSuccess", false, reply.isSuccess());
+ assertFalse("isSuccess", reply.isSuccess());
}
@Test
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(leaderActor, AppendEntriesReply.class);
- assertEquals("isSuccess", true, reply.isSuccess());
+ assertTrue("isSuccess", reply.isSuccess());
}
/**
for (var reply : replies) {
assertEquals("getChunkIndex", chunkIndex++, reply.getChunkIndex());
assertEquals("getTerm", 1, reply.getTerm());
- assertEquals("isSuccess", true, reply.isSuccess());
+ assertTrue("isSuccess", reply.isSuccess());
assertEquals("getFollowerId", context.getId(), reply.getFollowerId());
}
follower.handleMessage(leaderActor, appendEntries);
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(leaderActor, AppendEntriesReply.class);
- assertEquals("isSuccess", true, reply.isSuccess());
+ assertTrue("isSuccess", reply.isSuccess());
assertEquals("getLogLastIndex", context.getReplicatedLog().lastIndex(), reply.getLogLastIndex());
assertEquals("getLogLastTerm", context.getReplicatedLog().lastTerm(), reply.getLogLastTerm());
assertEquals("getTerm", context.currentTerm(), reply.getTerm());
follower.handleMessage(leaderActor, appendEntries);
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(leaderActor, AppendEntriesReply.class);
- assertEquals("isSuccess", true, reply.isSuccess());
+ assertTrue("isSuccess", reply.isSuccess());
assertEquals("getLogLastIndex", 2, reply.getLogLastIndex());
assertEquals("getLogLastTerm", 2, reply.getLogLastTerm());
assertEquals("getTerm", 2, reply.getTerm());
InstallSnapshotReply reply = MessageCollectorActor.expectFirstMatching(leaderActor,
InstallSnapshotReply.class);
- assertEquals("isSuccess", false, reply.isSuccess());
+ assertFalse("isSuccess", reply.isSuccess());
assertEquals("getChunkIndex", -1, reply.getChunkIndex());
assertEquals("getTerm", 1, reply.getTerm());
assertEquals("getFollowerId", context.getId(), reply.getFollowerId());
final AtomicReference<MockRaftActor> followerRaftActor = new AtomicReference<>();
RaftActorSnapshotCohort snapshotCohort = newRaftActorSnapshotCohort(followerRaftActor);
- Builder builder = MockRaftActor.builder().persistent(Optional.of(true)).id(id)
+ Builder builder = MockRaftActor.builder().persistent(Optional.of(Boolean.TRUE)).id(id)
.peerAddresses(Map.of("leader", "")).config(config).snapshotCohort(snapshotCohort);
TestActorRef<MockRaftActor> followerActorRef = actorFactory.createTestActor(builder.props()
.withDispatcher(Dispatchers.DefaultDispatcherId()), id);
followerActorRef.tell(appendEntries, leaderActor);
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(leaderActor, AppendEntriesReply.class);
- assertEquals("isSuccess", true, reply.isSuccess());
+ assertTrue("isSuccess", reply.isSuccess());
final Snapshot snapshot = InMemorySnapshotStore.waitForSavedSnapshot(id, Snapshot.class);
final AtomicReference<MockRaftActor> followerRaftActor = new AtomicReference<>();
RaftActorSnapshotCohort snapshotCohort = newRaftActorSnapshotCohort(followerRaftActor);
- Builder builder = MockRaftActor.builder().persistent(Optional.of(true)).id(id)
+ Builder builder = MockRaftActor.builder().persistent(Optional.of(Boolean.TRUE)).id(id)
.peerAddresses(Map.of("leader", "")).config(config).snapshotCohort(snapshotCohort);
TestActorRef<MockRaftActor> followerActorRef = actorFactory.createTestActor(builder.props()
.withDispatcher(Dispatchers.DefaultDispatcherId()), id);
followerActorRef.tell(appendEntries, leaderActor);
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(leaderActor, AppendEntriesReply.class);
- assertEquals("isSuccess", true, reply.isSuccess());
+ assertTrue("isSuccess", reply.isSuccess());
final Snapshot snapshot = InMemorySnapshotStore.waitForSavedSnapshot(id, Snapshot.class);
// We expect the ApplyJournalEntries for index 2 to remain in the persisted log b/c it's still queued for
// persistence by the time we initiate capture so the last persisted journal sequence number doesn't include it.
// This is OK - on recovery it will be a no-op since index 2 has already been applied.
- List<Object> journalEntries = InMemoryJournal.get(id, Object.class);
+ final var journalEntries = InMemoryJournal.get(id, Object.class);
assertEquals("Persisted journal entries size: " + journalEntries, 1, journalEntries.size());
assertEquals("Persisted journal entry type", ApplyJournalEntries.class, journalEntries.get(0).getClass());
assertEquals("ApplyJournalEntries index", 2, ((ApplyJournalEntries)journalEntries.get(0)).getToIndex());
final AtomicReference<MockRaftActor> followerRaftActor = new AtomicReference<>();
RaftActorSnapshotCohort snapshotCohort = newRaftActorSnapshotCohort(followerRaftActor);
- Builder builder = MockRaftActor.builder().persistent(Optional.of(true)).id(id)
+ Builder builder = MockRaftActor.builder().persistent(Optional.of(Boolean.TRUE)).id(id)
.peerAddresses(Map.of("leader", "")).config(config).snapshotCohort(snapshotCohort);
TestActorRef<MockRaftActor> followerActorRef = actorFactory.createTestActor(builder.props()
.withDispatcher(Dispatchers.DefaultDispatcherId()), id);
followerActorRef.tell(appendEntries, leaderActor);
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(leaderActor, AppendEntriesReply.class);
- assertEquals("isSuccess", true, reply.isSuccess());
+ assertTrue("isSuccess", reply.isSuccess());
final Snapshot snapshot = InMemorySnapshotStore.waitForSavedSnapshot(id, Snapshot.class);
assertEquals("getLogLastIndex", expLogLastIndex, reply.getLogLastIndex());
assertEquals("getPayloadVersion", payloadVersion, reply.getPayloadVersion());
assertEquals("isForceInstallSnapshot", expForceInstallSnapshot, reply.isForceInstallSnapshot());
- assertEquals("isNeedsLeaderAddress", false, reply.isNeedsLeaderAddress());
+ assertFalse("isNeedsLeaderAddress", reply.isNeedsLeaderAddress());
}
@Override
protected void handleAppendEntriesAddSameEntryToLogReply(final ActorRef replyActor) {
AppendEntriesReply reply = MessageCollectorActor.expectFirstMatching(replyActor, AppendEntriesReply.class);
- assertEquals("isSuccess", true, reply.isSuccess());
+ assertTrue("isSuccess", reply.isSuccess());
}
}
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
// The follower would normally reply - simulate that explicitly here.
leader.handleMessage(followerActor, new AppendEntriesReply(
FOLLOWER_ID, term, true, lastIndex - 1, term, (short)0));
- assertEquals("isFollowerActive", true, leader.getFollower(FOLLOWER_ID).isFollowerActive());
+ assertTrue("isFollowerActive", leader.getFollower(FOLLOWER_ID).isFollowerActive());
followerActor.underlyingActor().clear();
long lastIndex = actorContext.getReplicatedLog().lastIndex();
leader.handleMessage(followerActor, new AppendEntriesReply(
FOLLOWER_ID, term, true, lastIndex, term, (short)0));
- assertEquals("isFollowerActive", true, leader.getFollower(FOLLOWER_ID).isFollowerActive());
+ assertTrue("isFollowerActive", leader.getFollower(FOLLOWER_ID).isFollowerActive());
followerActor.underlyingActor().clear();
long lastIndex = actorContext.getReplicatedLog().lastIndex();
leader.handleMessage(followerActor, new AppendEntriesReply(
FOLLOWER_ID, term, true, lastIndex, term, (short) 0));
- assertEquals("isFollowerActive", true, leader.getFollower(FOLLOWER_ID).isFollowerActive());
+ assertTrue("isFollowerActive", leader.getFollower(FOLLOWER_ID).isFollowerActive());
followerActor.underlyingActor().clear();
long lastIndex = actorContext.getReplicatedLog().lastIndex();
leader.handleMessage(followerActor, new AppendEntriesReply(
FOLLOWER_ID, term, true, lastIndex, term, (short)0));
- assertEquals("isFollowerActive", true, leader.getFollower(FOLLOWER_ID).isFollowerActive());
+ assertTrue("isFollowerActive", leader.getFollower(FOLLOWER_ID).isFollowerActive());
followerActor.underlyingActor().clear();
long lastIndex = actorContext.getReplicatedLog().lastIndex();
leader.handleMessage(followerActor, new AppendEntriesReply(
FOLLOWER_ID, term, true, lastIndex, term, (short)0));
- assertEquals("isFollowerActive", true, leader.getFollower(FOLLOWER_ID).isFollowerActive());
+ assertTrue("isFollowerActive", leader.getFollower(FOLLOWER_ID).isFollowerActive());
followerActor.underlyingActor().clear();
}
// We are expecting six messages here -- a request to replicate and a consensus-reached message
- List<AppendEntries> allMessages = MessageCollectorActor.getAllMatching(followerActor, AppendEntries.class);
+ var allMessages = MessageCollectorActor.getAllMatching(followerActor, AppendEntries.class);
assertEquals("The number of request/consensus appends collected", 6, allMessages.size());
for (int i = 0; i < 3; i++) {
assertRequestEntry(lastIndex, allMessages, i);
long lastIndex = actorContext.getReplicatedLog().lastIndex();
leader.handleMessage(followerActor, new AppendEntriesReply(
FOLLOWER_ID, term, true, lastIndex, term, (short)0));
- assertEquals("isFollowerActive", true, leader.getFollower(FOLLOWER_ID).isFollowerActive());
+ assertTrue("isFollowerActive", leader.getFollower(FOLLOWER_ID).isFollowerActive());
followerActor.underlyingActor().clear();
long lastIndex = actorContext.getReplicatedLog().lastIndex();
leader.handleMessage(followerActor, new AppendEntriesReply(
FOLLOWER_ID, term, true, lastIndex, term, (short)0));
- assertEquals("isFollowerActive", true, leader.getFollower(FOLLOWER_ID).isFollowerActive());
+ assertTrue("isFollowerActive", leader.getFollower(FOLLOWER_ID).isFollowerActive());
followerActor.underlyingActor().clear();
long lastIndex = actorContext.getReplicatedLog().lastIndex();
leader.handleMessage(followerActor, new AppendEntriesReply(
FOLLOWER_ID, term, true, lastIndex, term, (short)0));
- assertEquals("isFollowerActive", true, leader.getFollower(FOLLOWER_ID).isFollowerActive());
+ assertTrue("isFollowerActive", leader.getFollower(FOLLOWER_ID).isFollowerActive());
followerActor.underlyingActor().clear();
RaftActorBehavior raftBehavior = leader.handleMessage(
leaderActor, new Replicate(newEntryIndex, true, null, new MockIdentifier("state-id")));
- assertTrue(raftBehavior instanceof Leader);
+ assertInstanceOf(Leader.class, raftBehavior);
- assertEquals("isCapturing", true, actorContext.getSnapshotManager().isCapturing());
+ assertTrue("isCapturing", actorContext.getSnapshotManager().isCapturing());
}
@Test
leader.handleMessage(leaderActor, new Replicate(newEntryIndex, true, null, new MockIdentifier("state-id")));
- assertEquals("isCapturing", true, actorContext.getSnapshotManager().isCapturing());
+ assertTrue("isCapturing", actorContext.getSnapshotManager().isCapturing());
CaptureSnapshot cs = actorContext.getSnapshotManager().getCaptureSnapshot();
leader.handleMessage(leaderActor, new AppendEntriesReply(FOLLOWER_ID, 1, false, 1, 1, (short) 1, true, false,
RaftVersions.CURRENT_VERSION));
- assertEquals("isCapturing", true, actorContext.getSnapshotManager().isCapturing());
+ assertTrue("isCapturing", actorContext.getSnapshotManager().isCapturing());
CaptureSnapshot cs = actorContext.getSnapshotManager().getCaptureSnapshot();
assertEquals(3, cs.getLastAppliedIndex());
AppendEntriesReply appendEntriesReply = MessageCollectorActor.expectFirstMatching(leaderActor,
AppendEntriesReply.class);
- assertEquals(false, appendEntriesReply.isSuccess());
+ assertFalse(appendEntriesReply.isSuccess());
assertEquals(RaftState.Follower, leaderActor.underlyingActor().getFirstBehaviorChange().state());
MessageCollectorActor.clearMessages(leaderActor);
AppendEntriesReply appendEntriesReply = MessageCollectorActor.expectFirstMatching(leaderActor,
AppendEntriesReply.class);
- assertEquals(false, appendEntriesReply.isSuccess());
+ assertFalse(appendEntriesReply.isSuccess());
assertEquals(RaftState.Leader, leaderActor.underlyingActor().getFirstBehaviorChange().state());
MessageCollectorActor.clearMessages(leaderActor);
protected void assertStateChangesToFollowerWhenRaftRPCHasNewerTerm(final MockRaftActorContext actorContext,
final ActorRef actorRef, final RaftRPC rpc) {
super.assertStateChangesToFollowerWhenRaftRPCHasNewerTerm(actorContext, actorRef, rpc);
- assertEquals("New votedFor", null, actorContext.termInfo().votedFor());
+ assertNull("New votedFor", actorContext.termInfo().votedFor());
}
private static class MockConfigParamsImpl extends DefaultConfigParamsImpl {
package org.opendaylight.controller.cluster.raft.behaviors;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import com.google.common.collect.ImmutableMap;
import org.apache.pekko.actor.ActorRef;
RequestVoteReply requestVoteReply = member1Actor.getCapturedMessage(RequestVoteReply.class);
assertEquals("getTerm", member1Context.currentTerm(), requestVoteReply.getTerm());
- assertEquals("isVoteGranted", true, requestVoteReply.isVoteGranted());
+ assertTrue("isVoteGranted", requestVoteReply.isVoteGranted());
// Candidate member 3 should change to follower as its term should be less than the
// RequestVote term (member 1 started a new term higher than the other member's terms).
RequestVoteReply requestVoteReply = member3Actor.getCapturedMessage(RequestVoteReply.class);
assertEquals("getTerm", member3Context.currentTerm(), requestVoteReply.getTerm());
- assertEquals("isVoteGranted", false, requestVoteReply.isVoteGranted());
+ assertFalse("isVoteGranted", requestVoteReply.isVoteGranted());
}
verifyBehaviorState("member 1", member1Actor, RaftState.Follower);
package org.opendaylight.controller.cluster.raft.behaviors;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import com.google.common.collect.ImmutableMap;
import org.apache.pekko.actor.ActorRef;
member3Actor.waitForExpectedMessages(AppendEntriesReply.class);
AppendEntriesReply appendEntriesReply = member3Actor.getCapturedMessage(AppendEntriesReply.class);
- assertEquals("isSuccess", false, appendEntriesReply.isSuccess());
+ assertFalse("isSuccess", appendEntriesReply.isSuccess());
assertEquals("getTerm", 3, appendEntriesReply.getTerm());
verifyBehaviorState("member 1", member1Actor, RaftState.Follower);
RequestVoteReply requestVoteReply = member2Actor.getCapturedMessage(RequestVoteReply.class);
assertEquals("getTerm", member2Context.currentTerm(), requestVoteReply.getTerm());
- assertEquals("isVoteGranted", true, requestVoteReply.isVoteGranted());
+ assertTrue("isVoteGranted", requestVoteReply.isVoteGranted());
member3Actor.waitForExpectedMessages(RequestVote.class);
RequestVoteReply requestVoteReply = member3Actor.getCapturedMessage(RequestVoteReply.class);
assertEquals("getTerm", member3Context.currentTerm(), requestVoteReply.getTerm());
- assertEquals("isVoteGranted", true, requestVoteReply.isVoteGranted());
+ assertTrue("isVoteGranted", requestVoteReply.isVoteGranted());
// when member 3 switches to Leader it will immediately send out heartbeat AppendEntries to
// the followers. Wait for AppendEntries to member 1 and its AppendEntriesReply. The
package org.opendaylight.controller.cluster.raft.behaviors;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
FollowerInitialSyncUpStatus status =
MessageCollectorActor.getFirstMatching(listener, FollowerInitialSyncUpStatus.class);
- assertEquals(false, status.isInitialSyncDone());
+ assertFalse(status.isInitialSyncDone());
MessageCollectorActor.clearMessages(listener);
// At a minimum the follower should have the commit index that the new leader sent it in the first message
assertNotNull("No sync status message was received", status);
- assertEquals(false, status.isInitialSyncDone());
+ assertFalse(status.isInitialSyncDone());
MessageCollectorActor.clearMessages(listener);
// If the follower is not caught up yet it should not receive any further notification
status = MessageCollectorActor.getFirstMatching(listener, FollowerInitialSyncUpStatus.class);
- assertEquals(true, status.isInitialSyncDone());
+ assertTrue(status.isInitialSyncDone());
MessageCollectorActor.clearMessages(listener);
// When a new leader starts sending update messages a new syncStatus notification should be immediately
status = MessageCollectorActor.getFirstMatching(listener, FollowerInitialSyncUpStatus.class);
- assertEquals(false, status.isInitialSyncDone());
+ assertFalse(status.isInitialSyncDone());
MessageCollectorActor.clearMessages(listener);
// If an update is received from a new leader which is still below the minimum expected index then
member3Cars.tell(new StopDropMessages<>(AppendEntries.class), null);
await("Is tx stuck in COMMIT_PENDING")
- .atMost(10, TimeUnit.SECONDS).untilAtomic(submitDone, equalTo(true));
+ .atMost(10, TimeUnit.SECONDS).untilAtomic(submitDone, equalTo(Boolean.TRUE));
}