diff --git a/akka-actor-tests/src/test/java/akka/event/LoggingAdapterTest.java b/akka-actor-tests/src/test/java/akka/event/LoggingAdapterTest.java index 4b93e675ed..ae3ffb3b87 100644 --- a/akka-actor-tests/src/test/java/akka/event/LoggingAdapterTest.java +++ b/akka-actor-tests/src/test/java/akka/event/LoggingAdapterTest.java @@ -4,11 +4,11 @@ import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; import akka.testkit.AkkaJUnitActorSystemResource; -import akka.testkit.JavaTestKit; import akka.event.Logging.Error; import akka.event.ActorWithMDC.Log; import static akka.event.Logging.*; +import akka.testkit.javadsl.TestKit; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import org.junit.Before; @@ -120,7 +120,7 @@ public class LoggingAdapterTest extends JUnitSuite { assertNotNull(new Debug("logSource", this.getClass(), "The message")); } - private static class LogJavaTestKit extends JavaTestKit { + private static class LogJavaTestKit extends TestKit { private static final String emptyMDC = "{}"; @@ -141,20 +141,17 @@ public class LoggingAdapterTest extends JUnitSuite { } void expectLog(final Object level, final String message, final Throwable cause, final String mdc) { - new ExpectMsg(Duration.create(3, TimeUnit.SECONDS), "LogEvent") { - @Override - protected Void match(Object event) { - LogEvent log = (LogEvent) event; - assertEquals(message, log.message()); - assertEquals(level, log.level()); - assertEquals(mdc, log.getMDC().toString()); - if(cause != null) { - Error error = (Error) log; - assertSame(cause, error.cause()); - } - return null; + expectMsgPF(Duration.create(3, TimeUnit.SECONDS), "LogEvent", event -> { + LogEvent log = (LogEvent) event; + assertEquals(message, log.message()); + assertEquals(level, log.level()); + assertEquals(mdc, log.getMDC().toString()); + if(cause != null) { + Error error = (Error) log; + assertSame(cause, error.cause()); } - }; + return null; + }); } } } diff --git a/akka-actor-tests/src/test/scala/akka/actor/ActorSystemSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/ActorSystemSpec.scala index ff04f4dabf..8dbdbf2513 100644 --- a/akka-actor-tests/src/test/scala/akka/actor/ActorSystemSpec.scala +++ b/akka-actor-tests/src/test/scala/akka/actor/ActorSystemSpec.scala @@ -3,22 +3,21 @@ */ package akka.actor -import language.postfixOps -import akka.testkit._ -import com.typesafe.config.ConfigFactory - -import scala.concurrent.{ Await, ExecutionContext, Future } -import scala.concurrent.duration._ import java.util.concurrent.{ ConcurrentLinkedQueue, RejectedExecutionException } import akka.actor.setup.ActorSystemSetup -import akka.util.Timeout +import akka.dispatch._ import akka.japi.Util.immutableSeq import akka.pattern.ask -import akka.dispatch._ -import com.typesafe.config.Config -import akka.util.Switch +import akka.testkit._ +import akka.testkit.TestKit import akka.util.Helpers.ConfigOps +import akka.util.{ Switch, Timeout } +import com.typesafe.config.{ Config, ConfigFactory } + +import scala.concurrent.duration._ +import scala.concurrent.{ Await, ExecutionContext, Future } +import scala.language.postfixOps object ActorSystemSpec { diff --git a/akka-actor-tests/src/test/scala/akka/event/LoggerSpec.scala b/akka-actor-tests/src/test/scala/akka/event/LoggerSpec.scala index 8237d45ada..821643ceac 100644 --- a/akka-actor-tests/src/test/scala/akka/event/LoggerSpec.scala +++ b/akka-actor-tests/src/test/scala/akka/event/LoggerSpec.scala @@ -14,7 +14,6 @@ import akka.serialization.SerializationExtension import akka.event.Logging._ import akka.util.Helpers import akka.event.Logging.InitializeLogger -import scala.Some import akka.event.Logging.Warning object LoggerSpec { diff --git a/akka-camel/src/test/java/akka/camel/ConsumerJavaTest.java b/akka-camel/src/test/java/akka/camel/ConsumerJavaTest.java index e21ae1eb2b..ae89e49d11 100644 --- a/akka-camel/src/test/java/akka/camel/ConsumerJavaTest.java +++ b/akka-camel/src/test/java/akka/camel/ConsumerJavaTest.java @@ -6,13 +6,14 @@ package akka.camel; import akka.testkit.AkkaJUnitActorSystemResource; import akka.testkit.AkkaSpec; +import akka.testkit.javadsl.EventFilter; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.scalatest.junit.JUnitSuite; import scala.concurrent.duration.Duration; import scala.concurrent.duration.FiniteDuration; import akka.actor.ActorSystem; import akka.actor.Props; -import akka.testkit.JavaTestKit; import akka.util.Timeout; import scala.concurrent.Await; import scala.concurrent.ExecutionContext; @@ -30,24 +31,22 @@ public class ConsumerJavaTest extends JUnitSuite { @Test public void shouldHandleExceptionThrownByActorAndGenerateCustomResponse() throws Exception { - new JavaTestKit(system) {{ - String result = new EventFilter(Exception.class) { - protected String run() { - FiniteDuration duration = Duration.create(1, TimeUnit.SECONDS); - Timeout timeout = new Timeout(duration); - Camel camel = CamelExtension.get(system); - ExecutionContext executionContext = system.dispatcher(); - try { - Await.result( - camel.activationFutureFor(system.actorOf(Props.create(SampleErrorHandlingConsumer.class), "sample-error-handling-consumer"), timeout, executionContext), - duration); - return camel.template().requestBody("direct:error-handler-test-java", "hello", String.class); - } - catch (Exception e) { - return e.getMessage(); - } + new TestKit(system) {{ + String result = new EventFilter(Exception.class, system).occurrences(1).intercept(() -> { + FiniteDuration duration = Duration.create(1, TimeUnit.SECONDS); + Timeout timeout = new Timeout(duration); + Camel camel = CamelExtension.get(system); + ExecutionContext executionContext = system.dispatcher(); + try { + Await.result( + camel.activationFutureFor(system.actorOf(Props.create(SampleErrorHandlingConsumer.class), "sample-error-handling-consumer"), timeout, executionContext), + duration); + return camel.template().requestBody("direct:error-handler-test-java", "hello", String.class); } - }.occurrences(1).exec(); + catch (Exception e) { + return e.getMessage(); + } + }); assertEquals("error: hello", result); }}; } diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeChurnSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeChurnSpec.scala index 4afface84f..951493bad9 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeChurnSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/NodeChurnSpec.scala @@ -3,22 +3,17 @@ */ package akka.cluster -import scala.collection.immutable -import scala.language.postfixOps -import scala.concurrent.duration._ -import akka.actor.Address -import akka.cluster.MemberStatus._ -import akka.remote.testkit.MultiNodeConfig -import akka.remote.testkit.MultiNodeSpec -import akka.testkit._ -import com.typesafe.config.ConfigFactory -import org.scalatest.BeforeAndAfter -import akka.actor.ActorSystem -import akka.actor.ActorRef +import akka.actor._ import akka.event.Logging.Info -import akka.actor.Actor -import akka.actor.Props import akka.remote.RARP +import akka.remote.testkit.{ MultiNodeConfig, MultiNodeSpec } +import akka.testkit._ +import akka.testkit.TestKit +import com.typesafe.config.ConfigFactory + +import scala.collection.immutable +import scala.concurrent.duration._ +import scala.language.postfixOps object NodeChurnMultiJvmSpec extends MultiNodeConfig { val first = role("first") diff --git a/akka-cluster/src/test/scala/akka/cluster/DowningProviderSpec.scala b/akka-cluster/src/test/scala/akka/cluster/DowningProviderSpec.scala index d81649925a..97f5ce578f 100644 --- a/akka-cluster/src/test/scala/akka/cluster/DowningProviderSpec.scala +++ b/akka-cluster/src/test/scala/akka/cluster/DowningProviderSpec.scala @@ -8,9 +8,7 @@ import java.util.concurrent.atomic.AtomicBoolean import akka.ConfigurationException import akka.actor.{ ActorSystem, Props } import akka.testkit.TestKit.{ awaitCond, shutdownActorSystem } -import akka.testkit.{ TestKit, TestProbe } import com.typesafe.config.ConfigFactory -import org.scalatest.concurrent.Futures import org.scalatest.{ Matchers, WordSpec } import scala.concurrent.duration._ diff --git a/akka-contrib/src/test/scala/akka/contrib/throttle/TimerBasedThrottlerSpec.scala b/akka-contrib/src/test/scala/akka/contrib/throttle/TimerBasedThrottlerSpec.scala index aeedbf477f..55f4dd94fc 100644 --- a/akka-contrib/src/test/scala/akka/contrib/throttle/TimerBasedThrottlerSpec.scala +++ b/akka-contrib/src/test/scala/akka/contrib/throttle/TimerBasedThrottlerSpec.scala @@ -10,7 +10,6 @@ import akka.actor.ActorSystem import akka.actor.Actor import akka.actor.Props import akka.testkit.TestKit -import akka.testkit.ImplicitSender import akka.contrib.throttle.Throttler._ import org.scalatest.WordSpecLike import org.scalatest.Matchers diff --git a/akka-docs/rst/java/code/jdocs/actor/ActorDocTest.java b/akka-docs/rst/java/code/jdocs/actor/ActorDocTest.java index 504bcdeff4..400c1fe4eb 100644 --- a/akka-docs/rst/java/code/jdocs/actor/ActorDocTest.java +++ b/akka-docs/rst/java/code/jdocs/actor/ActorDocTest.java @@ -5,12 +5,12 @@ package jdocs.actor; import akka.actor.*; +import akka.testkit.javadsl.TestKit; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import jdocs.AbstractJavaTest; import static jdocs.actor.Messages.Swap.Swap; import static jdocs.actor.Messages.*; -import static akka.japi.Util.immutableSeq; import akka.actor.CoordinatedShutdown; import akka.util.Timeout; @@ -21,7 +21,6 @@ import java.util.concurrent.TimeUnit; import akka.testkit.TestActors; import scala.concurrent.Await; -import akka.testkit.JavaTestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -473,14 +472,14 @@ public class ActorDocTest extends AbstractJavaTest { final ActorRef myActor = system.actorOf(Props.create(MyActor.class), "myactor"); //#system-actorOf try { - new JavaTestKit(system) { + new TestKit(system) { { myActor.tell("hello", getRef()); expectMsgEquals("hello"); } }; } finally { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } } @@ -489,14 +488,14 @@ public class ActorDocTest extends AbstractJavaTest { final ActorSystem system = ActorSystem.create("MySystem", config); final ActorRef actor = system.actorOf(Props.create(GraduallyBuiltActor.class), "graduallyBuiltActor"); try { - new JavaTestKit(system) { + new TestKit(system) { { actor.tell("hello", getRef()); expectMsgEquals("hello"); } }; } finally { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } } @@ -564,7 +563,7 @@ public class ActorDocTest extends AbstractJavaTest { @Test public void using_receiveTimeout() { final ActorRef myActor = system.actorOf(Props.create(ReceiveTimeoutActor.class)); - new JavaTestKit(system) { + new TestKit(system) { { myActor.tell("Hello", getRef()); expectMsgEquals("Hello world"); @@ -617,7 +616,7 @@ public class ActorDocTest extends AbstractJavaTest { @Test public void using_hot_swap() { final ActorRef actor = system.actorOf(Props.create(HotSwapActor.class), "hot"); - new JavaTestKit(system) { + new TestKit(system) { { actor.tell("foo", getRef()); actor.tell("foo", getRef()); @@ -690,7 +689,7 @@ public class ActorDocTest extends AbstractJavaTest { public void using_watch() { ActorRef actor = system.actorOf(Props.create(WatchActor.class)); - new JavaTestKit(system) { + new TestKit(system) { { actor.tell("kill", getRef()); expectMsgEquals("finished"); @@ -737,7 +736,7 @@ public class ActorDocTest extends AbstractJavaTest { ActorRef a = system.actorOf(Props.empty()); ActorRef b = system.actorOf(Props.create(Follower.class)); - new JavaTestKit(system) { + new TestKit(system) { { watch(b); system.stop(a); @@ -748,7 +747,7 @@ public class ActorDocTest extends AbstractJavaTest { @Test public void usePatternsAskPipe() { - new JavaTestKit(system) { + new TestKit(system) { { ActorRef actorA = system.actorOf(TestActors.echoActorProps()); ActorRef actorB = system.actorOf(TestActors.echoActorProps()); @@ -783,7 +782,7 @@ public class ActorDocTest extends AbstractJavaTest { @Test public void useKill() { - new JavaTestKit(system) { + new TestKit(system) { { ActorRef victim = system.actorOf(TestActors.echoActorProps()); watch(victim); @@ -797,7 +796,7 @@ public class ActorDocTest extends AbstractJavaTest { @Test public void usePoisonPill() { - new JavaTestKit(system) { + new TestKit(system) { { ActorRef victim = system.actorOf(TestActors.echoActorProps()); watch(victim); diff --git a/akka-docs/rst/java/code/jdocs/actor/DependencyInjectionDocTest.java b/akka-docs/rst/java/code/jdocs/actor/DependencyInjectionDocTest.java index 3f227eda6e..439db74f76 100644 --- a/akka-docs/rst/java/code/jdocs/actor/DependencyInjectionDocTest.java +++ b/akka-docs/rst/java/code/jdocs/actor/DependencyInjectionDocTest.java @@ -4,6 +4,7 @@ package jdocs.actor; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -14,7 +15,6 @@ import akka.actor.AbstractActor; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; -import akka.testkit.JavaTestKit; //#import import akka.actor.Actor; @@ -94,7 +94,7 @@ public class DependencyInjectionDocTest extends AbstractJavaTest { Props.create(DependencyInjector.class, applicationContext, "TheActor"), "TheActor"); //#creating-indirectly - new JavaTestKit(system) { + new TestKit(system) { { myActor.tell("hello", getRef()); expectMsgEquals("..."); diff --git a/akka-docs/rst/java/code/jdocs/actor/FaultHandlingTest.java b/akka-docs/rst/java/code/jdocs/actor/FaultHandlingTest.java index 6bd0874837..9bbf4cd217 100644 --- a/akka-docs/rst/java/code/jdocs/actor/FaultHandlingTest.java +++ b/akka-docs/rst/java/code/jdocs/actor/FaultHandlingTest.java @@ -6,6 +6,7 @@ package jdocs.actor; import akka.actor.*; +import akka.testkit.javadsl.TestKit; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import jdocs.AbstractJavaTest; @@ -14,7 +15,6 @@ import java.util.Optional; import static akka.pattern.Patterns.ask; //#testkit -import akka.testkit.JavaTestKit; import akka.testkit.TestProbe; import akka.testkit.ErrorFilter; import akka.testkit.EventFilter; @@ -145,7 +145,7 @@ public class FaultHandlingTest extends AbstractJavaTest { @AfterClass public static void cleanup() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; } diff --git a/akka-docs/rst/java/code/jdocs/actor/InboxDocTest.java b/akka-docs/rst/java/code/jdocs/actor/InboxDocTest.java index d6ab1a0b6e..6df8e2b1a2 100644 --- a/akka-docs/rst/java/code/jdocs/actor/InboxDocTest.java +++ b/akka-docs/rst/java/code/jdocs/actor/InboxDocTest.java @@ -8,6 +8,7 @@ import java.util.concurrent.TimeUnit; import akka.testkit.AkkaJUnitActorSystemResource; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; @@ -18,7 +19,6 @@ import akka.actor.Inbox; import akka.actor.PoisonPill; import akka.actor.Terminated; import akka.testkit.AkkaSpec; -import akka.testkit.JavaTestKit; public class InboxDocTest extends AbstractJavaTest { @@ -30,7 +30,7 @@ public class InboxDocTest extends AbstractJavaTest { @Test public void demonstrateInbox() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final ActorRef target = probe.getRef(); //#inbox final Inbox inbox = Inbox.create(system); @@ -49,7 +49,7 @@ public class InboxDocTest extends AbstractJavaTest { @Test public void demonstrateWatch() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final ActorRef target = probe.getRef(); //#watch final Inbox inbox = Inbox.create(system); diff --git a/akka-docs/rst/java/code/jdocs/actor/InitializationDocTest.java b/akka-docs/rst/java/code/jdocs/actor/InitializationDocTest.java index 708910dd8e..e9e8ae9c64 100644 --- a/akka-docs/rst/java/code/jdocs/actor/InitializationDocTest.java +++ b/akka-docs/rst/java/code/jdocs/actor/InitializationDocTest.java @@ -8,8 +8,8 @@ import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; import akka.japi.pf.FI; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -120,7 +120,7 @@ public class InitializationDocTest extends AbstractJavaTest { @Test public void testIt() { - new JavaTestKit(system) {{ + new TestKit(system) {{ ActorRef testactor = system.actorOf(Props.create(MessageInitExample.class), "testactor"); String msg = "U OK?"; @@ -135,7 +135,7 @@ public class InitializationDocTest extends AbstractJavaTest { @Test public void testGenericActor() { - new JavaTestKit(system) {{ + new TestKit(system) {{ ActorRef genericTestActor = system.actorOf(Props.create(GenericActor.class), "genericActor"); GenericMessage genericMessage = new GenericMessage("a"); @@ -146,7 +146,7 @@ public class InitializationDocTest extends AbstractJavaTest { @Test public void actorShouldNotRespondForEmptyMessage() { - new JavaTestKit(system) {{ + new TestKit(system) {{ ActorRef genericTestActor = system.actorOf(Props.create(GenericActorWithPredicate.class), "genericActorWithPredicate"); GenericMessage emptyGenericMessage = new GenericMessage(""); GenericMessage nonEmptyGenericMessage = new GenericMessage("a"); diff --git a/akka-docs/rst/java/code/jdocs/actor/SampleActorTest.java b/akka-docs/rst/java/code/jdocs/actor/SampleActorTest.java index 1206b31783..cd75cf93d3 100644 --- a/akka-docs/rst/java/code/jdocs/actor/SampleActorTest.java +++ b/akka-docs/rst/java/code/jdocs/actor/SampleActorTest.java @@ -7,8 +7,8 @@ package jdocs.actor; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -26,14 +26,14 @@ public class SampleActorTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; } @Test public void testSampleActor() { - new JavaTestKit(system) {{ + new TestKit(system) {{ final ActorRef subject = system.actorOf(Props.create(SampleActor.class), "sample-actor"); final ActorRef probeRef = getRef(); diff --git a/akka-docs/rst/java/code/jdocs/actor/fsm/BuncherTest.java b/akka-docs/rst/java/code/jdocs/actor/fsm/BuncherTest.java index 300578ea21..11748ac982 100644 --- a/akka-docs/rst/java/code/jdocs/actor/fsm/BuncherTest.java +++ b/akka-docs/rst/java/code/jdocs/actor/fsm/BuncherTest.java @@ -7,8 +7,8 @@ package jdocs.actor.fsm; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -31,13 +31,13 @@ public class BuncherTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; } @Test public void testBuncherActorBatchesCorrectly() { - new JavaTestKit(system) {{ + new TestKit(system) {{ final ActorRef buncher = system.actorOf(Props.create(Buncher.class)); final ActorRef probe = getRef(); @@ -64,7 +64,7 @@ public class BuncherTest extends AbstractJavaTest { @Test public void testBuncherActorDoesntBatchUninitialized() { - new JavaTestKit(system) {{ + new TestKit(system) {{ final ActorRef buncher = system.actorOf(Props.create(Buncher.class)); final ActorRef probe = getRef(); diff --git a/akka-docs/rst/java/code/jdocs/actor/fsm/FSMDocTest.java b/akka-docs/rst/java/code/jdocs/actor/fsm/FSMDocTest.java index 6a19884c09..b8808b8291 100644 --- a/akka-docs/rst/java/code/jdocs/actor/fsm/FSMDocTest.java +++ b/akka-docs/rst/java/code/jdocs/actor/fsm/FSMDocTest.java @@ -5,8 +5,8 @@ package jdocs.actor.fsm; import akka.actor.*; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -28,7 +28,7 @@ public class FSMDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; } @@ -160,7 +160,7 @@ public class FSMDocTest extends AbstractJavaTest { @Test public void testLoggingFSM() { - new JavaTestKit(system) {{ + new TestKit(system) {{ final ActorRef logger = system.actorOf(Props.create(MyFSM.class)); final ActorRef probe = getRef(); diff --git a/akka-docs/rst/java/code/jdocs/camel/ActivationTestBase.java b/akka-docs/rst/java/code/jdocs/camel/ActivationTestBase.java index 5e095e78b8..b76930c535 100644 --- a/akka-docs/rst/java/code/jdocs/camel/ActivationTestBase.java +++ b/akka-docs/rst/java/code/jdocs/camel/ActivationTestBase.java @@ -6,7 +6,7 @@ package jdocs.camel; import akka.camel.Camel; import akka.camel.CamelExtension; import akka.camel.javaapi.UntypedConsumerActor; - import akka.testkit.JavaTestKit; + import akka.testkit.javadsl.TestKit; import akka.util.Timeout; import jdocs.AbstractJavaTest; import scala.concurrent.Future; @@ -40,7 +40,7 @@ public class ActivationTestBase extends AbstractJavaTest { Future deactivationFuture = camel.deactivationFutureFor(producer, timeout, system.dispatcher()); //#CamelDeactivation - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } public static class MyConsumer extends UntypedConsumerActor { diff --git a/akka-docs/rst/java/code/jdocs/camel/CamelExtensionTest.java b/akka-docs/rst/java/code/jdocs/camel/CamelExtensionTest.java index 97d615cbe8..5ee22afd18 100644 --- a/akka-docs/rst/java/code/jdocs/camel/CamelExtensionTest.java +++ b/akka-docs/rst/java/code/jdocs/camel/CamelExtensionTest.java @@ -3,8 +3,8 @@ package jdocs.camel; import akka.actor.ActorSystem; import akka.camel.Camel; import akka.camel.CamelExtension; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.apache.camel.CamelContext; import org.apache.camel.ProducerTemplate; import org.junit.Test; @@ -18,7 +18,7 @@ public class CamelExtensionTest extends AbstractJavaTest { CamelContext camelContext = camel.context(); ProducerTemplate producerTemplate = camel.template(); //#CamelExtension - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } public void addActiveMQComponent() { //#CamelExtensionAddComponent @@ -28,7 +28,7 @@ public class CamelExtensionTest extends AbstractJavaTest { // camelContext.addComponent("activemq", ActiveMQComponent.activeMQComponent( // "vm://localhost?broker.persistent=false")); //#CamelExtensionAddComponent - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } } diff --git a/akka-docs/rst/java/code/jdocs/camel/CustomRouteTestBase.java b/akka-docs/rst/java/code/jdocs/camel/CustomRouteTestBase.java index b6d70ee7bc..950892e758 100644 --- a/akka-docs/rst/java/code/jdocs/camel/CustomRouteTestBase.java +++ b/akka-docs/rst/java/code/jdocs/camel/CustomRouteTestBase.java @@ -5,7 +5,7 @@ import akka.actor.ActorSystem; import akka.actor.Props; import akka.camel.Camel; import akka.camel.CamelExtension; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; public class CustomRouteTestBase { public void customRoute() throws Exception{ @@ -17,7 +17,7 @@ public class CustomRouteTestBase { camel.context().addRoutes(new CustomRouteBuilder(responder)); //#CustomRoute } finally { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } } } diff --git a/akka-docs/rst/java/code/jdocs/camel/OnRouteResponseTestBase.java b/akka-docs/rst/java/code/jdocs/camel/OnRouteResponseTestBase.java index a7287119cc..4b925772a0 100644 --- a/akka-docs/rst/java/code/jdocs/camel/OnRouteResponseTestBase.java +++ b/akka-docs/rst/java/code/jdocs/camel/OnRouteResponseTestBase.java @@ -1,7 +1,7 @@ package jdocs.camel; import akka.actor.*; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; public class OnRouteResponseTestBase { @@ -18,6 +18,6 @@ public class OnRouteResponseTestBase { //#RouteResponse system.stop(receiver); system.stop(forwardResponse); - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } } diff --git a/akka-docs/rst/java/code/jdocs/camel/ProducerTestBase.java b/akka-docs/rst/java/code/jdocs/camel/ProducerTestBase.java index 83b2e36c95..a4c89ec3d1 100644 --- a/akka-docs/rst/java/code/jdocs/camel/ProducerTestBase.java +++ b/akka-docs/rst/java/code/jdocs/camel/ProducerTestBase.java @@ -4,7 +4,7 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.CompletionStage; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; @@ -20,7 +20,7 @@ public class ProducerTestBase { producer.tell("", ActorRef.noSender()); //#TellProducer - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } @SuppressWarnings("unused") @@ -32,7 +32,7 @@ public class ProducerTestBase { CompletionStage future = PatternsCS.ask(producer, "some request", 1000); //#AskProducer system.stop(producer); - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } public void correlate(){ @@ -46,6 +46,6 @@ public class ProducerTestBase { "itemId=\"12345\"/>",headers), ActorRef.noSender()); //#Correlate system.stop(producer); - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } } diff --git a/akka-docs/rst/java/code/jdocs/cluster/ClusterDocTest.java b/akka-docs/rst/java/code/jdocs/cluster/ClusterDocTest.java index 582b1ee518..cef9806af0 100644 --- a/akka-docs/rst/java/code/jdocs/cluster/ClusterDocTest.java +++ b/akka-docs/rst/java/code/jdocs/cluster/ClusterDocTest.java @@ -3,6 +3,7 @@ */ package jdocs.cluster; +import akka.testkit.javadsl.TestKit; import com.typesafe.config.ConfigFactory; import jdocs.AbstractJavaTest; import org.junit.AfterClass; @@ -11,7 +12,6 @@ import org.junit.Test; import akka.actor.ActorSystem; import akka.cluster.Cluster; -import akka.testkit.JavaTestKit; public class ClusterDocTest extends AbstractJavaTest { @@ -26,7 +26,7 @@ public class ClusterDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; } diff --git a/akka-docs/rst/java/code/jdocs/ddata/DistributedDataDocTest.java b/akka-docs/rst/java/code/jdocs/ddata/DistributedDataDocTest.java index b5695377a0..9194f74180 100644 --- a/akka-docs/rst/java/code/jdocs/ddata/DistributedDataDocTest.java +++ b/akka-docs/rst/java/code/jdocs/ddata/DistributedDataDocTest.java @@ -10,6 +10,7 @@ import java.math.BigInteger; import java.util.Optional; import akka.actor.*; +import akka.testkit.javadsl.TestKit; import com.typesafe.config.ConfigFactory; import docs.ddata.DistributedDataDocSpec; import jdocs.AbstractJavaTest; @@ -28,8 +29,6 @@ import akka.japi.pf.ReceiveBuilder; import static akka.cluster.ddata.Replicator.*; -import akka.testkit.JavaTestKit; - @SuppressWarnings({"unchecked", "unused"}) public class DistributedDataDocTest extends AbstractJavaTest { @@ -44,7 +43,7 @@ public class DistributedDataDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; } diff --git a/akka-docs/rst/java/code/jdocs/dispatcher/DispatcherDocTest.java b/akka-docs/rst/java/code/jdocs/dispatcher/DispatcherDocTest.java index 724cc95726..6c6896c46d 100644 --- a/akka-docs/rst/java/code/jdocs/dispatcher/DispatcherDocTest.java +++ b/akka-docs/rst/java/code/jdocs/dispatcher/DispatcherDocTest.java @@ -6,6 +6,7 @@ package jdocs.dispatcher; import akka.dispatch.ControlMessage; import akka.dispatch.RequiresMessageQueue; import akka.testkit.AkkaSpec; +import akka.testkit.javadsl.TestKit; import com.typesafe.config.ConfigFactory; import docs.dispatcher.DispatcherDocSpec; import jdocs.AbstractJavaTest; @@ -28,7 +29,6 @@ import akka.event.LoggingAdapter; import akka.dispatch.PriorityGenerator; import akka.dispatch.UnboundedStablePriorityMailbox; import akka.testkit.AkkaJUnitActorSystemResource; -import akka.testkit.JavaTestKit; import com.typesafe.config.Config; //#imports-prio-mailbox @@ -123,7 +123,7 @@ public class DispatcherDocTest extends AbstractJavaTest { @Test public void priorityDispatcher() throws Exception { - JavaTestKit probe = new JavaTestKit(system); + TestKit probe = new TestKit(system); //#prio-dispatcher class Demo extends AbstractActor { @@ -166,7 +166,7 @@ public class DispatcherDocTest extends AbstractJavaTest { @Test public void controlAwareDispatcher() throws Exception { - JavaTestKit probe = new JavaTestKit(system); + TestKit probe = new TestKit(system); //#control-aware-dispatcher class Demo extends AbstractActor { diff --git a/akka-docs/rst/java/code/jdocs/event/EventBusDocTest.java b/akka-docs/rst/java/code/jdocs/event/EventBusDocTest.java index 6809577d4d..92709bd22c 100644 --- a/akka-docs/rst/java/code/jdocs/event/EventBusDocTest.java +++ b/akka-docs/rst/java/code/jdocs/event/EventBusDocTest.java @@ -8,13 +8,13 @@ import akka.event.japi.EventBus; import java.util.concurrent.TimeUnit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; import akka.actor.ActorSystem; import akka.actor.ActorRef; import akka.testkit.AkkaJUnitActorSystemResource; -import akka.testkit.JavaTestKit; import akka.util.Subclassification; import scala.concurrent.duration.FiniteDuration; @@ -256,7 +256,7 @@ public class EventBusDocTest extends AbstractJavaTest { @Test public void demonstrateLookupClassification() { - new JavaTestKit(system) {{ + new TestKit(system) {{ //#lookup-bus-test LookupBusImpl lookupBus = new LookupBusImpl(); lookupBus.subscribe(getTestActor(), "greetings"); @@ -269,7 +269,7 @@ public class EventBusDocTest extends AbstractJavaTest { @Test public void demonstrateSubchannelClassification() { - new JavaTestKit(system) {{ + new TestKit(system) {{ //#subchannel-bus-test SubchannelBusImpl subchannelBus = new SubchannelBusImpl(); subchannelBus.subscribe(getTestActor(), "abc"); @@ -285,7 +285,7 @@ public class EventBusDocTest extends AbstractJavaTest { @Test public void demonstrateScanningClassification() { - new JavaTestKit(system) {{ + new TestKit(system) {{ //#scanning-bus-test ScanningBusImpl scanningBus = new ScanningBusImpl(); scanningBus.subscribe(getTestActor(), 3); @@ -301,10 +301,10 @@ public class EventBusDocTest extends AbstractJavaTest { @Test public void demonstrateManagedActorClassification() { //#actor-bus-test - ActorRef observer1 = new JavaTestKit(system).getRef(); - ActorRef observer2 = new JavaTestKit(system).getRef(); - JavaTestKit probe1 = new JavaTestKit(system); - JavaTestKit probe2 = new JavaTestKit(system); + ActorRef observer1 = new TestKit(system).getRef(); + ActorRef observer2 = new TestKit(system).getRef(); + TestKit probe1 = new TestKit(system); + TestKit probe2 = new TestKit(system); ActorRef subscriber1 = probe1.getRef(); ActorRef subscriber2 = probe2.getRef(); ActorBusImpl actorBus = new ActorBusImpl(system); diff --git a/akka-docs/rst/java/code/jdocs/event/LoggingDocTest.java b/akka-docs/rst/java/code/jdocs/event/LoggingDocTest.java index 4c8f94c3df..11e47a2b1a 100644 --- a/akka-docs/rst/java/code/jdocs/event/LoggingDocTest.java +++ b/akka-docs/rst/java/code/jdocs/event/LoggingDocTest.java @@ -20,8 +20,8 @@ import akka.event.Logging.Debug; //#imports-listener import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.Test; -import akka.testkit.JavaTestKit; import java.util.Optional; //#imports-mdc @@ -42,7 +42,7 @@ public class LoggingDocTest extends AbstractJavaTest { ActorSystem system = ActorSystem.create("MySystem"); ActorRef myActor = system.actorOf(Props.create(MyActor.class, this)); myActor.tell("test", ActorRef.noSender()); - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } @Test @@ -50,7 +50,7 @@ public class LoggingDocTest extends AbstractJavaTest { ActorSystem system = ActorSystem.create("MyDiagnosticSystem"); ActorRef mdcActor = system.actorOf(Props.create(MdcActor.class, this)); mdcActor.tell("some request", ActorRef.noSender()); - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } @Test @@ -60,7 +60,7 @@ public class LoggingDocTest extends AbstractJavaTest { final ActorRef actor = system.actorOf(Props.create(DeadLetterActor.class)); system.eventStream().subscribe(actor, DeadLetter.class); //#deadletters - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } //#superclass-subscription-eventstream @@ -113,7 +113,7 @@ public class LoggingDocTest extends AbstractJavaTest { system.eventStream().publish(new Jazz("Sonny Rollins")); //#superclass-subscription-eventstream - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } @Test @@ -125,7 +125,7 @@ public class LoggingDocTest extends AbstractJavaTest { system.eventStream().subscribe(actor, SuppressedDeadLetter.class); //#suppressed-deadletters - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } @Test public void subscribeToAllDeadLetters() { @@ -136,7 +136,7 @@ public class LoggingDocTest extends AbstractJavaTest { system.eventStream().subscribe(actor, AllDeadLetters.class); //#all-deadletters - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } @Test @@ -146,7 +146,7 @@ public class LoggingDocTest extends AbstractJavaTest { final Object[] args = new Object[] { "The", "brown", "fox", "jumps", 42 }; system.log().debug("five parameters: {}, {}, {}, {}, {}", args); //#array - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } //#my-actor diff --git a/akka-docs/rst/java/code/jdocs/io/JavaUdpMulticastTest.java b/akka-docs/rst/java/code/jdocs/io/JavaUdpMulticastTest.java index 3ca4d3a54a..d478ea9198 100644 --- a/akka-docs/rst/java/code/jdocs/io/JavaUdpMulticastTest.java +++ b/akka-docs/rst/java/code/jdocs/io/JavaUdpMulticastTest.java @@ -8,10 +8,10 @@ import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; import akka.io.Udp; -import akka.testkit.JavaTestKit; import akka.testkit.SocketUtil; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -33,7 +33,7 @@ public class JavaUdpMulticastTest extends AbstractJavaTest { @Test public void testUdpMulticast() throws Exception { - new JavaTestKit(system) {{ + new TestKit(system) {{ List ipv6Ifaces = new ArrayList<>(); for (Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); interfaces.hasMoreElements(); ) { NetworkInterface interf = interfaces.nextElement(); @@ -94,7 +94,7 @@ public class JavaUdpMulticastTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; } } diff --git a/akka-docs/rst/java/code/jdocs/io/japi/IODocTest.java b/akka-docs/rst/java/code/jdocs/io/japi/IODocTest.java index bebfff8d79..dd92e03338 100644 --- a/akka-docs/rst/java/code/jdocs/io/japi/IODocTest.java +++ b/akka-docs/rst/java/code/jdocs/io/japi/IODocTest.java @@ -7,6 +7,7 @@ package jdocs.io.japi; import akka.testkit.AkkaJUnitActorSystemResource; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; @@ -26,7 +27,6 @@ import akka.io.TcpMessage; import akka.util.ByteString; //#imports -import akka.testkit.JavaTestKit; import akka.testkit.AkkaSpec; public class IODocTest extends AbstractJavaTest { @@ -160,7 +160,7 @@ public class IODocTest extends AbstractJavaTest { @Test public void testConnection() { - new JavaTestKit(system) { + new TestKit(system) { { @SuppressWarnings("unused") final ActorRef server = system.actorOf(Server.props(getRef()), "server1"); diff --git a/akka-docs/rst/java/code/jdocs/pattern/SchedulerPatternTest.java b/akka-docs/rst/java/code/jdocs/pattern/SchedulerPatternTest.java index 8aafa98687..237abd2799 100644 --- a/akka-docs/rst/java/code/jdocs/pattern/SchedulerPatternTest.java +++ b/akka-docs/rst/java/code/jdocs/pattern/SchedulerPatternTest.java @@ -9,6 +9,7 @@ import akka.testkit.*; import akka.testkit.TestEvent.Mute; import akka.testkit.TestEvent.UnMute; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.*; import scala.concurrent.duration.Duration; import scala.concurrent.duration.FiniteDuration; @@ -109,7 +110,7 @@ public class SchedulerPatternTest extends AbstractJavaTest { @Ignore // no way to tag this as timing sensitive public void scheduleInConstructor() { new TestSchedule(system) {{ - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Props props = Props.create(ScheduleInConstructor.class, probe.getRef()); testSchedule(probe, props, duration("3000 millis"), duration("2000 millis")); }}; @@ -119,7 +120,7 @@ public class SchedulerPatternTest extends AbstractJavaTest { @Ignore // no way to tag this as timing sensitive public void scheduleInReceive() { new TestSchedule(system) {{ - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Props props = Props.create(ScheduleInReceive.class, probe.getRef()); testSchedule(probe, props, duration("3000 millis"), duration("2500 millis")); }}; @@ -130,7 +131,7 @@ public class SchedulerPatternTest extends AbstractJavaTest { // actorSystemResource.after is not called when all tests are ignored } - public static class TestSchedule extends JavaTestKit { + public static class TestSchedule extends TestKit { private ActorSystem system; public TestSchedule(ActorSystem system) { @@ -138,7 +139,7 @@ public class SchedulerPatternTest extends AbstractJavaTest { this.system = system; } - public void testSchedule(final JavaTestKit probe, Props props, + public void testSchedule(final TestKit probe, Props props, FiniteDuration startDuration, FiniteDuration afterRestartDuration) { Iterable filter = @@ -148,20 +149,20 @@ public class SchedulerPatternTest extends AbstractJavaTest { system.eventStream().publish(new Mute(filter)); final ActorRef actor = system.actorOf(props); - new Within(startDuration) { - protected void run() { - probe.expectMsgEquals("tick"); - probe.expectMsgEquals("tick"); - probe.expectMsgEquals("tick"); - } - }; + within(startDuration, () -> { + probe.expectMsgEquals("tick"); + probe.expectMsgEquals("tick"); + probe.expectMsgEquals("tick"); + return null; + }); + actor.tell("restart", getRef()); - new Within(afterRestartDuration) { - protected void run() { - probe.expectMsgEquals("tick"); - probe.expectMsgEquals("tick"); - } - }; + within(afterRestartDuration, () -> { + probe.expectMsgEquals("tick"); + probe.expectMsgEquals("tick"); + return null; + }); + system.stop(actor); } finally { diff --git a/akka-docs/rst/java/code/jdocs/routing/ConsistentHashingRouterDocTest.java b/akka-docs/rst/java/code/jdocs/routing/ConsistentHashingRouterDocTest.java index 3360f91110..1a1e3d9073 100644 --- a/akka-docs/rst/java/code/jdocs/routing/ConsistentHashingRouterDocTest.java +++ b/akka-docs/rst/java/code/jdocs/routing/ConsistentHashingRouterDocTest.java @@ -6,10 +6,10 @@ package jdocs.routing; import akka.testkit.AkkaJUnitActorSystemResource; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; -import akka.testkit.JavaTestKit; import akka.actor.ActorSystem; //#imports1 @@ -108,7 +108,7 @@ public class ConsistentHashingRouterDocTest extends AbstractJavaTest { @Test public void demonstrateUsageOfConsistentHashableRouter() { - new JavaTestKit(system) {{ + new TestKit(system) {{ //#consistent-hashing-router diff --git a/akka-docs/rst/java/code/jdocs/routing/CustomRouterDocTest.java b/akka-docs/rst/java/code/jdocs/routing/CustomRouterDocTest.java index 7d8bd26c53..02269de19b 100644 --- a/akka-docs/rst/java/code/jdocs/routing/CustomRouterDocTest.java +++ b/akka-docs/rst/java/code/jdocs/routing/CustomRouterDocTest.java @@ -11,6 +11,7 @@ import akka.routing.SeveralRoutees; import akka.testkit.AkkaJUnitActorSystemResource; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; @@ -22,7 +23,6 @@ import scala.collection.immutable.IndexedSeq; import static akka.japi.Util.immutableIndexedSeq; import docs.routing.CustomRouterDocSpec; -import akka.testkit.JavaTestKit; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; @@ -134,7 +134,7 @@ public class CustomRouterDocTest extends AbstractJavaTest { @Test public void demonstrateUsageOfCustomRouter() { - new JavaTestKit(system) {{ + new TestKit(system) {{ //#usage-1 for (int n = 1; n <= 10; n++) { system.actorOf(Props.create(Storage.class), "s" + n); diff --git a/akka-docs/rst/java/code/jdocs/routing/RouterDocTest.java b/akka-docs/rst/java/code/jdocs/routing/RouterDocTest.java index d5bdd09f26..307b083358 100644 --- a/akka-docs/rst/java/code/jdocs/routing/RouterDocTest.java +++ b/akka-docs/rst/java/code/jdocs/routing/RouterDocTest.java @@ -6,6 +6,7 @@ package jdocs.routing; import akka.testkit.AkkaJUnitActorSystemResource; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; @@ -22,7 +23,6 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; -import akka.testkit.JavaTestKit; import akka.actor.ActorSystem; @@ -394,19 +394,19 @@ public class RouterDocTest extends AbstractJavaTest { @Test public void demonstrateBroadcast() { - new JavaTestKit(system) {{ + new TestKit(system) {{ ActorRef router = system.actorOf(new RoundRobinPool(5).props( Props.create(Echo.class))); //#broadcastDavyJonesWarning router.tell(new Broadcast("Watch out for Davy Jones' locker"), getTestActor()); //#broadcastDavyJonesWarning - assertEquals(5, receiveN(5).length); + assertEquals(5, receiveN(5).size()); }}; } @Test public void demonstratePoisonPill() { - new JavaTestKit(system) {{ + new TestKit(system) {{ ActorRef router = watch(system.actorOf(new RoundRobinPool(5).props( Props.create(Echo.class)))); //#poisonPill @@ -418,7 +418,7 @@ public class RouterDocTest extends AbstractJavaTest { @Test public void demonstrateBroadcastPoisonPill() { - new JavaTestKit(system) {{ + new TestKit(system) {{ ActorRef router = watch(system.actorOf(new RoundRobinPool(5).props( Props.create(Echo.class)))); //#broadcastPoisonPill @@ -430,7 +430,7 @@ public class RouterDocTest extends AbstractJavaTest { @Test public void demonstrateKill() { - new JavaTestKit(system) {{ + new TestKit(system) {{ ActorRef router = watch(system.actorOf(new RoundRobinPool(5).props( Props.create(Echo.class)))); //#kill @@ -442,7 +442,7 @@ public class RouterDocTest extends AbstractJavaTest { @Test public void demonstrateBroadcastKill() { - new JavaTestKit(system) {{ + new TestKit(system) {{ ActorRef router = watch(system.actorOf(new RoundRobinPool(5).props( Props.create(Echo.class)))); //#broadcastKill diff --git a/akka-docs/rst/java/code/jdocs/serialization/SerializationDocTest.java b/akka-docs/rst/java/code/jdocs/serialization/SerializationDocTest.java index bad2340c97..8c71473c03 100644 --- a/akka-docs/rst/java/code/jdocs/serialization/SerializationDocTest.java +++ b/akka-docs/rst/java/code/jdocs/serialization/SerializationDocTest.java @@ -5,8 +5,7 @@ package jdocs.serialization; import java.io.UnsupportedEncodingException; -import akka.testkit.JavaTestKit; - +import akka.testkit.javadsl.TestKit; import org.junit.Test; import static org.junit.Assert.*; import java.nio.charset.StandardCharsets; @@ -146,7 +145,7 @@ public class SerializationDocTest { identifier); // Then just use the ActorRef //#actorref-serializer - JavaTestKit.shutdownActorSystem(extendedSystem); + TestKit.shutdownActorSystem(extendedSystem); } static @@ -267,6 +266,6 @@ public class SerializationDocTest { assertEquals(original, back); //#programmatic - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); } } diff --git a/akka-docs/rst/java/code/jdocs/stream/ActorPublisherDocTest.java b/akka-docs/rst/java/code/jdocs/stream/ActorPublisherDocTest.java index 7888d7f0fc..b11832365c 100644 --- a/akka-docs/rst/java/code/jdocs/stream/ActorPublisherDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/ActorPublisherDocTest.java @@ -12,8 +12,8 @@ import akka.stream.actor.AbstractActorPublisher; import akka.stream.actor.ActorPublisherMessage; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -34,7 +34,7 @@ public class ActorPublisherDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -120,7 +120,7 @@ public class ActorPublisherDocTest extends AbstractJavaTest { @Test public void demonstrateActorPublisherUsage() { - new JavaTestKit(system) { + new TestKit(system) { private final SilenceSystemOut.System System = SilenceSystemOut.get(getTestActor()); { diff --git a/akka-docs/rst/java/code/jdocs/stream/ActorSubscriberDocTest.java b/akka-docs/rst/java/code/jdocs/stream/ActorSubscriberDocTest.java index 76993eeee0..457596e95f 100644 --- a/akka-docs/rst/java/code/jdocs/stream/ActorSubscriberDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/ActorSubscriberDocTest.java @@ -20,8 +20,8 @@ import akka.stream.actor.MaxInFlightRequestStrategy; import akka.stream.actor.RequestStrategy; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -45,7 +45,7 @@ public class ActorSubscriberDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -209,7 +209,7 @@ public class ActorSubscriberDocTest extends AbstractJavaTest { @Test public void demonstrateActorPublisherUsage() { - new JavaTestKit(system) { + new TestKit(system) { { final ActorRef replyTo = getTestActor(); @@ -228,7 +228,7 @@ public class ActorSubscriberDocTest extends AbstractJavaTest { watch(worker); - List got = Arrays.asList(receiveN(N)); + List got = new ArrayList<>(receiveN(N)); Collections.sort(got, new Comparator() { @Override public int compare(Object o1, Object o2) { diff --git a/akka-docs/rst/java/code/jdocs/stream/BidiFlowDocTest.java b/akka-docs/rst/java/code/jdocs/stream/BidiFlowDocTest.java index a36433bb0d..b77534f9d0 100644 --- a/akka-docs/rst/java/code/jdocs/stream/BidiFlowDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/BidiFlowDocTest.java @@ -12,6 +12,7 @@ import java.util.concurrent.TimeUnit; import akka.NotUsed; import akka.stream.javadsl.GraphDSL; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -21,7 +22,6 @@ import akka.japi.pf.PFBuilder; import akka.stream.*; import akka.stream.javadsl.*; import akka.stream.stage.*; -import akka.testkit.JavaTestKit; import akka.util.ByteIterator; import akka.util.ByteString; import akka.util.ByteStringBuilder; @@ -40,7 +40,7 @@ public class BidiFlowDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/CompositionDocTest.java b/akka-docs/rst/java/code/jdocs/stream/CompositionDocTest.java index dd995c8fa7..d2f2a0ba29 100644 --- a/akka-docs/rst/java/code/jdocs/stream/CompositionDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/CompositionDocTest.java @@ -11,6 +11,7 @@ import java.util.concurrent.CompletionStage; import akka.NotUsed; import akka.stream.ClosedShape; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -20,7 +21,6 @@ import akka.japi.Pair; import akka.stream.*; import akka.stream.javadsl.*; import akka.stream.javadsl.Tcp.OutgoingConnection; -import akka.testkit.JavaTestKit; import akka.util.ByteString; public class CompositionDocTest extends AbstractJavaTest { @@ -36,7 +36,7 @@ public class CompositionDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/FlowDocTest.java b/akka-docs/rst/java/code/jdocs/stream/FlowDocTest.java index 48eb646ebc..c28b1c34f2 100644 --- a/akka-docs/rst/java/code/jdocs/stream/FlowDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/FlowDocTest.java @@ -13,6 +13,7 @@ import java.util.concurrent.TimeUnit; import akka.NotUsed; import akka.japi.Pair; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -24,7 +25,6 @@ import akka.actor.Cancellable; import akka.dispatch.Futures; import akka.stream.*; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; public class FlowDocTest extends AbstractJavaTest { @@ -39,7 +39,7 @@ public class FlowDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/FlowErrorDocTest.java b/akka-docs/rst/java/code/jdocs/stream/FlowErrorDocTest.java index ef733ebfed..01f3acae09 100644 --- a/akka-docs/rst/java/code/jdocs/stream/FlowErrorDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/FlowErrorDocTest.java @@ -12,6 +12,7 @@ import java.util.concurrent.TimeUnit; import akka.NotUsed; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -26,7 +27,6 @@ import akka.stream.ActorAttributes; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; import akka.japi.function.Function; -import akka.testkit.JavaTestKit; public class FlowErrorDocTest extends AbstractJavaTest { @@ -39,7 +39,7 @@ public class FlowErrorDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/FlowParallelismDocTest.java b/akka-docs/rst/java/code/jdocs/stream/FlowParallelismDocTest.java index 00d4af8ded..5fc05fbdde 100644 --- a/akka-docs/rst/java/code/jdocs/stream/FlowParallelismDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/FlowParallelismDocTest.java @@ -8,13 +8,13 @@ import static org.junit.Assert.assertEquals; import akka.NotUsed; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import akka.actor.ActorSystem; import akka.stream.*; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; public class FlowParallelismDocTest extends AbstractJavaTest { @@ -29,7 +29,7 @@ public class FlowParallelismDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/GraphCyclesDocTest.java b/akka-docs/rst/java/code/jdocs/stream/GraphCyclesDocTest.java index cbed775c43..bb4b5ab1ec 100644 --- a/akka-docs/rst/java/code/jdocs/stream/GraphCyclesDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/GraphCyclesDocTest.java @@ -4,6 +4,7 @@ import java.util.Arrays; import akka.NotUsed; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -12,7 +13,6 @@ import akka.actor.ActorSystem; import akka.stream.*; import akka.stream.javadsl.*; import akka.stream.scaladsl.MergePreferred.MergePreferredShape; -import akka.testkit.JavaTestKit; public class GraphCyclesDocTest extends AbstractJavaTest { @@ -28,7 +28,7 @@ public class GraphCyclesDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/GraphDSLDocTest.java b/akka-docs/rst/java/code/jdocs/stream/GraphDSLDocTest.java index 16058c1382..5c038144fb 100644 --- a/akka-docs/rst/java/code/jdocs/stream/GraphDSLDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/GraphDSLDocTest.java @@ -14,6 +14,7 @@ import akka.NotUsed; import akka.stream.ClosedShape; import akka.stream.SourceShape; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -22,7 +23,6 @@ import akka.actor.ActorSystem; import akka.japi.Pair; import akka.stream.*; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; public class GraphDSLDocTest extends AbstractJavaTest { @@ -37,7 +37,7 @@ public class GraphDSLDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/GraphStageDocTest.java b/akka-docs/rst/java/code/jdocs/stream/GraphStageDocTest.java index ee1852463f..245cc4eed7 100644 --- a/akka-docs/rst/java/code/jdocs/stream/GraphStageDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/GraphStageDocTest.java @@ -14,9 +14,9 @@ import akka.stream.stage.*; //#imports import akka.stream.testkit.TestPublisher; import akka.stream.testkit.TestSubscriber; -import akka.testkit.JavaTestKit; import akka.japi.Function; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -46,7 +46,7 @@ public class GraphStageDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/HubDocTest.java b/akka-docs/rst/java/code/jdocs/stream/HubDocTest.java index 01426ae912..9e6ea667b6 100644 --- a/akka-docs/rst/java/code/jdocs/stream/HubDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/HubDocTest.java @@ -13,8 +13,8 @@ import akka.stream.KillSwitches; import akka.stream.Materializer; import akka.stream.UniqueKillSwitch; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -36,7 +36,7 @@ public class HubDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; materializer = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/IntegrationDocTest.java b/akka-docs/rst/java/code/jdocs/stream/IntegrationDocTest.java index 44b7f65048..219fc83f65 100644 --- a/akka-docs/rst/java/code/jdocs/stream/IntegrationDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/IntegrationDocTest.java @@ -8,8 +8,8 @@ import akka.NotUsed; import akka.actor.*; import akka.stream.*; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; import akka.testkit.TestProbe; +import akka.testkit.javadsl.TestKit; import akka.util.Timeout; import com.typesafe.config.Config; @@ -23,6 +23,7 @@ import org.junit.Test; import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.Optional; import java.util.Set; import java.util.concurrent.CompletableFuture; @@ -62,7 +63,7 @@ public class IntegrationDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; ref = null; @@ -328,7 +329,7 @@ public class IntegrationDocTest extends AbstractJavaTest { @Test public void callingExternalServiceWithMapAsync() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); final AddressSystem addressSystem = new AddressSystem(); final EmailServer emailServer = new EmailServer(probe.ref()); @@ -372,7 +373,7 @@ public class IntegrationDocTest extends AbstractJavaTest { @Test @SuppressWarnings("unused") public void callingExternalServiceWithMapAsyncAndSupervision() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final AddressSystem2 addressSystem = new AddressSystem2(); { @@ -396,7 +397,7 @@ public class IntegrationDocTest extends AbstractJavaTest { @Test public void callingExternalServiceWithMapAsyncUnordered() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); final AddressSystem addressSystem = new AddressSystem(); final EmailServer emailServer = new EmailServer(probe.ref()); @@ -428,7 +429,7 @@ public class IntegrationDocTest extends AbstractJavaTest { @Test public void carefulManagedBlockingWithMapAsync() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final AddressSystem addressSystem = new AddressSystem(); final EmailServer emailServer = new EmailServer(getRef()); final SmsServer smsServer = new SmsServer(getRef()); @@ -455,8 +456,8 @@ public class IntegrationDocTest extends AbstractJavaTest { sendTextMessages.run(mat); //#blocking-mapAsync - final Object[] got = receiveN(7); - final Set set = new HashSet<>(Arrays.asList(got)); + final List got = receiveN(7); + final Set set = new HashSet<>(got); assertTrue(set.contains(String.valueOf("rolandkuhn".hashCode()))); assertTrue(set.contains(String.valueOf("patriknw".hashCode()))); @@ -471,7 +472,7 @@ public class IntegrationDocTest extends AbstractJavaTest { @Test public void carefulManagedBlockingWithMap() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); final AddressSystem addressSystem = new AddressSystem(); final EmailServer emailServer = new EmailServer(probe.ref()); @@ -511,7 +512,7 @@ public class IntegrationDocTest extends AbstractJavaTest { @Test public void callingActorServiceWithMapAsync() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); final EmailServer emailServer = new EmailServer(probe.ref()); @@ -542,7 +543,7 @@ public class IntegrationDocTest extends AbstractJavaTest { @Test public void illustrateOrderingAndParallelismOfMapAsync() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); final EmailServer emailServer = new EmailServer(probe.ref()); @@ -588,7 +589,7 @@ public class IntegrationDocTest extends AbstractJavaTest { @Test public void illustrateOrderingAndParallelismOfMapAsyncUnordered() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final EmailServer emailServer = new EmailServer(getRef()); class MockSystem { @@ -617,8 +618,8 @@ public class IntegrationDocTest extends AbstractJavaTest { .runForeach(elem -> System.out.println("after: " + elem), mat); //#sometimes-slow-mapAsyncUnordered - final Object[] got = receiveN(10); - final Set set = new HashSet<>(Arrays.asList(got)); + final List got = receiveN(10); + final Set set = new HashSet<>(got); assertTrue(set.contains("after: A")); assertTrue(set.contains("after: B")); diff --git a/akka-docs/rst/java/code/jdocs/stream/KillSwitchDocTest.java b/akka-docs/rst/java/code/jdocs/stream/KillSwitchDocTest.java index cf4c51196c..683f73806d 100644 --- a/akka-docs/rst/java/code/jdocs/stream/KillSwitchDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/KillSwitchDocTest.java @@ -7,8 +7,8 @@ import akka.stream.*; import akka.stream.javadsl.Keep; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -35,7 +35,7 @@ class KillSwitchDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/RateTransformationDocTest.java b/akka-docs/rst/java/code/jdocs/stream/RateTransformationDocTest.java index cea485584a..f6ec1a5feb 100644 --- a/akka-docs/rst/java/code/jdocs/stream/RateTransformationDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/RateTransformationDocTest.java @@ -15,6 +15,7 @@ import java.util.stream.Stream; import akka.NotUsed; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -29,7 +30,6 @@ import akka.stream.testkit.TestPublisher; import akka.stream.testkit.TestSubscriber; import akka.stream.testkit.javadsl.TestSink; import akka.stream.testkit.javadsl.TestSource; -import akka.testkit.JavaTestKit; import akka.testkit.TestLatch; import scala.concurrent.Await; import scala.concurrent.duration.Duration; @@ -48,7 +48,7 @@ public class RateTransformationDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/ReactiveStreamsDocTest.java b/akka-docs/rst/java/code/jdocs/stream/ReactiveStreamsDocTest.java index 5d3ac467f3..8c999e4901 100644 --- a/akka-docs/rst/java/code/jdocs/stream/ReactiveStreamsDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/ReactiveStreamsDocTest.java @@ -10,11 +10,11 @@ import akka.actor.ActorSystem; import akka.japi.function.Creator; import akka.stream.*; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; import akka.testkit.TestProbe; import jdocs.AbstractJavaTest; import jdocs.stream.TwitterStreamQuickstartDocTest.Model.Author; import jdocs.stream.TwitterStreamQuickstartDocTest.Model.Tweet; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -49,7 +49,7 @@ public class ReactiveStreamsDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; storageProbe = null; @@ -139,7 +139,7 @@ public class ReactiveStreamsDocTest extends AbstractJavaTest { @Test public void reactiveStreamsPublisherViaFlowToSubscriber() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); { @@ -154,7 +154,7 @@ public class ReactiveStreamsDocTest extends AbstractJavaTest { @Test public void flowAsPublisherAndSubscriber() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); { @@ -174,7 +174,7 @@ public class ReactiveStreamsDocTest extends AbstractJavaTest { @Test public void sourceAsPublisher() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); { @@ -194,7 +194,7 @@ public class ReactiveStreamsDocTest extends AbstractJavaTest { @Test public void sourceAsFanoutPublisher() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); { @@ -215,7 +215,7 @@ public class ReactiveStreamsDocTest extends AbstractJavaTest { @Test public void sinkAsSubscriber() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final TestProbe probe = new TestProbe(system); { @@ -237,7 +237,7 @@ public class ReactiveStreamsDocTest extends AbstractJavaTest { @Test public void useProcessor() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { //#use-processor // An example Processor factory diff --git a/akka-docs/rst/java/code/jdocs/stream/StreamBuffersRateDocTest.java b/akka-docs/rst/java/code/jdocs/stream/StreamBuffersRateDocTest.java index 5be5648860..a5ddfd2bf9 100644 --- a/akka-docs/rst/java/code/jdocs/stream/StreamBuffersRateDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/StreamBuffersRateDocTest.java @@ -8,6 +8,7 @@ import java.util.concurrent.TimeUnit; import akka.NotUsed; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -17,7 +18,6 @@ import akka.actor.ActorSystem; import akka.actor.Cancellable; import akka.stream.*; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; public class StreamBuffersRateDocTest extends AbstractJavaTest { @@ -34,7 +34,7 @@ public class StreamBuffersRateDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/StreamPartialGraphDSLDocTest.java b/akka-docs/rst/java/code/jdocs/stream/StreamPartialGraphDSLDocTest.java index d49600a6f7..b60a10783b 100644 --- a/akka-docs/rst/java/code/jdocs/stream/StreamPartialGraphDSLDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/StreamPartialGraphDSLDocTest.java @@ -10,8 +10,8 @@ import akka.actor.ActorSystem; import akka.japi.Pair; import akka.stream.*; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -37,7 +37,7 @@ public class StreamPartialGraphDSLDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -161,7 +161,7 @@ public class StreamPartialGraphDSLDocTest extends AbstractJavaTest { @Test public void demonstrateBuildSinkWithCombine() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); ActorRef actorRef = probe.getRef(); //#sink-combine diff --git a/akka-docs/rst/java/code/jdocs/stream/StreamTestKitDocTest.java b/akka-docs/rst/java/code/jdocs/stream/StreamTestKitDocTest.java index 06e81d4939..7b079868af 100644 --- a/akka-docs/rst/java/code/jdocs/stream/StreamTestKitDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/StreamTestKitDocTest.java @@ -13,6 +13,7 @@ import java.util.concurrent.TimeUnit; import akka.NotUsed; import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.*; import static org.junit.Assert.assertEquals; @@ -41,7 +42,7 @@ public class StreamTestKitDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/TwitterStreamQuickstartDocTest.java b/akka-docs/rst/java/code/jdocs/stream/TwitterStreamQuickstartDocTest.java index 4bb651624f..1d9a71d577 100644 --- a/akka-docs/rst/java/code/jdocs/stream/TwitterStreamQuickstartDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/TwitterStreamQuickstartDocTest.java @@ -7,7 +7,6 @@ import akka.Done; import akka.NotUsed; import akka.actor.ActorSystem; import akka.japi.JavaPartialFunction; -import akka.testkit.JavaTestKit; //#imports import akka.stream.*; import akka.stream.javadsl.*; @@ -16,6 +15,7 @@ import jdocs.AbstractJavaTest; import jdocs.stream.TwitterStreamQuickstartDocTest.Model.Author; import jdocs.stream.TwitterStreamQuickstartDocTest.Model.Hashtag; import jdocs.stream.TwitterStreamQuickstartDocTest.Model.Tweet; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -50,7 +50,7 @@ public class TwitterStreamQuickstartDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/io/StreamFileDocTest.java b/akka-docs/rst/java/code/jdocs/stream/io/StreamFileDocTest.java index 378894c9c7..bb359c60d4 100644 --- a/akka-docs/rst/java/code/jdocs/stream/io/StreamFileDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/io/StreamFileDocTest.java @@ -16,12 +16,12 @@ import akka.stream.javadsl.Sink; import akka.stream.javadsl.FileIO; import jdocs.AbstractJavaTest; import jdocs.stream.SilenceSystemOut; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import akka.stream.*; -import akka.testkit.JavaTestKit; import akka.util.ByteString; public class StreamFileDocTest extends AbstractJavaTest { @@ -38,7 +38,7 @@ public class StreamFileDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/io/StreamTcpDocTest.java b/akka-docs/rst/java/code/jdocs/stream/io/StreamTcpDocTest.java index 8359d56595..d3bc9c46bf 100644 --- a/akka-docs/rst/java/code/jdocs/stream/io/StreamTcpDocTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/io/StreamTcpDocTest.java @@ -10,6 +10,7 @@ import akka.NotUsed; import akka.stream.javadsl.Framing; import jdocs.AbstractJavaTest; import jdocs.stream.SilenceSystemOut; +import akka.testkit.javadsl.TestKit; import java.net.InetSocketAddress; import org.junit.AfterClass; @@ -20,7 +21,7 @@ import akka.actor.ActorSystem; import akka.stream.*; import akka.stream.javadsl.*; import akka.stream.javadsl.Tcp.*; -import akka.testkit.JavaTestKit; +import akka.stream.stage.*; import akka.testkit.SocketUtil; import akka.testkit.TestProbe; import akka.util.ByteString; @@ -38,7 +39,7 @@ public class StreamTcpDocTest extends AbstractJavaTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeByteStrings.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeByteStrings.java index 26897d4d75..9ac9c25386 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeByteStrings.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeByteStrings.java @@ -10,7 +10,7 @@ import akka.stream.javadsl.Flow; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; import akka.stream.stage.*; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import akka.util.ByteString; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -38,7 +38,7 @@ public class RecipeByteStrings extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -52,7 +52,7 @@ public class RecipeByteStrings extends RecipeTest { @Test public void chunker() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final int CHUNK_LIMIT = 2; //#bytestring-chunker @@ -156,7 +156,7 @@ public class RecipeByteStrings extends RecipeTest { @Test public void limiterShouldWork() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final int SIZE_LIMIT = 9; //#bytes-limiter @@ -247,7 +247,7 @@ public class RecipeByteStrings extends RecipeTest { @Test public void compacting() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source rawBytes = Source.from(Arrays.asList( ByteString.fromArray(new byte[] { 1, 2 }), diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDecompress.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDecompress.java index 34c0d1bab8..6f1d886cdc 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDecompress.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDecompress.java @@ -10,7 +10,7 @@ import akka.stream.Materializer; import akka.stream.javadsl.Compression; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import akka.util.ByteString; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -35,7 +35,7 @@ public class RecipeDecompress extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDigest.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDigest.java index ee728a3fbd..61a802902b 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDigest.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDigest.java @@ -9,7 +9,7 @@ import akka.stream.*; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; import akka.stream.stage.*; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import akka.util.ByteString; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -34,7 +34,7 @@ public class RecipeDigest extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -101,7 +101,7 @@ public class RecipeDigest extends RecipeTest { @Test public void work() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { Source data = Source.from(Arrays.asList( diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDroppyBroadcast.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDroppyBroadcast.java index 5c0ccb9e2e..1ba8345f8c 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDroppyBroadcast.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeDroppyBroadcast.java @@ -8,7 +8,7 @@ import akka.NotUsed; import akka.actor.ActorSystem; import akka.stream.*; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -29,14 +29,14 @@ public class RecipeDroppyBroadcast extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @Test public void work() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { //#droppy-bcast // Makes a sink drop elements if too slow public Sink> droppySink(Sink> sink, int size) { diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeFlattenList.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeFlattenList.java index 128f1922e1..be993dc046 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeFlattenList.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeFlattenList.java @@ -9,7 +9,7 @@ import akka.stream.ActorMaterializer; import akka.stream.Materializer; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -32,14 +32,14 @@ public class RecipeFlattenList extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @Test public void workWithMapConcat() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { Source, NotUsed> someDataSource = Source .from(Arrays.asList(Arrays.asList(new Message("1")), Arrays.asList(new Message("2"), new Message("3")))); diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeGlobalRateLimit.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeGlobalRateLimit.java index 3399981ffb..9b829016ae 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeGlobalRateLimit.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeGlobalRateLimit.java @@ -10,7 +10,7 @@ import akka.stream.*; import akka.stream.javadsl.*; import akka.stream.testkit.TestSubscriber; import akka.stream.testkit.javadsl.TestSink; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import akka.util.Timeout; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -37,7 +37,7 @@ public class RecipeGlobalRateLimit extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -144,7 +144,7 @@ public class RecipeGlobalRateLimit extends RecipeTest { @Test public void work() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { //#global-limiter-flow public Flow limitGlobal(ActorRef limiter, FiniteDuration maxAllowedWait) { final int parallelism = 4; diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeHold.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeHold.java index a4d0c2c28f..9b6f749479 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeHold.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeHold.java @@ -14,7 +14,8 @@ import akka.stream.testkit.TestPublisher; import akka.stream.testkit.TestSubscriber; import akka.stream.testkit.javadsl.TestSink; import akka.stream.testkit.javadsl.TestSource; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; +import akka.util.ByteString; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -34,7 +35,7 @@ public class RecipeHold extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -136,7 +137,7 @@ public class RecipeHold extends RecipeTest { @Test public void workForVersion1() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source> source = TestSource.probe(system); final Sink> sink = TestSink.probe(system); @@ -164,7 +165,7 @@ public class RecipeHold extends RecipeTest { @Test public void workForVersion2() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source> source = TestSource.probe(system); final Sink> sink = TestSink.probe(system); diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeKeepAlive.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeKeepAlive.java index f446095b82..aadb180a95 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeKeepAlive.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeKeepAlive.java @@ -8,7 +8,7 @@ import akka.actor.ActorSystem; import akka.stream.ActorMaterializer; import akka.stream.Materializer; import akka.stream.javadsl.Flow; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import akka.util.ByteString; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -28,7 +28,7 @@ public class RecipeKeepAlive extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -38,7 +38,7 @@ public class RecipeKeepAlive extends RecipeTest { @Test public void workForVersion1() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final ByteString keepAliveMessage = ByteString.fromArray(new byte[]{11}); diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeLoggingElements.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeLoggingElements.java index 192fb03650..424cdba995 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeLoggingElements.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeLoggingElements.java @@ -13,7 +13,7 @@ import akka.stream.Materializer; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; import akka.testkit.DebugFilter; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import com.typesafe.config.ConfigFactory; import jdocs.stream.SilenceSystemOut; import org.junit.AfterClass; @@ -35,14 +35,14 @@ public class RecipeLoggingElements extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @Test public void workWithPrintln() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final SilenceSystemOut.System System = SilenceSystemOut.get(getTestActor()); { @@ -60,7 +60,7 @@ public class RecipeLoggingElements extends RecipeTest { @Test public void workWithLog() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { private T analyse(T i) { return i; } diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeManualTrigger.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeManualTrigger.java index 2da7715417..cad38e297f 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeManualTrigger.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeManualTrigger.java @@ -11,7 +11,7 @@ import akka.stream.testkit.TestPublisher; import akka.stream.testkit.TestSubscriber; import akka.stream.testkit.javadsl.TestSink; import akka.stream.testkit.javadsl.TestSource; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -32,7 +32,7 @@ public class RecipeManualTrigger extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -44,7 +44,7 @@ public class RecipeManualTrigger extends RecipeTest { @Test public void zipped() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source> triggerSource = TestSource.probe(system); final Sink> messageSink = TestSink.probe(system); @@ -99,7 +99,7 @@ public class RecipeManualTrigger extends RecipeTest { @Test public void zipWith() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source> triggerSource = TestSource.probe(system); final Sink> messageSink = TestSink.probe(system); diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeMissedTicks.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeMissedTicks.java index 56dc33eb41..d88967c0e0 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeMissedTicks.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeMissedTicks.java @@ -16,8 +16,8 @@ import akka.stream.testkit.TestPublisher; import akka.stream.testkit.TestSubscriber; import akka.stream.testkit.javadsl.TestSink; import akka.stream.testkit.javadsl.TestSource; -import akka.testkit.JavaTestKit; import akka.testkit.TestLatch; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -39,14 +39,14 @@ public class RecipeMissedTicks extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @Test public void work() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { class Tick { } diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeMultiGroupByTest.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeMultiGroupByTest.java index cf29fc001f..84903cb1dc 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeMultiGroupByTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeMultiGroupByTest.java @@ -12,7 +12,7 @@ import akka.stream.Materializer; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; import akka.stream.javadsl.SubSource; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -38,7 +38,7 @@ public class RecipeMultiGroupByTest extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -76,7 +76,7 @@ public class RecipeMultiGroupByTest extends RecipeTest { @Test public void work() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { final List extractTopics(Message m) { final List topics = new ArrayList<>(2); diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeParseLines.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeParseLines.java index 7551b4c9b3..9c05bc0209 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeParseLines.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeParseLines.java @@ -11,7 +11,7 @@ import akka.stream.javadsl.Framing; import akka.stream.javadsl.FramingTruncation; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import akka.util.ByteString; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -33,7 +33,7 @@ public class RecipeParseLines extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeReduceByKeyTest.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeReduceByKeyTest.java index f01d1b222f..dbaf1263b4 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeReduceByKeyTest.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeReduceByKeyTest.java @@ -13,7 +13,7 @@ import akka.stream.Materializer; import akka.stream.javadsl.Flow; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; @@ -39,14 +39,14 @@ public class RecipeReduceByKeyTest extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @Test public void work() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source words = Source.from(Arrays.asList("hello", "world", "and", "hello", "akka")); @@ -93,7 +93,7 @@ public class RecipeReduceByKeyTest extends RecipeTest { @Test public void workGeneralised() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source words = Source.from(Arrays.asList("hello", "world", "and", "hello", "akka")); diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeSeq.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeSeq.java index 2c11d0e817..01f1a5db35 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeSeq.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeSeq.java @@ -9,7 +9,7 @@ import akka.stream.ActorMaterializer; import akka.stream.Materializer; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -30,14 +30,14 @@ public class RecipeSeq extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @Test public void drainSourceToList() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source mySource = Source.from(Arrays.asList("1", "2", "3")); //#draining-to-list-unsafe @@ -52,7 +52,7 @@ public class RecipeSeq extends RecipeTest { @Test public void drainSourceToListWithLimit() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source mySource = Source.from(Arrays.asList("1", "2", "3")); //#draining-to-list-safe @@ -70,7 +70,7 @@ public class RecipeSeq extends RecipeTest { } public void drainSourceToListWithTake() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { final Source mySource = Source.from(Arrays.asList("1", "2", "3")); final int MAX_ALLOWED_SIZE = 100; diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeSimpleDrop.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeSimpleDrop.java index 3e8664a846..e55bfbd3b3 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeSimpleDrop.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeSimpleDrop.java @@ -13,8 +13,8 @@ import akka.stream.testkit.TestPublisher; import akka.stream.testkit.TestSubscriber; import akka.stream.testkit.javadsl.TestSink; import akka.stream.testkit.javadsl.TestSource; -import akka.testkit.JavaTestKit; import akka.testkit.TestLatch; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -35,14 +35,14 @@ public class RecipeSimpleDrop extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @Test public void work() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { @SuppressWarnings("unused") //#simple-drop diff --git a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeWorkerPool.java b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeWorkerPool.java index 82a12aae17..20bcf646d3 100644 --- a/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeWorkerPool.java +++ b/akka-docs/rst/java/code/jdocs/stream/javadsl/cookbook/RecipeWorkerPool.java @@ -7,7 +7,7 @@ import akka.NotUsed; import akka.actor.ActorSystem; import akka.stream.*; import akka.stream.javadsl.*; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -32,7 +32,7 @@ public class RecipeWorkerPool extends RecipeTest { @AfterClass public static void tearDown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; mat = null; } @@ -58,7 +58,7 @@ public class RecipeWorkerPool extends RecipeTest { @Test public void workForVersion1() throws Exception { - new JavaTestKit(system) { + new TestKit(system) { { Source data = Source diff --git a/akka-docs/rst/java/code/jdocs/testkit/ParentChildTest.java b/akka-docs/rst/java/code/jdocs/testkit/ParentChildTest.java index 2888e4cf5f..9485c7a13d 100644 --- a/akka-docs/rst/java/code/jdocs/testkit/ParentChildTest.java +++ b/akka-docs/rst/java/code/jdocs/testkit/ParentChildTest.java @@ -8,10 +8,10 @@ import akka.actor.*; import akka.japi.Creator; import akka.japi.Function; import akka.testkit.AkkaJUnitActorSystemResource; -import akka.testkit.JavaTestKit; import akka.testkit.TestActorRef; import akka.testkit.TestProbe; +import akka.testkit.javadsl.TestKit; import com.typesafe.config.ConfigFactory; import docs.testkit.MockedChild; @@ -194,7 +194,7 @@ public class ParentChildTest extends AbstractJavaTest { @Test public void testProbeParentTest() throws Exception { //#test-TestProbe-parent - JavaTestKit parent = new JavaTestKit(system); + TestKit parent = new TestKit(system); ActorRef child = parent.childActorOf(Props.create(Child.class)); parent.send(child, "ping"); diff --git a/akka-docs/rst/java/code/jdocs/testkit/TestKitDocTest.java b/akka-docs/rst/java/code/jdocs/testkit/TestKitDocTest.java index a5a499328e..0d57e0a914 100644 --- a/akka-docs/rst/java/code/jdocs/testkit/TestKitDocTest.java +++ b/akka-docs/rst/java/code/jdocs/testkit/TestKitDocTest.java @@ -9,6 +9,14 @@ import akka.pattern.PatternsCS; import akka.testkit.*; import jdocs.AbstractJavaTest; import org.junit.Assert; +import akka.japi.JavaPartialFunction; +import akka.testkit.AkkaJUnitActorSystemResource; +import akka.testkit.CallingThreadDispatcher; +import akka.testkit.TestActor; +import akka.testkit.TestActorRef; +import akka.testkit.TestProbe; +import akka.testkit.javadsl.EventFilter; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; @@ -24,6 +32,10 @@ import akka.actor.Terminated; import akka.actor.AbstractActor; import akka.testkit.TestActor.AutoPilot; import scala.concurrent.duration.Duration; +import scala.concurrent.duration.FiniteDuration; + +import java.util.Arrays; +import java.util.List; import java.util.concurrent.CompletableFuture; @@ -89,14 +101,12 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateWithin() { //#test-within - new JavaTestKit(system) {{ + new TestKit(system) {{ getRef().tell(42, ActorRef.noSender()); - new Within(Duration.Zero(), Duration.create(1, "second")) { - // do not put code outside this method, will run afterwards - public void run() { - assertEquals((Integer) 42, expectMsgClass(Integer.class)); - } - }; + within(Duration.Zero(), Duration.create(1, "second"), () -> { + assertEquals((Integer) 42, expectMsgClass(Integer.class)); + return null; + }); }}; //#test-within } @@ -104,18 +114,15 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateExpectMsg() { //#test-expectmsg - new JavaTestKit(system) {{ + new TestKit(system) {{ getRef().tell(42, ActorRef.noSender()); - final String out = new ExpectMsg("match hint") { - // do not put code outside this method, will run afterwards - protected String match(Object in) { - if (in instanceof Integer) { - return "match"; - } else { - throw noMatch(); - } - } - }.get(); // this extracts the received message + final String out = expectMsgPF("match hint", in -> { + if (in instanceof Integer) { + return "match"; + } else { + throw JavaPartialFunction.noMatch(); + } + }); assertEquals("match", out); }}; //#test-expectmsg @@ -124,39 +131,30 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateReceiveWhile() { //#test-receivewhile - new JavaTestKit(system) {{ + new TestKit(system) {{ getRef().tell(42, ActorRef.noSender()); getRef().tell(43, ActorRef.noSender()); getRef().tell("hello", ActorRef.noSender()); - final String[] out = - new ReceiveWhile(String.class, duration("1 second")) { - // do not put code outside this method, will run afterwards - protected String match(Object in) { - if (in instanceof Integer) { - return in.toString(); - } else { - throw noMatch(); - } - } - }.get(); // this extracts the received messages - assertArrayEquals(new String[] {"42", "43"}, out); + + final List out = receiveWhile(duration("1 second"), in -> { + if (in instanceof Integer) { + return in.toString(); + } else { + throw JavaPartialFunction.noMatch(); + } + }); + + assertArrayEquals(new String[] {"42", "43"}, out.toArray()); expectMsgEquals("hello"); }}; //#test-receivewhile - new JavaTestKit(system) {{ + new TestKit(system) {{ //#test-receivewhile-full - new ReceiveWhile( // type of array to be created must match ... - String.class, // ... this class which is needed to that end - duration("100 millis"), // maximum collect time - duration("50 millis"), // maximum time between messages - 12 // maximum number of messages to collect - ) { + receiveWhile(duration("100 millis"), duration("50 millis"), 12, in -> { //#match-elided - protected String match(Object in) { - throw noMatch(); - } + throw JavaPartialFunction.noMatch(); //#match-elided - }; + }); //#test-receivewhile-full }}; } @@ -164,18 +162,9 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateAwaitCond() { //#test-awaitCond - new JavaTestKit(system) {{ + new TestKit(system) {{ getRef().tell(42, ActorRef.noSender()); - new AwaitCond( - duration("1 second"), // maximum wait time - duration("100 millis") // interval at which to check the condition - ) { - // do not put code outside this method, will run afterwards - protected boolean cond() { - // typically used to wait for something to start up - return msgAvailable(); - } - }; + awaitCond(duration("1 second"), duration("100 millis"), this::msgAvailable); }}; //#test-awaitCond } @@ -183,17 +172,12 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateAwaitAssert() { //#test-awaitAssert - new JavaTestKit(system) {{ + new TestKit(system) {{ getRef().tell(42, ActorRef.noSender()); - new AwaitAssert( - duration("1 second"), // maximum wait time - duration("100 millis") // interval at which to check the condition - ) { - // do not put code outside this method, will run afterwards - protected void check() { - assertEquals(msgAvailable(), true); - } - }; + awaitAssert(duration("1 second"), duration("100 millis"), () -> { + assertEquals(msgAvailable(), true); + return null; + }); }}; //#test-awaitAssert } @@ -201,7 +185,7 @@ public class TestKitDocTest extends AbstractJavaTest { @Test @SuppressWarnings({ "unchecked", "unused" }) // due to generic varargs public void demonstrateExpect() { - new JavaTestKit(system) {{ + new TestKit(system) {{ getRef().tell("hello", ActorRef.noSender()); getRef().tell("hello", ActorRef.noSender()); getRef().tell("hello", ActorRef.noSender()); @@ -210,8 +194,8 @@ public class TestKitDocTest extends AbstractJavaTest { getRef().tell(42, ActorRef.noSender()); //#test-expect final String hello = expectMsgEquals("hello"); - final Object any = expectMsgAnyOf("hello", "world"); - final Object[] all = expectMsgAllOf("hello", "world"); + final String any = expectMsgAnyOf("hello", "world"); + final List all = expectMsgAllOf("hello", "world"); final int i = expectMsgClass(Integer.class); final Number j = expectMsgAnyClassOf(Integer.class, Long.class); expectNoMsg(); @@ -219,26 +203,22 @@ public class TestKitDocTest extends AbstractJavaTest { getRef().tell("receveN-1", ActorRef.noSender()); getRef().tell("receveN-2", ActorRef.noSender()); //#test-expect - final Object[] two = receiveN(2); + final List two = receiveN(2); //#test-expect assertEquals("hello", hello); assertEquals("hello", any); assertEquals(42, i); assertEquals(42, j); - assertArrayEquals(new String[] {"hello", "world"}, all); + assertArrayEquals(new String[] {"hello", "world"}, all.toArray()); }}; } @Test public void demonstrateIgnoreMsg() { //#test-ignoreMsg - new JavaTestKit(system) {{ + new TestKit(system) {{ // ignore all Strings - new IgnoreMsg() { - protected boolean ignore(Object msg) { - return msg instanceof String; - } - }; + ignoreMsg(msg -> msg instanceof String); getRef().tell("hello", ActorRef.noSender()); getRef().tell(42, ActorRef.noSender()); expectMsgEquals(42); @@ -253,8 +233,8 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateDilated() { //#duration-dilation - new JavaTestKit(system) {{ - final Duration original = duration("1 second"); + new TestKit(system) {{ + final FiniteDuration original = duration("1 second"); final Duration stretched = dilated(original); assertTrue("dilated", stretched.gteq(original)); }}; @@ -264,7 +244,7 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateProbe() { //#test-probe - new JavaTestKit(system) {{ + new TestKit(system) {{ // simple actor which just forwards messages class Forwarder extends AbstractActor { final ActorRef target; @@ -281,7 +261,7 @@ public class TestKitDocTest extends AbstractJavaTest { } // create a test probe - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); // create a forwarder, injecting the probe’s testActor final Props props = Props.create(Forwarder.class, this, probe.getRef()); @@ -298,7 +278,7 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateTestProbeWithCustomName() { //#test-probe-with-custom-name - new JavaTestKit(system) {{ + new TestKit(system) {{ final TestProbe worker = new TestProbe(system, "worker"); final TestProbe aggregator = new TestProbe(system, "aggregator"); @@ -311,8 +291,8 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateSpecialProbe() { //#test-special-probe - new JavaTestKit(system) {{ - class MyProbe extends JavaTestKit { + new TestKit(system) {{ + class MyProbe extends TestKit { public MyProbe() { super(system); } @@ -332,8 +312,8 @@ public class TestKitDocTest extends AbstractJavaTest { public void demonstrateWatch() { final ActorRef target = system.actorOf(Props.create(MyActor.class)); //#test-probe-watch - new JavaTestKit(system) {{ - final JavaTestKit probe = new JavaTestKit(system); + new TestKit(system) {{ + final TestKit probe = new TestKit(system); probe.watch(target); target.tell(PoisonPill.getInstance(), ActorRef.noSender()); final Terminated msg = probe.expectMsgClass(Terminated.class); @@ -345,8 +325,8 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateReply() { //#test-probe-reply - new JavaTestKit(system) {{ - final JavaTestKit probe = new JavaTestKit(system); + new TestKit(system) {{ + final TestKit probe = new TestKit(system); probe.getRef().tell("hello", getRef()); probe.expectMsgEquals("hello"); probe.reply("world"); @@ -359,8 +339,8 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateForward() { //#test-probe-forward - new JavaTestKit(system) {{ - final JavaTestKit probe = new JavaTestKit(system); + new TestKit(system) {{ + final TestKit probe = new TestKit(system); probe.getRef().tell("hello", getRef()); probe.expectMsgEquals("hello"); probe.forward(getRef()); @@ -374,13 +354,9 @@ public class TestKitDocTest extends AbstractJavaTest { public void demonstrateWithinProbe() { try { //#test-within-probe - new JavaTestKit(system) {{ - final JavaTestKit probe = new JavaTestKit(system); - new Within(duration("1 second")) { - public void run() { - probe.expectMsgEquals("hello"); - } - }; + new TestKit(system) {{ + final TestKit probe = new TestKit(system); + within(duration("1 second"), () -> probe.expectMsgEquals("hello")); }}; //#test-within-probe } catch (AssertionError e) { @@ -391,8 +367,8 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateAutoPilot() { //#test-auto-pilot - new JavaTestKit(system) {{ - final JavaTestKit probe = new JavaTestKit(system); + new TestKit(system) {{ + final TestKit probe = new TestKit(system); // install auto-pilot probe.setAutoPilot(new TestActor.AutoPilot() { public AutoPilot run(ActorRef sender, Object msg) { @@ -422,17 +398,14 @@ public class TestKitDocTest extends AbstractJavaTest { @Test public void demonstrateEventFilter() { //#test-event-filter - new JavaTestKit(system) {{ + new TestKit(system) {{ assertEquals("TestKitDocTest", system.name()); final ActorRef victim = system.actorOf(Props.empty(), "victim"); - final int result = new EventFilter(ActorKilledException.class) { - protected Integer run() { - victim.tell(Kill.getInstance(), ActorRef.noSender()); - return 42; - } - }.from("akka://TestKitDocTest/user/victim").occurrences(1).exec(); - + final int result = new EventFilter(ActorKilledException.class, system).from("akka://TestKitDocTest/user/victim").occurrences(1).intercept(() -> { + victim.tell(Kill.getInstance(), ActorRef.noSender()); + return 42; + }); assertEquals(42, result); }}; //#test-event-filter diff --git a/akka-docs/rst/java/code/jdocs/testkit/TestKitSampleTest.java b/akka-docs/rst/java/code/jdocs/testkit/TestKitSampleTest.java index b123742a9a..85f69cb15f 100644 --- a/akka-docs/rst/java/code/jdocs/testkit/TestKitSampleTest.java +++ b/akka-docs/rst/java/code/jdocs/testkit/TestKitSampleTest.java @@ -5,6 +5,7 @@ package jdocs.testkit; //#fullsample import jdocs.AbstractJavaTest; +import akka.testkit.javadsl.TestKit; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; @@ -14,7 +15,6 @@ import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; import akka.actor.AbstractActor; -import akka.testkit.JavaTestKit; import scala.concurrent.duration.Duration; public class TestKitSampleTest extends AbstractJavaTest { @@ -46,7 +46,7 @@ public class TestKitSampleTest extends AbstractJavaTest { @AfterClass public static void teardown() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; } @@ -56,42 +56,36 @@ public class TestKitSampleTest extends AbstractJavaTest { * Wrap the whole test procedure within a testkit constructor * if you want to receive actor replies or use Within(), etc. */ - new JavaTestKit(system) {{ + new TestKit(system) {{ final Props props = Props.create(SomeActor.class); final ActorRef subject = system.actorOf(props); // can also use JavaTestKit “from the outside” - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); // “inject” the probe by passing it to the test subject // like a real resource would be passed in production subject.tell(probe.getRef(), getRef()); // await the correct response - expectMsgEquals(duration("1 second"), "done"); + expectMsg(duration("1 second"), "done"); // the run() method needs to finish within 3 seconds - new Within(duration("3 seconds")) { - protected void run() { + within(duration("3 seconds"), () -> { + subject.tell("hello", getRef()); - subject.tell("hello", getRef()); + // This is a demo: would normally use expectMsgEquals(). + // Wait time is bounded by 3-second deadline above. + awaitCond(probe::msgAvailable); - // This is a demo: would normally use expectMsgEquals(). - // Wait time is bounded by 3-second deadline above. - new AwaitCond() { - protected boolean cond() { - return probe.msgAvailable(); - } - }; + // response must have been enqueued to us before probe + expectMsg(Duration.Zero(), "world"); + // check that the probe we injected earlier got the msg + probe.expectMsg(Duration.Zero(), "hello"); + Assert.assertEquals(getRef(), probe.getLastSender()); - // response must have been enqueued to us before probe - expectMsgEquals(Duration.Zero(), "world"); - // check that the probe we injected earlier got the msg - probe.expectMsgEquals(Duration.Zero(), "hello"); - Assert.assertEquals(getRef(), probe.getLastSender()); - - // Will wait for the rest of the 3 seconds - expectNoMsg(); - } - }; + // Will wait for the rest of the 3 seconds + expectNoMsg(); + return null; + }); }}; } diff --git a/akka-docs/rst/java/testing.rst b/akka-docs/rst/java/testing.rst index 2594bb036b..559015a0e2 100644 --- a/akka-docs/rst/java/testing.rst +++ b/akka-docs/rst/java/testing.rst @@ -139,8 +139,8 @@ common operations might even be worked into nice DSLs. .. _async-integration-testing-java: -Asynchronous Integration Testing with :class:`JavaTestKit` -========================================================== +Asynchronous Integration Testing with :class:`TestKit` +====================================================== When you are reasonably sure that your actor's business logic is correct, the next step is verifying that it works correctly within its intended environment. @@ -153,12 +153,12 @@ test with a network of actors, apply stimuli at varying injection points and arrange results to be sent from different emission points, but the basic principle stays the same in that a single procedure drives the test. -The :class:`JavaTestKit` class contains a collection of tools which makes this +The :class:`TestKit` class contains a collection of tools which makes this common task easy. .. includecode:: code/jdocs/testkit/TestKitSampleTest.java#fullsample -The :class:`JavaTestKit` contains an actor named :obj:`testActor` which is the +The :class:`TestKit` contains an actor named :obj:`testActor` which is the entry point for messages to be examined with the various ``expectMsg...`` assertions detailed below. The test actor’s reference is obtained using the :meth:`getRef()` method as demonstrated above. The :obj:`testActor` may also @@ -167,7 +167,7 @@ listener. There is a whole set of examination methods, e.g. receiving all consecutive messages matching certain criteria, receiving a whole sequence of fixed messages or classes, receiving nothing for some time, etc. -The ActorSystem passed in to the constructor of JavaTestKit is accessible via the +The ActorSystem passed in to the constructor of TestKit is accessible via the :meth:`getSystem()` method. .. note:: @@ -187,20 +187,26 @@ In these examples, the maximum durations you will find mentioned below are left out, in which case they use the default value from configuration item ``akka.test.single-expect-default`` which itself defaults to 3 seconds (or they obey the innermost enclosing :class:`Within` as detailed :ref:`below -`). The full signatures are: +`). The full signatures are: - * :meth:`public  T expectMsgEquals(Duration max, T msg)` + * :meth:`public  T expectMsgEquals(FiniteDuration max, T msg)` The given message object must be received within the specified time; the object will be returned. + * :meth:`public  T expectMsgPF(Duration max, String hint, Function f)` + + Within the given time period, a message must be received and the given + function must be defined for that message; the result from applying + the function to the received message is returned. + * :meth:`public Object expectMsgAnyOf(Duration max, Object... msg)` An object must be received within the given time, and it must be equal (compared with ``equals()``) to at least one of the passed reference objects; the received object will be returned. - * :meth:`public Object[] expectMsgAllOf(Duration max, Object... msg)` + * :meth:`public List expectMsgAllOf(FiniteDuration max, Object... msg)` A number of objects matching the size of the supplied object array must be received within the given time, and for each of the given objects there @@ -208,14 +214,14 @@ obey the innermost enclosing :class:`Within` as detailed :ref:`below with ``equals()``). The full sequence of received objects is returned in the order received. - * :meth:`public  T expectMsgClass(Duration max, Class c)` + * :meth:`public  T expectMsgClass(FiniteDuration max, Class c)` An object which is an instance of the given :class:`Class` must be received within the allotted time frame; the object will be returned. Note that this does a conformance check, if you need the class to be equal you need to verify that afterwards. - * :meth:`public  T expectMsgAnyClassOf(Duration max, Class... c)` + * :meth:`public  T expectMsgAnyClassOf(FiniteDuration max, Class... c)` An object must be received within the given time, and it must be an instance of at least one of the supplied :class:`Class` objects; the @@ -227,71 +233,55 @@ obey the innermost enclosing :class:`Within` as detailed :ref:`below Because of a limitation in Java’s type system it may be necessary to add ``@SuppressWarnings("unchecked")`` when using this method. - * :meth:`public void expectNoMsg(Duration max)` + * :meth:`public void expectNoMsg(FiniteDuration max)` No message must be received within the given time. This also fails if a message has been received before calling this method which has not been removed from the queue using one of the other methods. - * :meth:`Object[] receiveN(int n, Duration max)` + * :meth:`List receiveN(int n, FiniteDuration max)` ``n`` messages must be received within the given time; the received messages are returned. -For cases which require more refined conditions there are constructs which take -code blocks: +In addition to message reception assertions there are also methods which help +with message flows: - * **ExpectMsg** + * :meth:`public List receiveWhile(Duration max, Duration idle, Int messages, Function f)` - .. includecode:: code/jdocs/testkit/TestKitDocTest.java#test-expectmsg + .. includecode:: code/docs/testkit/TestKitDocTest.java#test-receivewhile-full - The :meth:`match(Object in)` method will be evaluated once a message has - been received within the allotted time (which may be given as constructor - argument). If it throws ``noMatch()`` (where it is sufficient to call that - method; the ``throw`` keyword is only needed in cases where the compiler - would otherwise complain about wrong return types—Java is lacking Scala’s - notion of a type which signifies “will not ever return normally”), then the - expectation fails with an :class:`AssertionError`, otherwise the matched - and possibly transformed object is stored for retrieval using the - :meth:`get()` method. + Collect messages as long as - * **ReceiveWhile** + * they are matching the given function + * the given time interval is not used up + * the next message is received within the idle timeout + * the number of messages has not yet reached the maximum - .. includecode:: code/jdocs/testkit/TestKitDocTest.java#test-receivewhile + All collected messages are returned. - This construct works like ExpectMsg, but it continually collects messages - as long as they match the criteria, and it does not fail when a - non-matching one is encountered. Collecting messages also ends when the - time is up, when too much time passes between messages or when enough - messages have been received. - - .. includecode:: code/jdocs/testkit/TestKitDocTest.java#test-receivewhile-full - :exclude: match-elided - - The need to specify the ``String`` result type twice results from the need - to create a correctly typed array and Java’s inability to infer the class’s - type argument. - - * **AwaitCond** + * :meth:`public void awaitCond(Duration max, Duration interval, Supplier p)` .. includecode:: code/jdocs/testkit/TestKitDocTest.java#test-awaitCond - This general construct is not connected with the test kit’s message - reception, the embedded condition can compute the boolean result from - anything in scope. + Poll the given condition every :obj:`interval` until it returns ``true`` or + the :obj:`max` duration is used up. - * **AwaitAssert** + * :meth:`public void awaitAssert(Duration max, Duration interval, Supplier a)` .. includecode:: code/jdocs/testkit/TestKitDocTest.java#test-awaitAssert - This general construct is not connected with the test kit’s message - reception, the embedded assert can check anything in scope. + Poll the given assert function every :obj:`interval` until it does not throw + an exception or the :obj:`max` duration is used up. If the timeout expires the + last exception is thrown. There are also cases where not all messages sent to the test kit are actually relevant to the test, but removing them would mean altering the actors under test. For this purpose it is possible to ignore certain messages: - * **IgnoreMsg** + * :meth:`public void ignoreMsg(Function f)` + + :meth:`public void ignoreMsg()` .. includecode:: code/jdocs/testkit/TestKitDocTest.java#test-ignoreMsg @@ -307,10 +297,10 @@ exceptions: .. includecode:: code/jdocs/testkit/TestKitDocTest.java#test-event-filter -If a number of occurrences is specific—as demonstrated above—then ``exec()`` +If a number of occurrences is specific—as demonstrated above—then ``intercept()`` will block until that number of matching messages have been received or the timeout configured in ``akka.test.filter-leeway`` is used up (time starts -counting after the ``run()`` method returns). In case of a timeout the test +counting after the passed-in block of code returns). In case of a timeout the test fails. .. note:: @@ -321,7 +311,7 @@ fails. akka.loggers = [akka.testkit.TestEventListener] -.. _JavaTestKit.within: +.. _TestKit.within: Timing Assertions ----------------- @@ -335,7 +325,7 @@ for managing time constraints: .. includecode:: code/jdocs/testkit/TestKitDocTest.java#test-within -The block in :meth:`Within.run()` must complete after a :ref:`Duration` which +The block in :meth:`within` must complete after a :ref:`Duration` which is between :obj:`min` and :obj:`max`, where the former defaults to zero. The deadline calculated by adding the :obj:`max` parameter to the block's start time is implicitly available within the block to all examination methods, if @@ -363,7 +353,7 @@ internally scaled by a factor taken from the :ref:`configuration`, ``akka.test.timefactor``, which defaults to 1. You can scale other durations with the same factor by using ``dilated`` method -in :class:`JavaTestKit`. +in :class:`TestKit`. .. includecode:: code/jdocs/testkit/TestKitDocTest.java#duration-dilation @@ -372,7 +362,7 @@ Using Multiple Probe Actors When the actors under test are supposed to send various messages to different destinations, it may be difficult distinguishing the message streams arriving -at the :obj:`testActor` when using the :class:`JavaTestKit` as shown until now. +at the :obj:`testActor` when using the :class:`TestKit` as shown until now. Another approach is to use it for creation of simple probe actors to be inserted in the message flows. The functionality is best explained using a small example: @@ -398,7 +388,7 @@ more concise and clear: :include: test-special-probe You have complete flexibility here in mixing and matching the -:class:`JavaTestKit` facilities with your own checks and choosing an intuitive +:class:`TestKit` facilities with your own checks and choosing an intuitive name for it. In real life your code will probably be a bit more complicated than the example given above; just use the power! @@ -414,7 +404,7 @@ than the example given above; just use the power! Watching Other Actors from Probes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -A :class:`JavaTestKit` can register itself for DeathWatch of any other actor: +A :class:`TestKit` can register itself for DeathWatch of any other actor: .. includecode:: code/jdocs/testkit/TestKitDocTest.java :include: test-probe-watch @@ -457,9 +447,9 @@ Caution about Timing Assertions The behavior of :meth:`within` blocks when using test probes might be perceived as counter-intuitive: you need to remember that the nicely scoped deadline as -described :ref:`above ` is local to each probe. Hence, probes +described :ref:`above ` is local to each probe. Hence, probes do not react to each other's deadlines or to the deadline set in an enclosing -:class:`JavaTestKit` instance: +:class:`TestKit` instance: .. includecode:: code/jdocs/testkit/TestKitDocTest.java#test-within-probe @@ -493,10 +483,10 @@ a child with a custom parent by passing an explicit reference to its parent inst .. includecode:: code/jdocs/testkit/ParentChildTest.java#test-dependentchild -Create the child using JavaTestKit -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Create the child using TestKit +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The ``JavaTestKit`` class can in fact create actors that will run with the test probe as parent. +The ``TestKit`` class can in fact create actors that will run with the test probe as parent. This will cause any messages the child actor sends to `getContext().getParent()` to end up in the test probe. diff --git a/akka-docs/rst/project/migration-guide-2.4.x-2.5.x.rst b/akka-docs/rst/project/migration-guide-2.4.x-2.5.x.rst index a600d36af7..98c97d5d50 100644 --- a/akka-docs/rst/project/migration-guide-2.4.x-2.5.x.rst +++ b/akka-docs/rst/project/migration-guide-2.4.x-2.5.x.rst @@ -723,3 +723,29 @@ Experimental modules We have previously marked modules that we did not want to freeze the APIs of a **experimental**, such modules will instead be marked as :ref:`may change ` from now on. + +Testkit +======= + +``JavaTestKit`` has been deprecated since it does all kinds of tricks to achieve what Scala testkit does. +Use ``akka.testkit.javadsl.TestKit`` instead which introduces nicer APIs. + +Old:: + + new JavaTestKit(system) {{ + final JavaTestKit probe = new JavaTestKit(system); + new Within(duration("1 second")) { + public void run() { + probe.expectMsgEquals("hello"); + } + }; + }}; + + + +New:: + + new TestKit(system) {{ + final TestKit probe = new TestKit(system); + within(duration("1 second"), () -> probe.expectMsgEquals("hello")); + }}; diff --git a/akka-docs/rst/scala/code/docs/testkit/PlainWordSpec.scala b/akka-docs/rst/scala/code/docs/testkit/PlainWordSpec.scala index 8c8f3943a8..9b2a83b2d8 100644 --- a/akka-docs/rst/scala/code/docs/testkit/PlainWordSpec.scala +++ b/akka-docs/rst/scala/code/docs/testkit/PlainWordSpec.scala @@ -5,12 +5,8 @@ package docs.testkit //#plain-spec import akka.actor.ActorSystem -import akka.actor.Actor -import akka.actor.Props -import akka.testkit.{ TestActors, TestKit, ImplicitSender } -import org.scalatest.WordSpecLike -import org.scalatest.Matchers -import org.scalatest.BeforeAndAfterAll +import akka.testkit.{ ImplicitSender, TestActors, TestKit } +import org.scalatest.{ BeforeAndAfterAll, Matchers, WordSpecLike } //#implicit-sender class MySpec() extends TestKit(ActorSystem("MySpec")) with ImplicitSender diff --git a/akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala b/akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala index ed50bca432..f8fa42cfa4 100644 --- a/akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala +++ b/akka-multi-node-testkit/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala @@ -15,6 +15,7 @@ import akka.actor._ import akka.util.Timeout import akka.remote.testconductor.{ RoleName, TestConductor, TestConductorExt } import akka.testkit._ +import akka.testkit.TestKit import akka.testkit.TestEvent._ import scala.concurrent.duration._ diff --git a/akka-persistence/src/test/java/akka/persistence/fsm/AbstractPersistentFSMTest.java b/akka-persistence/src/test/java/akka/persistence/fsm/AbstractPersistentFSMTest.java index f047ec6a90..be8a25ea87 100644 --- a/akka-persistence/src/test/java/akka/persistence/fsm/AbstractPersistentFSMTest.java +++ b/akka-persistence/src/test/java/akka/persistence/fsm/AbstractPersistentFSMTest.java @@ -8,7 +8,7 @@ import akka.actor.*; import akka.japi.Option; import akka.persistence.PersistenceSpec; import akka.testkit.AkkaJUnitActorSystemResource; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import akka.testkit.TestProbe; import org.junit.ClassRule; @@ -56,7 +56,7 @@ public class AbstractPersistentFSMTest extends JUnitSuite { @Test public void fsmFunctionalTest() throws Exception { - new JavaTestKit(system) {{ + new TestKit(system) {{ String persistenceId = generateId(); ActorRef fsmRef = system.actorOf(WebStoreCustomerFSM.props(persistenceId, dummyReportActorRef)); @@ -109,7 +109,7 @@ public class AbstractPersistentFSMTest extends JUnitSuite { @Test public void fsmTimeoutTest() throws Exception { - new JavaTestKit(system) {{ + new TestKit(system) {{ String persistenceId = generateId(); ActorRef fsmRef = system.actorOf(WebStoreCustomerFSM.props(persistenceId, dummyReportActorRef)); @@ -126,26 +126,19 @@ public class AbstractPersistentFSMTest extends JUnitSuite { PersistentFSM.Transition stateTransition = expectMsgClass(PersistentFSM.Transition.class); assertTransition(stateTransition, fsmRef, UserState.LOOKING_AROUND, UserState.SHOPPING); - new Within(duration("0.9 seconds"), remainingOrDefault()) { - @Override - protected void run() { - PersistentFSM.Transition stateTransition = expectMsgClass(PersistentFSM.Transition.class); - assertTransition(stateTransition, fsmRef, UserState.SHOPPING, UserState.INACTIVE); - } - }; + within(duration("0.9 seconds"), remainingOrDefault(), () -> { + PersistentFSM.Transition st = expectMsgClass(PersistentFSM.Transition.class); + assertTransition(st, fsmRef, UserState.SHOPPING, UserState.INACTIVE); + return null; + }); - new Within(duration("1.9 seconds"), remainingOrDefault()) { - @Override - protected void run() { - expectTerminated(fsmRef); - } - }; + within(duration("1.9 seconds"), remainingOrDefault(), () -> expectTerminated(fsmRef)); }}; } @Test public void testSuccessfulRecoveryWithCorrectStateData() { - new JavaTestKit(system) {{ + new TestKit(system) {{ String persistenceId = generateId(); ActorRef fsmRef = system.actorOf(WebStoreCustomerFSM.props(persistenceId, dummyReportActorRef)); @@ -214,7 +207,7 @@ public class AbstractPersistentFSMTest extends JUnitSuite { @Test public void testExecutionOfDefinedActionsFollowingSuccessfulPersistence() { - new JavaTestKit(system) {{ + new TestKit(system) {{ String persistenceId = generateId(); TestProbe reportActorProbe = new TestProbe(system); @@ -251,7 +244,7 @@ public class AbstractPersistentFSMTest extends JUnitSuite { @Test public void testExecutionOfDefinedActionsFollowingSuccessfulPersistenceOfFSMStop() { - new JavaTestKit(system) {{ + new TestKit(system) {{ String persistenceId = generateId(); TestProbe reportActorProbe = new TestProbe(system); @@ -283,7 +276,7 @@ public class AbstractPersistentFSMTest extends JUnitSuite { @Test public void testCorrectStateTimeoutFollowingRecovery() { - new JavaTestKit(system) {{ + new TestKit(system) {{ String persistenceId = generateId(); ActorRef fsmRef = system.actorOf(WebStoreCustomerFSM.props(persistenceId, dummyReportActorRef)); @@ -312,13 +305,11 @@ public class AbstractPersistentFSMTest extends JUnitSuite { currentState = expectMsgClass(akka.persistence.fsm.PersistentFSM.CurrentState.class); assertEquals(currentState.state(), UserState.SHOPPING); - new Within(duration("0.9 seconds"), remainingOrDefault()) { - @Override - protected void run() { - PersistentFSM.Transition stateTransition = expectMsgClass(PersistentFSM.Transition.class); - assertTransition(stateTransition, recoveredFsmRef, UserState.SHOPPING, UserState.INACTIVE); - } - }; + within(duration("0.9 seconds"), remainingOrDefault(), () -> { + PersistentFSM.Transition st = expectMsgClass(PersistentFSM.Transition.class); + assertTransition(st, recoveredFsmRef, UserState.SHOPPING, UserState.INACTIVE); + return null; + }); expectNoMsg(duration("0.9 seconds")); //randomly chosen delay, less than the timeout, before stopping the FSM recoveredFsmRef.tell(PoisonPill.getInstance(), ActorRef.noSender()); @@ -331,12 +322,8 @@ public class AbstractPersistentFSMTest extends JUnitSuite { currentState = expectMsgClass(akka.persistence.fsm.PersistentFSM.CurrentState.class); assertEquals(currentState.state(), UserState.INACTIVE); - new Within(duration("1.9 seconds"), remainingOrDefault()) { - @Override - protected void run() { - expectTerminated(recoveredFsmRef2); - } - }; + within(duration("1.9 seconds"), remainingOrDefault(), () -> expectTerminated(recoveredFsmRef2)); + }}; } diff --git a/akka-stream-testkit/src/main/scala/akka/stream/testkit/TestGraphStage.scala b/akka-stream-testkit/src/main/scala/akka/stream/testkit/TestGraphStage.scala index 7afb1f4c0d..4074928e3c 100644 --- a/akka-stream-testkit/src/main/scala/akka/stream/testkit/TestGraphStage.scala +++ b/akka-stream-testkit/src/main/scala/akka/stream/testkit/TestGraphStage.scala @@ -145,4 +145,4 @@ private[testkit] class TestSourceStage[T, M]( } (logic, mat) } -} \ No newline at end of file +} diff --git a/akka-stream-testkit/src/test/scala/akka/stream/testkit/Coroner.scala b/akka-stream-testkit/src/test/scala/akka/stream/testkit/Coroner.scala index b9deefe353..41ccaf259c 100644 --- a/akka-stream-testkit/src/test/scala/akka/stream/testkit/Coroner.scala +++ b/akka-stream-testkit/src/test/scala/akka/stream/testkit/Coroner.scala @@ -6,11 +6,14 @@ package akka.stream.testkit import java.io.PrintStream import java.lang.management.{ ManagementFactory, ThreadInfo } import java.util.Date -import java.util.concurrent.{ TimeoutException, CountDownLatch } -import scala.concurrent.{ Promise, Awaitable, CanAwait, Await } +import java.util.concurrent.{ CountDownLatch, TimeoutException } + +import akka.testkit.TestDuration +import akka.testkit.TestKit + import scala.concurrent.duration._ +import scala.concurrent.{ Await, Awaitable, CanAwait, Promise } import scala.util.control.NonFatal -import akka.testkit.{ TestKit, TestDuration } /** * The Coroner can be used to print a diagnostic report of the JVM state, diff --git a/akka-stream-tests/src/test/java/akka/stream/actor/ActorPublisherTest.java b/akka-stream-tests/src/test/java/akka/stream/actor/ActorPublisherTest.java index 6785a2a65a..5e088b6464 100644 --- a/akka-stream-tests/src/test/java/akka/stream/actor/ActorPublisherTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/actor/ActorPublisherTest.java @@ -6,7 +6,7 @@ import akka.stream.StreamTest; import akka.testkit.AkkaJUnitActorSystemResource; import akka.stream.javadsl.Source; import akka.testkit.AkkaSpec; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; import org.reactivestreams.Publisher; @@ -38,7 +38,7 @@ public class ActorPublisherTest extends StreamTest { @Test public void mustHaveJavaAPI() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final ActorRef ref = system .actorOf(Props.create(TestPublisher.class).withDispatcher("akka.test.stream-dispatcher")); final Publisher publisher = UntypedActorPublisher.create(ref); diff --git a/akka-stream-tests/src/test/java/akka/stream/actor/ActorSubscriberTest.java b/akka-stream-tests/src/test/java/akka/stream/actor/ActorSubscriberTest.java index 856f5f4deb..e297e5cc68 100644 --- a/akka-stream-tests/src/test/java/akka/stream/actor/ActorSubscriberTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/actor/ActorSubscriberTest.java @@ -7,7 +7,7 @@ import akka.testkit.AkkaJUnitActorSystemResource; import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; import akka.testkit.AkkaSpec; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; import org.reactivestreams.Subscriber; @@ -58,7 +58,7 @@ public class ActorSubscriberTest extends StreamTest { @Test public void mustHaveJavaAPI() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final ActorRef ref = system.actorOf(Props.create(TestSubscriber.class, probe.getRef()).withDispatcher("akka.test.stream-dispatcher")); final Subscriber subscriber = UntypedActorSubscriber.create(ref); final java.lang.Iterable input = Arrays.asList(1, 2, 3); diff --git a/akka-stream-tests/src/test/java/akka/stream/io/OutputStreamSourceTest.java b/akka-stream-tests/src/test/java/akka/stream/io/OutputStreamSourceTest.java index b64b984e23..85539d9f21 100644 --- a/akka-stream-tests/src/test/java/akka/stream/io/OutputStreamSourceTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/io/OutputStreamSourceTest.java @@ -8,6 +8,7 @@ import static org.junit.Assert.assertEquals; import java.io.OutputStream; import java.util.concurrent.TimeUnit; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; @@ -19,7 +20,6 @@ import akka.stream.javadsl.Sink; import akka.stream.javadsl.Source; import akka.stream.javadsl.StreamConverters; import akka.stream.testkit.Utils; -import akka.testkit.JavaTestKit; import akka.util.ByteString; import scala.concurrent.duration.FiniteDuration; @@ -34,7 +34,7 @@ public class OutputStreamSourceTest extends StreamTest { @Test public void mustSendEventsViaOutputStream() throws Exception { final FiniteDuration timeout = FiniteDuration.create(3, TimeUnit.SECONDS); - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = StreamConverters.asOutputStream(timeout); final OutputStream s = source.to(Sink.foreach(new Procedure() { diff --git a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowTest.java b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowTest.java index f3b93911f2..4a9afbe887 100644 --- a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowTest.java @@ -17,7 +17,7 @@ import akka.stream.javadsl.GraphDSL.Builder; import akka.stream.stage.*; import akka.testkit.AkkaSpec; import akka.stream.testkit.TestPublisher; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Ignore; import org.junit.Test; @@ -51,7 +51,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseSimpleOperators() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final String[] lookup = { "a", "b", "c", "d", "e", "f" }; final java.lang.Iterable input = Arrays.asList(0, 1, 2, 3, 4, 5); final Source ints = Source.from(input); @@ -87,7 +87,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseDropWhile() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.from(Arrays.asList(0, 1, 2, 3)); final Flow flow = Flow.of(Integer.class).dropWhile(elem -> elem < 2); @@ -102,7 +102,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseStatefulMaponcat() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final java.lang.Iterable input = Arrays.asList(1, 2, 3, 4, 5); final Source ints = Source.from(input); final Flow flow = Flow.of(Integer.class).statefulMapConcat( @@ -124,7 +124,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseIntersperse() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.from(Arrays.asList("0", "1", "2", "3")); final Flow flow = Flow.of(String.class).intersperse("[", ",", "]"); @@ -145,7 +145,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseIntersperseAndConcat() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.from(Arrays.asList("0", "1", "2", "3")); final Flow flow = Flow.of(String.class).intersperse(","); @@ -165,7 +165,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseTakeWhile() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.from(Arrays.asList(0, 1, 2, 3)); final Flow flow = Flow.of(Integer.class).takeWhile (new Predicate() { @@ -189,7 +189,7 @@ public class FlowTest extends StreamTest { @Ignore("StatefulStage to be converted to GraphStage when Java Api is available (#18817)") @Test public void mustBeAbleToUseTransform() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7); // duplicate each element, stop after 4 elements, and emit sum to the end final Flow flow = Flow.of(Integer.class).via(new GraphStage>() { @@ -383,7 +383,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseZip() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList(1, 2, 3); @@ -407,7 +407,7 @@ public class FlowTest extends StreamTest { } })).run(materializer); - List output = Arrays.asList(probe.receiveN(3)); + List output = probe.receiveN(3); List> expected = Arrays.asList(new Pair("A", 1), new Pair( "B", 2), new Pair("C", 3)); assertEquals(expected, output); @@ -415,7 +415,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseConcat() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); @@ -428,13 +428,13 @@ public class FlowTest extends StreamTest { } }, materializer); - List output = Arrays.asList(probe.receiveN(6)); + List output = probe.receiveN(6); assertEquals(Arrays.asList("A", "B", "C", "D", "E", "F"), output); } @Test public void mustBeAbleToUsePrepend() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); @@ -447,13 +447,13 @@ public class FlowTest extends StreamTest { } }, materializer); - List output = Arrays.asList(probe.receiveN(6)); + List output = probe.receiveN(6); assertEquals(Arrays.asList("A", "B", "C", "D", "E", "F"), output); } @Test public void mustBeAbleToUsePrefixAndTail() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input = Arrays.asList(1, 2, 3, 4, 5, 6); final Flow, Source>, NotUsed> flow = Flow.of(Integer.class).prefixAndTail(3); CompletionStage, Source>> future = @@ -468,7 +468,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseConcatAllWithSources() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList(1, 2, 3); final Iterable input2 = Arrays.asList(4, 5); @@ -488,7 +488,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseFlatMapMerge() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); final Iterable input2 = Arrays.asList(10, 11, 12, 13, 14, 15, 16, 17, 18, 19); final Iterable input3 = Arrays.asList(20, 21, 22, 23, 24, 25, 26, 27, 28, 29); @@ -520,7 +520,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseBuffer() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); final Flow, NotUsed> flow = Flow.of(String.class).buffer(2, OverflowStrategy.backpressure()).grouped(4); final CompletionStage> future = Source.from(input).via(flow) @@ -542,7 +542,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseConflate() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); final Flow flow = Flow.of(String.class).conflateWithSeed(new Function() { @Override @@ -568,7 +568,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseBatch() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); final Flow flow = Flow.of(String.class).batch(3L, new Function() { @Override @@ -588,7 +588,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseBatchWeighted() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); final Flow flow = Flow.of(String.class).batchWeighted(3L, new Function() { @Override @@ -613,7 +613,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseExpand() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); final Flow flow = Flow.of(String.class).expand(in -> Stream.iterate(in, i -> i).iterator()); final Sink> sink = Sink.head(); @@ -624,7 +624,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseMapAsync() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input = Arrays.asList("a", "b", "c"); final Flow flow = Flow.of(String.class).mapAsync(4, elem -> CompletableFuture.completedFuture(elem.toUpperCase())); Source.from(input).via(flow).runForeach(new Procedure() { @@ -640,7 +640,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToRecover() throws Exception { final TestPublisher.ManualProbe publisherProbe = TestPublisher.manualProbe(true,system); - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.fromPublisher(publisherProbe); final Flow flow = Flow.of(Integer.class).map( @@ -674,7 +674,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToRecoverWithSource() throws Exception { final TestPublisher.ManualProbe publisherProbe = TestPublisher.manualProbe(true,system); - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable recover = Arrays.asList(55, 0); final Source source = Source.fromPublisher(publisherProbe); @@ -709,7 +709,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToMaterializeIdentityWithJavaFlow() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); Flow otherFlow = Flow.of(String.class); @@ -726,7 +726,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToMaterializeIdentityToJavaSink() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); Flow otherFlow = Flow.of(String.class); @@ -755,7 +755,7 @@ public class FlowTest extends StreamTest { } })); - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); Source source = Source.actorRef(1, OverflowStrategy.dropNew()); final ActorRef actor = source.toMat(sink, Keep.left()).run(materializer); probe.watch(actor); @@ -765,7 +765,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseZipWith() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); @@ -786,7 +786,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseZip2() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); @@ -804,7 +804,7 @@ public class FlowTest extends StreamTest { @Test public void mustBeAbleToUseMerge2() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); diff --git a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowThrottleTest.java b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowThrottleTest.java index 445c04d4ce..41dc437374 100644 --- a/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowThrottleTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/javadsl/FlowThrottleTest.java @@ -6,7 +6,6 @@ import akka.actor.ActorRef; import akka.japi.Pair; import akka.japi.function.Function; import akka.stream.*; -import akka.testkit.JavaTestKit; import org.junit.ClassRule; import org.junit.Test; import scala.concurrent.duration.FiniteDuration; diff --git a/akka-stream-tests/src/test/java/akka/stream/javadsl/SinkTest.java b/akka-stream-tests/src/test/java/akka/stream/javadsl/SinkTest.java index ce0b585320..742209ae06 100644 --- a/akka-stream-tests/src/test/java/akka/stream/javadsl/SinkTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/javadsl/SinkTest.java @@ -15,6 +15,7 @@ import java.util.stream.Collectors; import akka.NotUsed; import akka.japi.function.Function; import akka.stream.*; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; import org.reactivestreams.Publisher; @@ -23,7 +24,6 @@ import scala.concurrent.Future; import scala.concurrent.duration.Duration; import akka.japi.function.Function2; import akka.testkit.AkkaSpec; -import akka.testkit.JavaTestKit; import akka.testkit.AkkaJUnitActorSystemResource; import static org.junit.Assert.*; @@ -61,7 +61,7 @@ public class SinkTest extends StreamTest { @Test public void mustBeAbleToUseActorRefSink() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Sink actorRefSink = Sink.actorRef(probe.getRef(), "done"); Source.from(Arrays.asList(1, 2, 3)).runWith(actorRefSink, materializer); probe.expectMsgEquals(1); @@ -80,8 +80,8 @@ public class SinkTest extends StreamTest { @Test public void mustBeAbleToCombine() throws Exception { - final JavaTestKit probe1 = new JavaTestKit(system); - final JavaTestKit probe2 = new JavaTestKit(system); + final TestKit probe1 = new TestKit(system); + final TestKit probe2 = new TestKit(system); final Sink sink1 = Sink.actorRef(probe1.getRef(), "done1"); final Sink sink2 = Sink.actorRef(probe2.getRef(), "done2"); diff --git a/akka-stream-tests/src/test/java/akka/stream/javadsl/SourceTest.java b/akka-stream-tests/src/test/java/akka/stream/javadsl/SourceTest.java index 31156e87c9..e8909273e8 100644 --- a/akka-stream-tests/src/test/java/akka/stream/javadsl/SourceTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/javadsl/SourceTest.java @@ -14,7 +14,7 @@ import akka.stream.*; import akka.stream.impl.ConstantFun; import akka.testkit.AkkaSpec; import akka.stream.testkit.TestPublisher; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Ignore; import org.junit.Test; @@ -47,7 +47,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseSimpleOperators() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final String[] lookup = {"a", "b", "c", "d", "e", "f"}; final java.lang.Iterable input = Arrays.asList(0, 1, 2, 3, 4, 5); final Source ints = Source.from(input); @@ -70,7 +70,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseVoidTypeInForeach() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final java.lang.Iterable input = Arrays.asList("a", "b", "c"); Source ints = Source.from(input); @@ -153,7 +153,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseConcat() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); @@ -166,13 +166,13 @@ public class SourceTest extends StreamTest { } }, materializer); - List output = Arrays.asList(probe.receiveN(6)); + List output = probe.receiveN(6); assertEquals(Arrays.asList("A", "B", "C", "D", "E", "F"), output); } @Test public void mustBeAbleToUsePrepend() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); @@ -185,13 +185,13 @@ public class SourceTest extends StreamTest { } }, materializer); - List output = Arrays.asList(probe.receiveN(6)); + List output = probe.receiveN(6); assertEquals(Arrays.asList("A", "B", "C", "D", "E", "F"), output); } @Test public void mustBeAbleToUseCallableInput() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList(4, 3, 2, 1, 0); final Creator> input = new Creator>() { @Override @@ -205,14 +205,14 @@ public class SourceTest extends StreamTest { } }, materializer); - List output = Arrays.asList(probe.receiveN(5)); + List output = probe.receiveN(5); assertEquals(Arrays.asList(4, 3, 2, 1, 0), output); probe.expectNoMsg(FiniteDuration.create(500, TimeUnit.MILLISECONDS)); } @Test public void mustBeAbleToUseOnCompleteSuccess() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input = Arrays.asList("A", "B", "C"); Source.from(input).runWith(Sink.onComplete(new Procedure>() { @@ -227,7 +227,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseOnCompleteError() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input = Arrays.asList("A", "B", "C"); Source.from(input) @@ -246,7 +246,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseToFuture() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input = Arrays.asList("A", "B", "C"); CompletionStage future = Source.from(input).runWith(Sink.head(), materializer); String result = future.toCompletableFuture().get(3, TimeUnit.SECONDS); @@ -255,7 +255,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUsePrefixAndTail() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input = Arrays.asList(1, 2, 3, 4, 5, 6); CompletionStage, Source>> future = Source.from(input).prefixAndTail(3) .runWith(Sink., Source>>head(), materializer); @@ -269,7 +269,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseConcatAllWithSources() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList(1, 2, 3); final Iterable input2 = Arrays.asList(4, 5); @@ -289,7 +289,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseFlatMapMerge() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); final Iterable input2 = Arrays.asList(10, 11, 12, 13, 14, 15, 16, 17, 18, 19); final Iterable input3 = Arrays.asList(20, 21, 22, 23, 24, 25, 26, 27, 28, 29); @@ -320,7 +320,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseBuffer() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); final CompletionStage> future = Source.from(input).buffer(2, OverflowStrategy.backpressure()).grouped(4) .runWith(Sink.>head(), materializer); @@ -331,7 +331,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseConflate() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); CompletionStage future = Source.from(input) .conflateWithSeed(s -> s, (aggr, in) -> aggr + in) @@ -349,7 +349,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseExpand() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final List input = Arrays.asList("A", "B", "C"); CompletionStage future = Source.from(input).expand(in -> Stream.iterate(in, i -> i).iterator()).runWith(Sink.head(), materializer); String result = future.toCompletableFuture().get(3, TimeUnit.SECONDS); @@ -358,7 +358,7 @@ public class SourceTest extends StreamTest { @Test public void mustProduceTicks() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); Source tickSource = Source.tick(FiniteDuration.create(1, TimeUnit.SECONDS), FiniteDuration.create(500, TimeUnit.MILLISECONDS), "tick"); @SuppressWarnings("unused") @@ -377,7 +377,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseMapFuture() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input = Arrays.asList("a", "b", "c"); Source.from(input) .mapAsync(4, elem -> CompletableFuture.completedFuture(elem.toUpperCase())) @@ -443,7 +443,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseActorRefSource() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source actorRefSource = Source.actorRef(10, OverflowStrategy.fail()); final ActorRef ref = actorRefSource.to(Sink.foreach(new Procedure() { public void apply(Integer elem) { @@ -458,7 +458,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseStatefulMaponcat() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final java.lang.Iterable input = Arrays.asList(1, 2, 3, 4, 5); final Source ints = Source.from(input).statefulMapConcat( () -> { @@ -479,7 +479,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseIntersperse() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.from(Arrays.asList("0", "1", "2", "3")) .intersperse("[", ",", "]"); @@ -500,7 +500,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseIntersperseAndConcat() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.from(Arrays.asList("0", "1", "2", "3")) .intersperse(","); @@ -520,7 +520,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseDropWhile() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.from(Arrays.asList(0, 1, 2, 3)).dropWhile (new Predicate() { public boolean test(Integer elem) { @@ -537,7 +537,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseTakeWhile() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.from(Arrays.asList(0, 1, 2, 3)).takeWhile (new Predicate() { public boolean test(Integer elem) { @@ -559,7 +559,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToRecover() throws Exception { final ManualProbe publisherProbe = TestPublisher.manualProbe(true,system); - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source = Source.fromPublisher(publisherProbe) @@ -583,7 +583,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToCombine() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source1 = Source.from(Arrays.asList(0, 1)); final Source source2 = Source.from(Arrays.asList(2, 3)); @@ -600,7 +600,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToZipN() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source1 = Source.from(Arrays.asList(0, 1)); final Source source2 = Source.from(Arrays.asList(2, 3)); @@ -617,7 +617,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToZipWithN() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Source source1 = Source.from(Arrays.asList(0, 1)); final Source source2 = Source.from(Arrays.asList(2, 3)); @@ -634,7 +634,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseMerge() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); @@ -649,7 +649,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseZipWith() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); @@ -670,7 +670,7 @@ public class SourceTest extends StreamTest { @Test public void mustBeAbleToUseZip() throws Exception { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); @@ -686,7 +686,7 @@ public class SourceTest extends StreamTest { } @Test public void mustBeAbleToUseMerge2() { - final JavaTestKit probe = new JavaTestKit(system); + final TestKit probe = new TestKit(system); final Iterable input1 = Arrays.asList("A", "B", "C"); final Iterable input2 = Arrays.asList("D", "E", "F"); diff --git a/akka-stream-tests/src/test/java/akka/stream/javadsl/TcpTest.java b/akka-stream-tests/src/test/java/akka/stream/javadsl/TcpTest.java index 2edc6bb8c1..a8041caa0a 100644 --- a/akka-stream-tests/src/test/java/akka/stream/javadsl/TcpTest.java +++ b/akka-stream-tests/src/test/java/akka/stream/javadsl/TcpTest.java @@ -15,6 +15,8 @@ import java.net.BindException; import akka.Done; import akka.NotUsed; +import akka.testkit.javadsl.EventFilter; +import akka.testkit.javadsl.TestKit; import org.junit.ClassRule; import org.junit.Test; import scala.concurrent.Await; @@ -28,7 +30,6 @@ import akka.japi.function.*; import akka.testkit.AkkaSpec; import akka.stream.testkit.TestUtils; import akka.util.ByteString; -import akka.testkit.JavaTestKit; import akka.testkit.AkkaJUnitActorSystemResource; public class TcpTest extends StreamTest { @@ -90,23 +91,20 @@ public class TcpTest extends StreamTest { final ServerBinding b = future.toCompletableFuture().get(5, TimeUnit.SECONDS); assertEquals(b.localAddress().getPort(), serverAddress.getPort()); - new JavaTestKit(system) {{ - new EventFilter(BindException.class) { - @Override - protected Void run() { - try { - binding.to(echoHandler).run(materializer).toCompletableFuture().get(5, TimeUnit.SECONDS); - assertTrue("Expected BindFailedException, but nothing was reported", false); - } catch (ExecutionException e) { - if (e.getCause() instanceof BindFailedException) {} // all good - else throw new AssertionError("failed", e); - // expected - } catch (Exception e) { - throw new AssertionError("failed", e); - } - return null; + new TestKit(system) {{ + new EventFilter(BindException.class, system).occurrences(1).intercept(() -> { + try { + binding.to(echoHandler).run(materializer).toCompletableFuture().get(5, TimeUnit.SECONDS); + assertTrue("Expected BindFailedException, but nothing was reported", false); + } catch (ExecutionException e) { + if (e.getCause() instanceof BindFailedException) {} // all good + else throw new AssertionError("failed", e); + // expected + } catch (Exception e) { + throw new AssertionError("failed", e); } - }.occurrences(1).exec(); + return null; + }); }}; } diff --git a/akka-testkit/src/main/java/akka/testkit/JavaTestKit.java b/akka-testkit/src/main/java/akka/testkit/JavaTestKit.java index f781d035a5..b02ee40689 100644 --- a/akka-testkit/src/main/java/akka/testkit/JavaTestKit.java +++ b/akka-testkit/src/main/java/akka/testkit/JavaTestKit.java @@ -4,7 +4,6 @@ package akka.testkit; import akka.actor.Terminated; -import scala.Option; import scala.runtime.AbstractFunction0; import akka.actor.ActorRef; import akka.actor.ActorSystem; @@ -43,8 +42,10 @@ import java.util.concurrent.TimeUnit; * "akka.test.timefactor". * * + * @deprecated Use {@link akka.testkit.javadsl.TestKit} instead, since 2.5.0 * */ +@Deprecated public class JavaTestKit { /** * Shut down an actor system and wait for termination. @@ -625,6 +626,7 @@ public class JavaTestKit { this.clazz = (Class) clazz; } else throw new IllegalArgumentException("supplied class must either be LogEvent or Throwable"); + } public T exec() { diff --git a/akka-testkit/src/main/scala/akka/testkit/TestKit.scala b/akka-testkit/src/main/scala/akka/testkit/TestKit.scala index d41d26b278..d589cb1bed 100644 --- a/akka-testkit/src/main/scala/akka/testkit/TestKit.scala +++ b/akka-testkit/src/main/scala/akka/testkit/TestKit.scala @@ -946,6 +946,7 @@ trait DefaultTimeout { this: TestKitBase ⇒ * This class is used internal to JavaTestKit and should not be extended * by client code directly. */ +@deprecated(message = "The only usage is in JavaTestKit which is deprecated.", since = "2.5.0") private[testkit] abstract class CachingPartialFunction[A, B <: AnyRef] extends scala.runtime.AbstractPartialFunction[A, B] { import akka.japi.JavaPartialFunction._ diff --git a/akka-testkit/src/main/scala/akka/testkit/javadsl/EventFilter.scala b/akka-testkit/src/main/scala/akka/testkit/javadsl/EventFilter.scala new file mode 100644 index 0000000000..4c52212b3d --- /dev/null +++ b/akka-testkit/src/main/scala/akka/testkit/javadsl/EventFilter.scala @@ -0,0 +1,82 @@ +/** + * Copyright (C) 2016-2017 Lightbend Inc. + */ +package akka.testkit.javadsl + +import java.util.function.Supplier + +import akka.actor.ActorSystem +import akka.event.Logging +import akka.testkit.{ DebugFilter, ErrorFilter, InfoFilter, WarningFilter } + +class EventFilter(clazz: Class[_], system: ActorSystem) { + + require( + classOf[Throwable].isAssignableFrom(clazz) || classOf[Logging.LogEvent].isAssignableFrom(clazz), + "supplied class must either be LogEvent or Throwable" + ) + + private val _clazz: Class[_ <: Logging.LogEvent] = + if (classOf[Throwable].isAssignableFrom(clazz)) + classOf[Logging.Error] + else + clazz.asInstanceOf[Class[_ <: Logging.LogEvent]] + + private var exceptionType: Class[_ <: Throwable] = + if (classOf[Throwable].isAssignableFrom(clazz)) + clazz.asInstanceOf[Class[_ <: Throwable]] + else + null + + private var source: String = null + private var message: String = null + private var pattern: Boolean = false + private var complete: Boolean = false + private var occurrences: Int = Integer.MAX_VALUE + + def intercept[T](code: Supplier[T]): T = { + val filter: akka.testkit.EventFilter = + if (_clazz eq classOf[Logging.Error]) { + if (exceptionType == null) exceptionType = Logging.noCause.getClass + new ErrorFilter(exceptionType, source, message, pattern, complete, occurrences) + } else if (_clazz eq classOf[Logging.Warning]) { + new WarningFilter(source, message, pattern, complete, occurrences) + } else if (_clazz eq classOf[Logging.Info]) { + new InfoFilter(source, message, pattern, complete, occurrences) + } else if (_clazz eq classOf[Logging.Debug]) { + new DebugFilter(source, message, pattern, complete, occurrences) + } else throw new IllegalArgumentException("unknown LogLevel " + clazz) + + filter.intercept(code.get)(system) + } + + def message(msg: String): EventFilter = { + message = msg + pattern = false + complete = true + this + } + + def startsWith(msg: String): EventFilter = { + message = msg + pattern = false + complete = false + this + } + + def matches(regex: String): EventFilter = { + message = regex + pattern = true + this + } + + def from(source: String): EventFilter = { + this.source = source + this + } + + def occurrences(number: Int): EventFilter = { + occurrences = number + this + } +} diff --git a/akka-testkit/src/main/scala/akka/testkit/javadsl/TestKit.scala b/akka-testkit/src/main/scala/akka/testkit/javadsl/TestKit.scala new file mode 100644 index 0000000000..217a9a5438 --- /dev/null +++ b/akka-testkit/src/main/scala/akka/testkit/javadsl/TestKit.scala @@ -0,0 +1,487 @@ +/** + * Copyright (C) 2016-2017 Lightbend Inc. + */ +package akka.testkit.javadsl + +import java.util.function.{ Function ⇒ JFunction, Supplier } +import java.util.{ List ⇒ JList } + +import akka.actor._ +import akka.japi.JavaPartialFunction +import akka.testkit.{ TestActor, TestProbe, _ } + +import scala.annotation.varargs +import scala.collection.JavaConverters._ +import scala.concurrent.duration._ + +/** + * Java API: Test kit for testing actors. Inheriting from this class enables + * reception of replies from actors, which are queued by an internal actor and + * can be examined using the `expectMsg...` methods. Assertions and + * bounds concerning timing are available in the form of `Within` + * blocks. + * + * Beware of two points: + * + * - the ActorSystem passed into the constructor needs to be shutdown, + * otherwise thread pools and memory will be leaked - this trait is not + * thread-safe (only one actor with one queue, one stack of `Within` + * blocks); take care not to run tests within a single test class instance in + * parallel. + * + * - It should be noted that for CI servers and the like all maximum Durations + * are scaled using the `dilated` method, which uses the + * TestKitExtension.Settings.TestTimeFactor settable via akka.conf entry + * "akka.test.timefactor". + * + * + */ +class TestKit(system: ActorSystem) { + + /** + * All the Java APIs are delegated to TestProbe + */ + private val tp: TestProbe = new TestProbe(system) + + /** + * ActorRef of the test actor. Access is provided to enable e.g. registration + * as message target. + */ + def getTestActor: ActorRef = tp.testActor + + /** + * Shorthand to get the testActor. + */ + def getRef: ActorRef = getTestActor + + def getSystem: ActorSystem = tp.system + + def duration(s: String): FiniteDuration = { + Duration.apply(s) match { + case fd: FiniteDuration ⇒ fd + case _ ⇒ throw new IllegalArgumentException("duration() is only for finite durations, use Duration.Inf() and friends") + } + } + + /** + * Scale timeouts (durations) during tests with the configured + */ + def dilated(d: FiniteDuration): FiniteDuration = d.dilated(getSystem) + + /** + * Query queue status. + */ + def msgAvailable: Boolean = tp.msgAvailable + + /** + * Get the last sender of the TestProbe + */ + def getLastSender: ActorRef = tp.lastSender + + /** + * Send message to an actor while using the probe's TestActor as the sender. + * Replies will be available for inspection with all of TestKit's assertion + * methods. + */ + def send(actor: ActorRef, msg: AnyRef): Unit = actor.tell(msg, tp.ref) + + /** + * Forward this message as if in the TestActor's receive method with self.forward. + */ + def forward(actor: ActorRef): Unit = actor.tell(tp.lastMessage.msg, tp.lastMessage.sender) + + /** + * Send message to the sender of the last dequeued message. + */ + def reply(msg: AnyRef): Unit = tp.lastSender.tell(msg, tp.ref) + + /** + * Have the testActor watch someone (i.e. `context.watch(...)`). + */ + def watch(ref: ActorRef): ActorRef = tp.watch(ref) + + /** + * Have the testActor stop watching someone (i.e. `context.unwatch(...)`). + */ + def unwatch(ref: ActorRef): ActorRef = tp.unwatch(ref) + + /** + * Ignore all messages in the test actor for which the given partial + * function returns true. + */ + def ignoreMsg(pf: JFunction[Any, Boolean]): Unit = { + tp.ignoreMsg(new JavaPartialFunction[Any, Boolean] { + @throws(classOf[Exception]) + override def apply(x: Any, isCheck: Boolean): Boolean = pf.apply(x) + }) + } + + /** + * Stop ignoring messages in the test actor. + */ + def ignoreNoMsg(): Unit = tp.ignoreNoMsg() + + /** + * Install an AutoPilot to drive the testActor: the AutoPilot will be run + * for each received message and can be used to send or forward messages, + * etc. Each invocation must return the AutoPilot for the next round. + */ + def setAutoPilot(pilot: TestActor.AutoPilot): Unit = tp.setAutoPilot(pilot) + + /** + * Obtain time remaining for execution of the innermost enclosing `within` + * block or throw an [[AssertionError]] if no `within` block surrounds this + * call. + */ + def remaining: FiniteDuration = tp.remaining + + /** + * Obtain time remaining for execution of the innermost enclosing `within` + * block or missing that it returns the given duration. + */ + def remainingOr(fd: FiniteDuration): FiniteDuration = tp.remainingOr(fd) + + /** + * Obtain time remaining for execution of the innermost enclosing `within` + * block or missing that it returns the properly dilated default for this + * case from settings (key "akka.test.single-expect-default"). + */ + def remainingOrDefault: FiniteDuration = tp.remainingOrDefault + + /** + * Execute code block while bounding its execution time between `min` and + * `max`. `within` blocks may be nested. All methods in this trait which + * take maximum wait times are available in a version which implicitly uses + * the remaining time governed by the innermost enclosing `within` block. + * + * Note that the timeout is scaled using Duration.dilated, which uses the + * configuration entry "akka.test.timefactor", while the min Duration is not. + * + * {{{ + * + * within(duration("50 millis"), () -> { + * test.tell("ping"); + * return expectMsgClass(String.class); + * }); + * + * }}} + */ + def within[T](min: FiniteDuration, max: FiniteDuration, f: Supplier[T]): T = tp.within(min, max)(f.get) + + /** + * Same as calling `within(0 seconds, max, f)`. + */ + def within[T](max: FiniteDuration, f: Supplier[T]): T = tp.within(max)(f.get) + + def awaitCond(p: Supplier[Boolean]): Unit = tp.awaitCond(p.get) + + def awaitCond(max: Duration, p: Supplier[Boolean]): Unit = tp.awaitCond(p.get, max) + + def awaitCond(max: Duration, interval: Duration, p: Supplier[Boolean]): Unit = + tp.awaitCond(p.get, max, interval) + + /** + * Await until the given condition evaluates to `true` or the timeout + * expires, whichever comes first. + * + * Note that the timeout is scaled using Duration.dilated, + * which uses the configuration entry "akka.test.timefactor". + */ + def awaitCond(max: Duration, interval: Duration, message: String, p: Supplier[Boolean]): Unit = + tp.awaitCond(p.get, max, interval, message) + + def awaitAssert(a: Supplier[Any]): Unit = tp.awaitAssert(a.get) + + def awaitAssert(max: Duration, a: Supplier[Any]): Unit = tp.awaitAssert(a.get, max) + + /** + * Await until the given assert does not throw an exception or the timeout + * expires, whichever comes first. If the timeout expires the last exception + * is thrown. + * + * Note that the timeout is scaled using Duration.dilated, + * which uses the configuration entry "akka.test.timefactor". + */ + def awaitAssert(max: Duration, interval: Duration, a: Supplier[Any]): Unit = tp.awaitAssert(a.get, max, interval) + + /** + * Same as `expectMsg(remainingOrDefault, obj)`, but correctly treating the timeFactor. + */ + def expectMsgEquals[T](obj: T): T = tp.expectMsg(obj) + + /** + * Receive one message from the test actor and assert that it equals the given + * object. Wait time is bounded by the given duration, with an + * AssertionFailure being thrown in case of timeout. + * + * @return the received object + */ + def expectMsgEquals[T](max: FiniteDuration, obj: T): T = tp.expectMsg(max, obj) + + /** + * Same as `expectMsg(remainingOrDefault, obj)`, but correctly treating the timeFactor. + */ + def expectMsg[T](obj: T): T = tp.expectMsg(obj) + + /** + * Receive one message from the test actor and assert that it equals the + * given object. Wait time is bounded by the given duration, with an + * AssertionFailure being thrown in case of timeout. + */ + def expectMsg[T](max: FiniteDuration, obj: T): T = tp.expectMsg(max, obj) + + /** + * Receive one message from the test actor and assert that it equals the + * given object. Wait time is bounded by the given duration, with an + * AssertionFailure being thrown in case of timeout. + */ + def expectMsg[T](max: FiniteDuration, obj: T, hint: String): T = tp.expectMsg(max, hint, obj) + + /** + * Receive one message from the test actor and assert that the given + * partial function accepts it. Wait time is bounded by the given duration, + * with an AssertionFailure being thrown in case of timeout. + * + * Use this variant to implement more complicated or conditional + * processing. + */ + def expectMsgPF[T](hint: String, f: JFunction[Any, T]): T = { + tp.expectMsgPF(hint = hint)(new JavaPartialFunction[Any, T] { + @throws(classOf[Exception]) + override def apply(x: Any, isCheck: Boolean): T = f.apply(x) + }) + } + + /** + * Receive one message from the test actor and assert that the given + * partial function accepts it. Wait time is bounded by the given duration, + * with an AssertionFailure being thrown in case of timeout. + * + * Use this variant to implement more complicated or conditional + * processing. + */ + def expectMsgPF[T](max: Duration, hint: String, f: JFunction[Any, T]): T = { + tp.expectMsgPF(max, hint)(new JavaPartialFunction[Any, T] { + @throws(classOf[Exception]) + override def apply(x: Any, isCheck: Boolean): T = f.apply(x) + }) + } + + /** + * Same as `expectMsgClass(remainingOrDefault, c)`, but correctly treating the timeFactor. + */ + def expectMsgClass[T](c: Class[T]): T = tp.expectMsgClass(c) + + /** + * Receive one message from the test actor and assert that it conforms to + * the given class. Wait time is bounded by the given duration, with an + * AssertionFailure being thrown in case of timeout. + */ + def expectMsgClass[T](max: FiniteDuration, c: Class[T]): T = tp.expectMsgClass(max, c) + + /** + * Same as `expectMsgAnyOf(remainingOrDefault, obj...)`, but correctly treating the timeFactor. + */ + @varargs + def expectMsgAnyOf[T](objs: T*): T = tp.expectMsgAnyOf(objs: _*) + + /** + * Receive one message from the test actor and assert that it equals one of + * the given objects. Wait time is bounded by the given duration, with an + * AssertionFailure being thrown in case of timeout. + */ + @varargs + def expectMsgAnyOf[T](max: FiniteDuration, objs: T*): T = tp.expectMsgAnyOf(max, objs: _*) + + /** + * Same as `expectMsgAllOf(remainingOrDefault, obj...)`, but correctly treating the timeFactor. + */ + @varargs + def expectMsgAllOf[T](objs: T*): JList[T] = tp.expectMsgAllOf(objs: _*).asJava + + /** + * Receive a number of messages from the test actor matching the given + * number of objects and assert that for each given object one is received + * which equals it and vice versa. This construct is useful when the order in + * which the objects are received is not fixed. Wait time is bounded by the + * given duration, with an AssertionFailure being thrown in case of timeout. + */ + @varargs + def expectMsgAllOf[T](max: FiniteDuration, objs: T*): JList[T] = tp.expectMsgAllOf(max, objs: _*).asJava + + /** + * Same as `expectMsgAnyClassOf(remainingOrDefault, obj...)`, but correctly treating the timeFactor. + */ + + @varargs + def expectMsgAnyClassOf[T](objs: Class[_]*): T = tp.expectMsgAnyClassOf(objs: _*).asInstanceOf[T] + + /** + * Receive one message from the test actor and assert that it conforms to + * one of the given classes. Wait time is bounded by the given duration, + * with an AssertionFailure being thrown in case of timeout. + */ + @varargs + def expectMsgAnyClassOf[T](max: FiniteDuration, objs: Class[_]*): T = tp.expectMsgAnyClassOf(max, objs: _*).asInstanceOf[T] + + /** + * Same as `expectNoMsg(remainingOrDefault)`, but correctly treating the timeFactor. + */ + def expectNoMsg(): Unit = tp.expectNoMsg() + + /** + * Assert that no message is received for the specified time. + */ + def expectNoMsg(max: FiniteDuration): Unit = tp.expectNoMsg(max) + + /** + * Receive one message from the test actor and assert that it is the Terminated message of the given ActorRef. + * Wait time is bounded by the given duration, with an AssertionFailure being thrown in case of timeout. + */ + def expectTerminated(max: Duration, target: ActorRef): Terminated = tp.expectTerminated(target, max) + + /** + * Receive one message from the test actor and assert that it is the Terminated message of the given ActorRef. + * Wait time is bounded by the given duration, with an AssertionFailure being thrown in case of timeout. + */ + def expectTerminated(target: ActorRef): Terminated = tp.expectTerminated(target) + + /** + * Hybrid of expectMsgPF and receiveWhile: receive messages while the + * partial function matches and returns false. Use it to ignore certain + * messages while waiting for a specific message. + * + * @return the last received message, i.e. the first one for which the + * partial function returned true + */ + def fishForMessage(max: Duration, hint: String, f: JFunction[Any, Boolean]): Any = { + tp.fishForMessage(max, hint)(new JavaPartialFunction[Any, Boolean] { + @throws(classOf[Exception]) + override def apply(x: Any, isCheck: Boolean): Boolean = f.apply(x) + }) + } + + /** + * Same as `fishForMessage`, but gets a different partial function and returns properly typed message. + */ + def fishForSpecificMessage[T](max: Duration, hint: String, f: JFunction[Any, T]): T = { + tp.fishForSpecificMessage(max, hint)(new JavaPartialFunction[Any, T] { + @throws(classOf[Exception]) + override def apply(x: Any, isCheck: Boolean): T = f.apply(x) + }) + } + + /** + * Same as `receiveN(n, remaining)` but correctly taking into account + * Duration.timeFactor. + */ + def receiveN(n: Int): JList[AnyRef] = + tp.receiveN(n).asJava + + /** + * Receive N messages in a row before the given deadline. + */ + def receiveN(n: Int, max: FiniteDuration): JList[AnyRef] = + tp.receiveN(n, max).asJava + + /** + * Receive one message from the internal queue of the TestActor. If the given + * duration is zero, the queue is polled (non-blocking). + * + * This method does NOT automatically scale its Duration parameter! + */ + def receiveOne(max: Duration): AnyRef = tp.receiveOne(max) + + /** + * Receive a series of messages until one does not match the given partial + * function or the idle timeout is met (disabled by default) or the overall + * maximum duration is elapsed or expected messages count is reached. + * Returns the sequence of messages. + * + * Note that it is not an error to hit the `max` duration in this case. + * + * One possible use of this method is for testing whether messages of + * certain characteristics are generated at a certain rate: + * + */ + def receiveWhile[T](max: Duration, idle: Duration, messages: Int, f: JFunction[AnyRef, T]): JList[T] = { + tp.receiveWhile(max, idle, messages)(new JavaPartialFunction[AnyRef, T] { + @throws(classOf[Exception]) + override def apply(x: AnyRef, isCheck: Boolean): T = f.apply(x) + }).asJava + } + + def receiveWhile[T](max: Duration, f: JFunction[AnyRef, T]): JList[T] = { + tp.receiveWhile(max = max)(new JavaPartialFunction[AnyRef, T] { + @throws(classOf[Exception]) + override def apply(x: AnyRef, isCheck: Boolean): T = f.apply(x) + }).asJava + } + + /** + * Spawns an actor as a child of this test actor, and returns the child's ActorRef. + */ + def childActorOf(props: Props, name: String, supervisorStrategy: SupervisorStrategy) = + tp.childActorOf(props, name, supervisorStrategy) + + /** + * Spawns an actor as a child of this test actor with an auto-generated name, and returns the child's ActorRef. + */ + def childActorOf(props: Props, supervisorStrategy: SupervisorStrategy) = + tp.childActorOf(props, supervisorStrategy) + + /** + * Spawns an actor as a child of this test actor with a stopping supervisor strategy, and returns the child's ActorRef. + */ + def childActorOf(props: Props, name: String) = tp.childActorOf(props, name) + + /** + * Spawns an actor as a child of this test actor with an auto-generated name and stopping supervisor strategy, returning the child's ActorRef. + */ + def childActorOf(props: Props) = tp.childActorOf(props) + +} + +object TestKit { + + /** + * Shut down an actor system and wait for termination. + * On failure debug output will be logged about the remaining actors in the system. + * + * If verifySystemShutdown is true, then an exception will be thrown on failure. + */ + def shutdownActorSystem( + actorSystem: ActorSystem, + duration: Duration, + verifySystemShutdown: Boolean): Unit = { + + akka.testkit.TestKit.shutdownActorSystem(actorSystem, duration, verifySystemShutdown) + } + + /** + * Shut down an actor system and wait for termination. + * On failure debug output will be logged about the remaining actors in the system. + */ + def shutdownActorSystem(actorSystem: ActorSystem): Unit = { + shutdownActorSystem(actorSystem, 10.seconds, false) + } + + /** + * Shut down an actor system and wait for termination. + * On failure debug output will be logged about the remaining actors in the system. + */ + def shutdownActorSystem(actorSystem: ActorSystem, duration: Duration): Unit = { + shutdownActorSystem(actorSystem, duration, false) + } + + /** + * Shut down an actor system and wait for termination. + * On failure debug output will be logged about the remaining actors in the system. + * + * If verifySystemShutdown is true, then an exception will be thrown on failure. + */ + def shutdownActorSystem(actorSystem: ActorSystem, verifySystemShutdown: Boolean): Unit = { + shutdownActorSystem(actorSystem, 10.seconds, verifySystemShutdown) + } + +} diff --git a/akka-testkit/src/test/java/akka/testkit/AkkaJUnitActorSystemResource.java b/akka-testkit/src/test/java/akka/testkit/AkkaJUnitActorSystemResource.java index 3435c856fc..2012b58172 100644 --- a/akka-testkit/src/test/java/akka/testkit/AkkaJUnitActorSystemResource.java +++ b/akka-testkit/src/test/java/akka/testkit/AkkaJUnitActorSystemResource.java @@ -5,6 +5,7 @@ package akka.testkit; import akka.actor.ActorSystem; +import akka.testkit.javadsl.TestKit; import com.typesafe.config.Config; import org.junit.rules.ExternalResource; @@ -80,7 +81,7 @@ public class AkkaJUnitActorSystemResource extends ExternalResource { @Override protected void after() { - JavaTestKit.shutdownActorSystem(system); + TestKit.shutdownActorSystem(system); system = null; }