2012-05-14 14:26:32 +02:00
|
|
|
/**
|
2013-01-09 01:47:48 +01:00
|
|
|
* Copyright (C) 2009-2013 Typesafe Inc. <http://www.typesafe.com>
|
2012-05-14 14:26:32 +02:00
|
|
|
*/
|
|
|
|
|
package akka.remote
|
|
|
|
|
|
|
|
|
|
import akka.actor.Actor
|
|
|
|
|
import akka.actor.ActorRef
|
|
|
|
|
import akka.actor.Props
|
|
|
|
|
import akka.pattern.ask
|
2012-09-12 15:12:13 +02:00
|
|
|
import testkit.{STMultiNodeSpec, MultiNodeConfig, MultiNodeSpec}
|
2012-05-23 09:26:20 +02:00
|
|
|
import akka.testkit._
|
2012-05-14 14:26:32 +02:00
|
|
|
|
2012-05-29 08:28:54 +02:00
|
|
|
object LookupRemoteActorMultiJvmSpec extends MultiNodeConfig {
|
2012-05-14 14:26:32 +02:00
|
|
|
|
2012-08-27 14:47:32 +02:00
|
|
|
class SomeActor extends Actor {
|
2012-05-14 14:26:32 +02:00
|
|
|
def receive = {
|
|
|
|
|
case "identify" ⇒ sender ! self
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2012-05-24 11:40:05 +02:00
|
|
|
commonConfig(debugConfig(on = false))
|
2012-05-23 09:26:20 +02:00
|
|
|
|
|
|
|
|
val master = role("master")
|
|
|
|
|
val slave = role("slave")
|
2012-05-14 14:26:32 +02:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2012-05-29 08:28:54 +02:00
|
|
|
class LookupRemoteActorMultiJvmNode1 extends LookupRemoteActorSpec
|
|
|
|
|
class LookupRemoteActorMultiJvmNode2 extends LookupRemoteActorSpec
|
2012-05-23 09:26:20 +02:00
|
|
|
|
2012-05-29 08:28:54 +02:00
|
|
|
class LookupRemoteActorSpec extends MultiNodeSpec(LookupRemoteActorMultiJvmSpec)
|
2012-09-12 15:12:13 +02:00
|
|
|
with STMultiNodeSpec with ImplicitSender with DefaultTimeout {
|
2012-05-29 08:28:54 +02:00
|
|
|
import LookupRemoteActorMultiJvmSpec._
|
2012-05-14 14:26:32 +02:00
|
|
|
|
2012-05-23 09:26:20 +02:00
|
|
|
def initialParticipants = 2
|
|
|
|
|
|
|
|
|
|
runOn(master) {
|
2012-05-14 14:26:32 +02:00
|
|
|
system.actorOf(Props[SomeActor], "service-hello")
|
|
|
|
|
}
|
|
|
|
|
|
2012-05-23 09:26:20 +02:00
|
|
|
"Remoting" must {
|
2012-05-29 14:30:15 +02:00
|
|
|
"lookup remote actor" taggedAs LongRunningTest in {
|
2012-05-23 09:26:20 +02:00
|
|
|
runOn(slave) {
|
|
|
|
|
val hello = system.actorFor(node(master) / "user" / "service-hello")
|
|
|
|
|
hello.isInstanceOf[RemoteActorRef] must be(true)
|
|
|
|
|
val masterAddress = testConductor.getAddressFor(master).await
|
|
|
|
|
(hello ? "identify").await.asInstanceOf[ActorRef].path.address must equal(masterAddress)
|
|
|
|
|
}
|
2012-06-15 14:39:47 +02:00
|
|
|
enterBarrier("done")
|
2012-05-23 09:26:20 +02:00
|
|
|
}
|
2012-05-14 14:26:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2012-05-23 09:26:20 +02:00
|
|
|
|