2018-10-29 17:19:37 +08:00
|
|
|
/*
|
2019-01-02 18:55:26 +08:00
|
|
|
* Copyright (C) 2009-2019 Lightbend Inc. <https://www.lightbend.com>
|
2014-06-04 20:51:12 +02:00
|
|
|
*/
|
2018-03-13 23:45:55 +09:00
|
|
|
|
2014-06-04 20:51:12 +02:00
|
|
|
package akka.testkit
|
|
|
|
|
|
2015-03-24 18:39:43 +02:00
|
|
|
import akka.actor.{ Props, Actor, ActorRef }
|
2014-06-04 20:51:12 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A collection of common actor patterns used in tests.
|
|
|
|
|
*/
|
|
|
|
|
object TestActors {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* EchoActor sends back received messages (unmodified).
|
|
|
|
|
*/
|
|
|
|
|
class EchoActor extends Actor {
|
|
|
|
|
override def receive = {
|
|
|
|
|
case message ⇒ sender() ! message
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-06-23 11:58:54 +02:00
|
|
|
/**
|
|
|
|
|
* BlackholeActor does nothing for incoming messages, its like a blackhole.
|
|
|
|
|
*/
|
|
|
|
|
class BlackholeActor extends Actor {
|
|
|
|
|
override def receive = {
|
2017-10-06 10:30:28 +02:00
|
|
|
case _ ⇒ // ignore...
|
2016-06-23 11:58:54 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-03-24 18:39:43 +02:00
|
|
|
/**
|
|
|
|
|
* 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
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-06-04 20:51:12 +02:00
|
|
|
val echoActorProps = Props[EchoActor]()
|
2016-06-23 11:58:54 +02:00
|
|
|
val blackholeProps = Props[BlackholeActor]()
|
2015-03-24 18:39:43 +02:00
|
|
|
def forwardActorProps(ref: ActorRef) = Props(classOf[ForwardActor], ref)
|
2014-06-04 20:51:12 +02:00
|
|
|
|
|
|
|
|
}
|