import akka.actor.ActorSystem;
import akka.actor.DeadLetter;
import akka.actor.Props;
-import akka.actor.UntypedActor;
-import akka.testkit.JavaTestKit;
+import akka.actor.UntypedAbstractActor;
+import akka.testkit.TestKit;
import com.typesafe.config.ConfigFactory;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
private final ReentrantLock lock = new ReentrantLock();
@BeforeClass
- public static void setUp() throws Exception {
- config = new CommonConfig.Builder<>("testsystem").withConfigReader(() -> ConfigFactory.load()).build();
+ public static void setUp() {
+ config = new CommonConfig.Builder<>("testsystem").withConfigReader(ConfigFactory::load).build();
actorSystem = ActorSystem.create("testsystem", config.get());
}
@AfterClass
- public static void tearDown() throws Exception {
+ public static void tearDown() {
if (actorSystem != null) {
actorSystem.terminate();
actorSystem = null;
}
@Test
- public void shouldSendMsgToDeadLetterWhenQueueIsFull() throws InterruptedException {
- final JavaTestKit mockReceiver = new JavaTestKit(actorSystem);
- actorSystem.eventStream().subscribe(mockReceiver.getRef(), DeadLetter.class);
+ public void shouldSendMsgToDeadLetterWhenQueueIsFull() {
+ final TestKit mockReceiver = new TestKit(actorSystem);
+ actorSystem.eventStream().subscribe(mockReceiver.testActor(), DeadLetter.class);
final FiniteDuration twentySeconds = new FiniteDuration(20, TimeUnit.SECONDS);
//2nd to 11th messages are put on the queue
//12th message is sent to dead letter.
for (int i = 0; i < 12; i++) {
- pingPongActor.tell("ping", mockReceiver.getRef());
+ pingPongActor.tell("ping", mockReceiver.testActor());
}
mockReceiver.expectMsgClass(twentySeconds, DeadLetter.class);
/**
* For testing.
*/
- public static class PingPongActor extends UntypedActor {
+ public static class PingPongActor extends UntypedAbstractActor {
ReentrantLock lock;
- private PingPongActor(final ReentrantLock lock) {
+ PingPongActor(final ReentrantLock lock) {
this.lock = lock;
}
}
@Override
- public void onReceive(final Object message) throws Exception {
+ public void onReceive(final Object message) {
lock.lock();
try {
if ("ping".equals(message)) {