2011-10-05 17:41:00 +02:00
|
|
|
package akka.docs.stm
|
|
|
|
|
|
|
|
|
|
import org.scalatest.{ BeforeAndAfterAll, WordSpec }
|
|
|
|
|
import org.scalatest.matchers.MustMatchers
|
|
|
|
|
import akka.testkit._
|
|
|
|
|
import akka.util.duration._
|
|
|
|
|
|
|
|
|
|
//#imports
|
|
|
|
|
import akka.actor.Actor
|
|
|
|
|
import akka.event.EventHandler
|
|
|
|
|
|
|
|
|
|
//#imports
|
|
|
|
|
|
|
|
|
|
//#my-actor
|
|
|
|
|
class MyActor extends Actor {
|
|
|
|
|
def receive = {
|
2011-10-13 13:53:09 +02:00
|
|
|
case "test" ⇒ app.eventHandler.info(this, "received test")
|
|
|
|
|
case _ ⇒ app.eventHandler.info(this, "received unknown message")
|
2011-10-05 17:41:00 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#my-actor
|
|
|
|
|
|
2011-10-12 15:24:22 +02:00
|
|
|
class ActorDocSpec extends AkkaSpec {
|
2011-10-05 17:41:00 +02:00
|
|
|
|
2011-10-12 15:24:22 +02:00
|
|
|
"creating actor with AkkaSpec.createActor" in {
|
2011-10-05 17:41:00 +02:00
|
|
|
//#creating-actorOf
|
2011-10-12 15:24:22 +02:00
|
|
|
val myActor = createActor[MyActor]
|
2011-10-05 17:41:00 +02:00
|
|
|
//#creating-actorOf
|
|
|
|
|
|
|
|
|
|
// testing the actor
|
|
|
|
|
|
2011-10-13 13:53:09 +02:00
|
|
|
// TODO: convert docs to AkkaSpec(Configuration(...))
|
|
|
|
|
app.eventHandler.notify(TestEvent.Mute(EventFilter.custom {
|
2011-10-05 17:41:00 +02:00
|
|
|
case e: EventHandler.Info ⇒ true
|
|
|
|
|
case _ ⇒ false
|
|
|
|
|
}))
|
2011-10-13 13:53:09 +02:00
|
|
|
app.eventHandler.addListener(testActor)
|
|
|
|
|
val eventLevel = app.eventHandler.level
|
|
|
|
|
app.eventHandler.level = EventHandler.InfoLevel
|
2011-10-05 17:41:00 +02:00
|
|
|
|
|
|
|
|
myActor ! "test"
|
|
|
|
|
expectMsgPF(1 second) { case EventHandler.Info(_, "received test") ⇒ true }
|
|
|
|
|
|
|
|
|
|
myActor ! "unknown"
|
|
|
|
|
expectMsgPF(1 second) { case EventHandler.Info(_, "received unknown message") ⇒ true }
|
|
|
|
|
|
2011-10-13 13:53:09 +02:00
|
|
|
app.eventHandler.level = eventLevel
|
|
|
|
|
app.eventHandler.removeListener(testActor)
|
|
|
|
|
app.eventHandler.notify(TestEvent.UnMuteAll)
|
2011-10-05 17:41:00 +02:00
|
|
|
|
|
|
|
|
myActor.stop()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"creating actor with constructor" in {
|
|
|
|
|
class MyActor(arg: String) extends Actor {
|
|
|
|
|
def receive = { case _ ⇒ () }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//#creating-constructor
|
|
|
|
|
// allows passing in arguments to the MyActor constructor
|
2011-10-12 15:24:22 +02:00
|
|
|
val myActor = createActor(new MyActor("..."))
|
2011-10-05 17:41:00 +02:00
|
|
|
//#creating-constructor
|
|
|
|
|
|
|
|
|
|
myActor.stop()
|
|
|
|
|
}
|
|
|
|
|
}
|