From 6b1b8316c7ac14bc62f7030c2da9438a03cb7f0d Mon Sep 17 00:00:00 2001 From: Ekin Gecikligun Date: Tue, 24 Mar 2015 18:39:43 +0200 Subject: [PATCH] +tes #17023 Adding ForwardActor among test-kit actors --- .../src/main/scala/akka/testkit/TestActors.scala | 14 +++++++++++++- .../test/scala/akka/testkit/TestActorsSpec.scala | 13 ++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/akka-testkit/src/main/scala/akka/testkit/TestActors.scala b/akka-testkit/src/main/scala/akka/testkit/TestActors.scala index fb6469d7e4..e824f9c2b7 100644 --- a/akka-testkit/src/main/scala/akka/testkit/TestActors.scala +++ b/akka-testkit/src/main/scala/akka/testkit/TestActors.scala @@ -3,7 +3,7 @@ */ package akka.testkit -import akka.actor.{ Props, Actor } +import akka.actor.{ Props, Actor, ActorRef } /** * A collection of common actor patterns used in tests. @@ -19,6 +19,18 @@ object TestActors { } } + /** + * ForwardActor forwards all messages as-is to specified ActorRef. + * + * @param ref target ActorRef to forward messages to + */ + class ForwardActor(ref: ActorRef) extends Actor { + override def receive = { + case message ⇒ ref forward message + } + } + val echoActorProps = Props[EchoActor]() + def forwardActorProps(ref: ActorRef) = Props(classOf[ForwardActor], ref) } diff --git a/akka-testkit/src/test/scala/akka/testkit/TestActorsSpec.scala b/akka-testkit/src/test/scala/akka/testkit/TestActorsSpec.scala index 21dd3c74a8..3d8d63198a 100644 --- a/akka-testkit/src/test/scala/akka/testkit/TestActorsSpec.scala +++ b/akka-testkit/src/test/scala/akka/testkit/TestActorsSpec.scala @@ -5,7 +5,7 @@ package akka.testkit class TestActorsSpec extends AkkaSpec with ImplicitSender { - import TestActors.echoActorProps + import TestActors.{ echoActorProps, forwardActorProps } "A EchoActor" must { "send back messages unchanged" in { @@ -17,4 +17,15 @@ class TestActorsSpec extends AkkaSpec with ImplicitSender { expectMsg(message) } } + + "A ForwardActor" must { + "forward messages to target actor" in { + val message = "forward me" + val forward = system.actorOf(forwardActorProps(testActor)) + + forward ! message + + expectMsg(message) + } + } }