import akka.persistence.Persistence;
import akka.persistence.SelectedSnapshot;
import akka.persistence.SnapshotMetadata;
-import akka.testkit.JavaTestKit;
import akka.testkit.TestProbe;
+import akka.testkit.javadsl.TestKit;
import java.lang.reflect.Field;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
}
@After
- public void tearDown() throws Exception {
- JavaTestKit.shutdownActorSystem(system);
+ public void tearDown() {
+ TestKit.shutdownActorSystem(system);
}
@Test
- public void testInitialBehavior() throws Exception {
+ public void testInitialBehavior() {
final InternalCommand<BackendInfo> cmd = mock(InternalCommand.class);
when(cmd.execute(any())).thenReturn(initialBehavior);
mockedActor.tell(cmd, ActorRef.noSender());
}
@Test
- public void testCommandStashing() throws Exception {
+ public void testCommandStashing() {
system.stop(mockedActor);
mockedActor = system.actorOf(MockedActor.props(id, initialBehavior));
final InternalCommand<BackendInfo> cmd = mock(InternalCommand.class);
}
@Test
- public void testRecoveryAfterRestart() throws Exception {
+ public void testRecoveryAfterRestart() {
system.stop(mockedActor);
mockedActor = system.actorOf(MockedActor.props(id, initialBehavior));
final MockedSnapshotStore.SaveRequest newSaveRequest =
}
@Test
- public void testRecoveryAfterRestartFrontendIdMismatch() throws Exception {
+ public void testRecoveryAfterRestartFrontendIdMismatch() {
system.stop(mockedActor);
//start actor again
mockedActor = system.actorOf(MockedActor.props(id, initialBehavior));
}
@Test
- public void testRecoveryAfterRestartSaveSnapshotFail() throws Exception {
+ public void testRecoveryAfterRestartSaveSnapshotFail() {
system.stop(mockedActor);
mockedActor = system.actorOf(MockedActor.props(id, initialBehavior));
probe.watch(mockedActor);
}
@Test
- public void testRecoveryAfterRestartDeleteSnapshotsFail() throws Exception {
+ public void testRecoveryAfterRestartDeleteSnapshotsFail() {
system.stop(mockedActor);
mockedActor = system.actorOf(MockedActor.props(id, initialBehavior));
probe.watch(mockedActor);
probe.expectMsgClass(MockedSnapshotStore.DeleteByCriteriaRequest.class);
probe.reply(new RuntimeException("delete failed"));
//actor shouldn't terminate
- probe.expectNoMsg();
+ probe.expectNoMessage();
}
@SuppressWarnings("unchecked")
- private ClientActorBehavior<BackendInfo> createInitialBehaviorMock() throws Exception {
+ private static ClientActorBehavior<BackendInfo> createInitialBehaviorMock() throws Exception {
final ClientActorBehavior<BackendInfo> initialBehavior = mock(ClientActorBehavior.class);
//persistenceId() in AbstractClientActorBehavior is final and can't be mocked
//use reflection to work around this
private static class MockedActor extends AbstractClientActor {
- private final ClientActorBehavior initialBehavior;
+ private final ClientActorBehavior<?> initialBehavior;
+ private final ClientActorConfig mockConfig = AccessClientUtil.newMockClientActorConfig();
- private static Props props(final FrontendIdentifier frontendId, final ClientActorBehavior initialBehavior) {
+ private static Props props(final FrontendIdentifier frontendId, final ClientActorBehavior<?> initialBehavior) {
return Props.create(MockedActor.class, () -> new MockedActor(frontendId, initialBehavior));
}
- private MockedActor(final FrontendIdentifier frontendId, final ClientActorBehavior initialBehavior) {
+ MockedActor(final FrontendIdentifier frontendId, final ClientActorBehavior<?> initialBehavior) {
super(frontendId);
this.initialBehavior = initialBehavior;
}
return initialBehavior;
}
+ @Override
+ protected ClientActorConfig getClientActorConfig() {
+ return mockConfig;
+ }
}
-}
\ No newline at end of file
+}