import static org.mockito.Matchers.anyObject;
import static org.mockito.Matchers.eq;
import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import akka.persistence.SaveSnapshotSuccess;
import akka.persistence.SnapshotMetadata;
import akka.persistence.SnapshotOffer;
+import akka.persistence.SnapshotSelectionCriteria;
import akka.testkit.JavaTestKit;
import akka.testkit.TestActorRef;
import com.google.common.base.Optional;
factory = new TestActorFactory(getSystem());
}
+ @SuppressWarnings("unchecked")
+ private static DataPersistenceProvider mockPersistenceProvider() {
+ final DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
+ doReturn(false).when(dataPersistenceProvider).isRecoveryApplicable();
+ doReturn(0L).when(dataPersistenceProvider).getLastSequenceNumber();
+ doNothing().when(dataPersistenceProvider).saveSnapshot(any(Object.class));
+ doNothing().when(dataPersistenceProvider).persist(any(Object.class), any(Procedure.class));
+ doNothing().when(dataPersistenceProvider).deleteSnapshots(any(SnapshotSelectionCriteria.class));
+ doNothing().when(dataPersistenceProvider).deleteMessages(0L);
+
+ return dataPersistenceProvider;
+ }
+
@After
public void tearDown() throws Exception {
factory.close();
mockRaftActor.waitForRecoveryComplete();
RaftActorRecoverySupport mockSupport = mock(RaftActorRecoverySupport.class);
- mockRaftActor.setRaftActorRecoverySupport(mockSupport );
+ doReturn(false).when(mockSupport).handleRecoveryMessage(any(Object.class), any(PersistentDataProvider.class));
+ mockRaftActor.setRaftActorRecoverySupport(mockSupport);
Snapshot snapshot = Snapshot.create(new byte[]{1}, Collections.<ReplicatedLogEntry>emptyList(), 3, 1, 3, 1);
SnapshotOffer snapshotOffer = new SnapshotOffer(new SnapshotMetadata("test", 6, 12345), snapshot);
config.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS));
- DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
+ DataPersistenceProvider dataPersistenceProvider = mockPersistenceProvider();
TestActorRef<MockRaftActor> mockActorRef = factory.createTestActor(MockRaftActor.props(persistenceId,
Collections.<String, String>emptyMap(), config, dataPersistenceProvider), persistenceId);
config.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS));
- DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
+ DataPersistenceProvider dataPersistenceProvider = mockPersistenceProvider();
TestActorRef<MockRaftActor> mockActorRef = factory.createTestActor(MockRaftActor.props(persistenceId,
Collections.<String, String>emptyMap(), config, dataPersistenceProvider), persistenceId);
config.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS));
config.setIsolatedLeaderCheckInterval(new FiniteDuration(1, TimeUnit.DAYS));
- DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
+ DataPersistenceProvider dataPersistenceProvider = mockPersistenceProvider();
Map<String, String> peerAddresses = new HashMap<>();
peerAddresses.put(follower1Id, followerActor1.path().toString());
config.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS));
config.setIsolatedLeaderCheckInterval(new FiniteDuration(1, TimeUnit.DAYS));
- DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
+ DataPersistenceProvider dataPersistenceProvider = mockPersistenceProvider();
Map<String, String> peerAddresses = new HashMap<>();
peerAddresses.put(leaderId, leaderActor1.path().toString());
config.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS));
config.setIsolatedLeaderCheckInterval(new FiniteDuration(1, TimeUnit.DAYS));
- DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
+ DataPersistenceProvider dataPersistenceProvider = mockPersistenceProvider();
Map<String, String> peerAddresses = new HashMap<>();
peerAddresses.put(follower1Id, followerActor1.path().toString());
String persistenceId = factory.generateActorId("follower-");
ImmutableMap<String, String> peerAddresses =
ImmutableMap.<String, String>builder().put("member1", "address").build();
- DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
+ DataPersistenceProvider dataPersistenceProvider = mockPersistenceProvider();
TestActorRef<MockRaftActor> actorRef = factory.createTestActor(
MockRaftActor.props(persistenceId, peerAddresses, emptyConfig, dataPersistenceProvider), persistenceId);
verify(mockRaftActor.snapshotCohortDelegate, timeout(5000)).createSnapshot(any(ActorRef.class));
mockRaftActor.snapshotCohortDelegate = mock(RaftActorSnapshotCohort.class);
+ doNothing().when(mockRaftActor.snapshotCohortDelegate).createSnapshot(any(ActorRef.class));
raftActorRef.tell(GetSnapshot.INSTANCE, kit.getRef());
mockRaftActor.getSnapshotMessageSupport().setSnapshotReplyActorTimeout(Duration.create(200, TimeUnit.MILLISECONDS));
reset(mockRaftActor.snapshotCohortDelegate);
+ doNothing().when(mockRaftActor.snapshotCohortDelegate).createSnapshot(any(ActorRef.class));
raftActorRef.tell(GetSnapshot.INSTANCE, kit.getRef());
Failure failure = kit.expectMsgClass(akka.actor.Status.Failure.class);
mockRaftActor.setPersistence(false);
reset(mockRaftActor.snapshotCohortDelegate);
+ doNothing().when(mockRaftActor.snapshotCohortDelegate).createSnapshot(any(ActorRef.class));
raftActorRef.tell(GetSnapshot.INSTANCE, kit.getRef());
reply = kit.expectMsgClass(GetSnapshotReply.class);