From 9869c2355eb383d26bfb621da495041772ba2195 Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Tue, 15 May 2018 11:52:07 +0200 Subject: [PATCH] Fix Java Doc test for actorRefWithAck (#25079) --- .../java/jdocs/stream/IntegrationDocTest.java | 33 +++++++++++++++---- .../docs/stream/IntegrationDocSpec.scala | 3 +- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/akka-docs/src/test/java/jdocs/stream/IntegrationDocTest.java b/akka-docs/src/test/java/jdocs/stream/IntegrationDocTest.java index 16fdbf11cf..bd839a9157 100644 --- a/akka-docs/src/test/java/jdocs/stream/IntegrationDocTest.java +++ b/akka-docs/src/test/java/jdocs/stream/IntegrationDocTest.java @@ -311,7 +311,9 @@ public class IntegrationDocTest extends AbstractJavaTest { //#ask-actor //#actorRefWithAck-actor - static class Ack {} + enum Ack { + INSTANCE; + } static class StreamInitialized {} static class StreamCompleted {} @@ -324,22 +326,32 @@ public class IntegrationDocTest extends AbstractJavaTest { static class AckingReceiver extends AbstractLoggingActor { + private final ActorRef probe; + + public AckingReceiver(ActorRef probe) { + this.probe = probe; + } + @Override public Receive createReceive() { return receiveBuilder() .match(StreamInitialized.class, init -> { log().info("Stream initialized"); - sender().tell(new Ack(), self()); + probe.tell("Stream initialized", getSelf()); + sender().tell(Ack.INSTANCE, self()); }) .match(String.class, element -> { log().info("Received element: {}", element); - sender().tell(new Ack(), self()); + probe.tell(element, getSelf()); + sender().tell(Ack.INSTANCE, self()); }) .match(StreamCompleted.class, completed -> { log().info("Stream completed"); + probe.tell("Stream completed", getSelf()); }) .match(StreamFailure.class, failed -> { log().error(failed.getCause(),"Stream failed!"); + probe.tell("Stream failed!", getSelf()); }) .build(); } @@ -368,12 +380,14 @@ public class IntegrationDocTest extends AbstractJavaTest { Source words = Source.from(Arrays.asList("hello", "hi")); + final TestKit probe = new TestKit(system); + ActorRef receiver = - system.actorOf(Props.create(AckingReceiver.class)); + system.actorOf(Props.create(AckingReceiver.class, probe.getRef())); Sink sink = Sink.actorRefWithAck(receiver, new StreamInitialized(), - new Ack(), + Ack.INSTANCE, new StreamCompleted(), ex -> new StreamFailure(ex) ); @@ -381,6 +395,11 @@ public class IntegrationDocTest extends AbstractJavaTest { words .map(el -> el.toLowerCase()) .runWith(sink, mat); + + probe.expectMsg("Stream initialized"); + probe.expectMsg("hello"); + probe.expectMsg("hi"); + probe.expectMsg("Stream completed"); //#actorRefWithAck } @@ -388,9 +407,9 @@ public class IntegrationDocTest extends AbstractJavaTest { @Test public void callingExternalServiceWithMapAsync() throws Exception { new TestKit(system) { - final TestProbe probe = new TestProbe(system); + final TestKit probe = new TestKit(system); final AddressSystem addressSystem = new AddressSystem(); - final EmailServer emailServer = new EmailServer(probe.ref()); + final EmailServer emailServer = new EmailServer(probe.getRef()); { //#tweet-authors diff --git a/akka-docs/src/test/scala/docs/stream/IntegrationDocSpec.scala b/akka-docs/src/test/scala/docs/stream/IntegrationDocSpec.scala index 5514275abe..10f88338a4 100644 --- a/akka-docs/src/test/scala/docs/stream/IntegrationDocSpec.scala +++ b/akka-docs/src/test/scala/docs/stream/IntegrationDocSpec.scala @@ -224,11 +224,12 @@ class IntegrationDocSpec extends AkkaSpec(IntegrationDocSpec.config) { words .map(_.toLowerCase) .runWith(sink) - //#actorRefWithAck + probe.expectMsg("Stream initialized!") probe.expectMsg("hello") probe.expectMsg("hi") probe.expectMsg("Stream completed!") + //#actorRefWithAck } //#actorRefWithAck-actor