2018-10-29 17:19:37 +08:00
|
|
|
/*
|
2021-01-08 17:55:38 +01:00
|
|
|
* Copyright (C) 2009-2021 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
|
|
|
|
|
|
2021-02-10 13:20:29 +01:00
|
|
|
import akka.actor.{ Actor, ActorRef, Props }
|
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 = {
|
2019-02-09 15:25:39 +01:00
|
|
|
case message => sender() ! message
|
2014-06-04 20:51:12 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
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 = {
|
2019-02-09 15:25:39 +01: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 = {
|
2019-03-11 10:38:24 +01:00
|
|
|
case message => ref.forward(message)
|
2015-03-24 18:39:43 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
}
|