Improve segmented journal actor metrics
[controller.git] / opendaylight / md-sal / sal-clustering-commons / src / test / java / org / opendaylight / controller / cluster / common / actor / MeteredBoundedMailboxTest.java
index 6142bf3ec55a4e2e6a884e6766960855baa0c671..673b4b1876f0eeb2ec718634793bb0cfba1674bb 100644 (file)
@@ -11,8 +11,8 @@ import akka.actor.ActorRef;
 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;
@@ -28,13 +28,13 @@ public class MeteredBoundedMailboxTest {
     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;
@@ -42,9 +42,9 @@ public class MeteredBoundedMailboxTest {
     }
 
     @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);
 
@@ -53,17 +53,19 @@ public class MeteredBoundedMailboxTest {
 
         actorSystem.mailboxes().settings();
         lock.lock();
-        //queue capacity = 10
-        //need to send 12 messages; 1 message is dequeued and actor waits on lock,
-        //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());
-        }
-
-        mockReceiver.expectMsgClass(twentySeconds, DeadLetter.class);
+        try {
+            //queue capacity = 10
+            //need to send 12 messages; 1 message is dequeued and actor waits on lock,
+            //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.testActor());
+            }
 
-        lock.unlock();
+            mockReceiver.expectMsgClass(twentySeconds, DeadLetter.class);
+        } finally {
+            lock.unlock();
+        }
 
         mockReceiver.receiveN(11, twentySeconds);
     }
@@ -71,11 +73,11 @@ public class MeteredBoundedMailboxTest {
     /**
      * 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;
         }
 
@@ -84,7 +86,7 @@ public class MeteredBoundedMailboxTest {
         }
 
         @Override
-        public void onReceive(final Object message) throws Exception {
+        public void onReceive(final Object message) {
             lock.lock();
             try {
                 if ("ping".equals(message)) {