2013-12-11 10:41:12 +01:00
|
|
|
/**
|
2016-02-23 12:58:39 +01:00
|
|
|
* Copyright (C) 2009-2016 Lightbend Inc. <http://www.lightbend.com>
|
2013-12-11 10:41:12 +01:00
|
|
|
*/
|
|
|
|
|
package akka.remote
|
|
|
|
|
|
|
|
|
|
import akka.testkit.AkkaSpec
|
|
|
|
|
import akka.actor.Actor
|
|
|
|
|
import akka.actor.ActorLogging
|
|
|
|
|
import akka.actor.Props
|
|
|
|
|
import akka.event.Logging
|
|
|
|
|
import akka.testkit.TestProbe
|
|
|
|
|
import akka.actor.Deploy
|
|
|
|
|
import akka.event.Logging.Info
|
|
|
|
|
import akka.actor.ExtendedActorSystem
|
|
|
|
|
|
|
|
|
|
object LogSourceSpec {
|
|
|
|
|
class Reporter extends Actor with ActorLogging {
|
|
|
|
|
def receive = {
|
|
|
|
|
case s: String ⇒
|
|
|
|
|
log.info(s)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class LogSourceSpec extends AkkaSpec(
|
|
|
|
|
"""
|
|
|
|
|
akka.loglevel = INFO
|
2016-06-10 15:04:13 +02:00
|
|
|
akka.actor.provider = remote
|
2013-12-11 10:41:12 +01:00
|
|
|
akka.remote.netty.tcp.port = 0
|
|
|
|
|
""") {
|
|
|
|
|
|
|
|
|
|
import LogSourceSpec._
|
|
|
|
|
|
|
|
|
|
val reporter = system.actorOf(Props[Reporter], "reporter")
|
|
|
|
|
val logProbe = TestProbe()
|
|
|
|
|
system.eventStream.subscribe(system.actorOf(Props(new Actor {
|
|
|
|
|
def receive = {
|
|
|
|
|
case i @ Info(_, _, msg: String) if msg contains "hello" ⇒ logProbe.ref ! i
|
|
|
|
|
case _ ⇒
|
|
|
|
|
}
|
|
|
|
|
}).withDeploy(Deploy.local), "logSniffer"), classOf[Logging.Info])
|
|
|
|
|
|
|
|
|
|
"Log events" must {
|
|
|
|
|
|
2013-12-17 14:25:56 +01:00
|
|
|
"should include host and port for local LogSource" in {
|
2013-12-11 10:41:12 +01:00
|
|
|
reporter ! "hello"
|
|
|
|
|
val info = logProbe.expectMsgType[Info]
|
2015-01-16 11:09:59 +01:00
|
|
|
info.message should ===("hello")
|
2013-12-11 10:41:12 +01:00
|
|
|
val defaultAddress = system.asInstanceOf[ExtendedActorSystem].provider.getDefaultAddress
|
2013-12-17 14:25:56 +01:00
|
|
|
info.logSource should include(defaultAddress.toString)
|
2013-12-11 10:41:12 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|