X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fcommon%2Factor%2FMeteredBoundedMailboxTest.java;h=673b4b1876f0eeb2ec718634793bb0cfba1674bb;hp=60efb9d7ca1ec163b826b62efd485a7939e88068;hb=HEAD;hpb=edf5bfcee83c750853253ccfd991ba7000f5f65b diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/common/actor/MeteredBoundedMailboxTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/common/actor/MeteredBoundedMailboxTest.java index 60efb9d7ca..673b4b1876 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/common/actor/MeteredBoundedMailboxTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/common/actor/MeteredBoundedMailboxTest.java @@ -11,16 +11,15 @@ import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.DeadLetter; import akka.actor.Props; -import akka.actor.UntypedActor; -import akka.japi.Creator; -import akka.testkit.JavaTestKit; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import scala.concurrent.duration.FiniteDuration; - +import akka.actor.UntypedAbstractActor; +import akka.testkit.TestKit; +import com.typesafe.config.ConfigFactory; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import scala.concurrent.duration.FiniteDuration; public class MeteredBoundedMailboxTest { @@ -28,76 +27,74 @@ public class MeteredBoundedMailboxTest { private static CommonConfig config; private final ReentrantLock lock = new ReentrantLock(); - @Before - public void setUp() throws Exception { - config = new CommonConfig.Builder<>("testsystem").build(); + @BeforeClass + public static void setUp() { + config = new CommonConfig.Builder<>("testsystem").withConfigReader(ConfigFactory::load).build(); actorSystem = ActorSystem.create("testsystem", config.get()); } - @After - public void tearDown() throws Exception { - if (actorSystem != null) - actorSystem.shutdown(); + @AfterClass + 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 TWENTY_SEC = new FiniteDuration(20, TimeUnit.SECONDS); + final FiniteDuration twentySeconds = new FiniteDuration(20, TimeUnit.SECONDS); ActorRef pingPongActor = actorSystem.actorOf(PingPongActor.props(lock).withMailbox(config.getMailBoxName()), "pingpongactor"); 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(TWENTY_SEC, 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(); + } - Object[] eleven = mockReceiver.receiveN(11, TWENTY_SEC); + mockReceiver.receiveN(11, twentySeconds); } /** - * For testing + * For testing. */ - public static class PingPongActor extends UntypedActor{ + public static class PingPongActor extends UntypedAbstractActor { ReentrantLock lock; - private PingPongActor(ReentrantLock lock){ + PingPongActor(final ReentrantLock lock) { this.lock = lock; } - public static Props props(final ReentrantLock lock){ - return Props.create(new Creator(){ - private static final long serialVersionUID = 1L; - @Override - public PingPongActor create() throws Exception { - return new PingPongActor(lock); - } - }); + public static Props props(final ReentrantLock lock) { + return Props.create(PingPongActor.class, lock); } @Override - public void onReceive(Object message) throws Exception { + public void onReceive(final Object message) { lock.lock(); try { - if ("ping".equals(message)) + if ("ping".equals(message)) { getSender().tell("pong", getSelf()); + } } finally { lock.unlock(); } } } -} \ No newline at end of file +}