Adding a multi-recipient test to the durable mailbox spec
This commit is contained in:
parent
42a80ec8b1
commit
573892de94
1 changed files with 31 additions and 5 deletions
|
|
@ -18,6 +18,14 @@ object DurableMailboxSpecActorFactory {
|
|||
def receive = { case x ⇒ sender ! x }
|
||||
}
|
||||
|
||||
class AccumulatorActor extends Actor {
|
||||
var num = 0l
|
||||
def receive = {
|
||||
case x: Int ⇒ num += x
|
||||
case "sum" ⇒ sender ! num
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -47,11 +55,9 @@ abstract class DurableMailboxSpec(val backendName: String, config: String) exten
|
|||
if (!result.contains(words)) throw new Exception("stream did not contain '" + words + "':\n" + result)
|
||||
}
|
||||
|
||||
private val props = Props[MailboxTestActor].withDispatcher(backendName + "-dispatcher")
|
||||
|
||||
def createMailboxTestActor(id: String = ""): ActorRef = id match {
|
||||
case null | "" ⇒ system.actorOf(props)
|
||||
case some ⇒ system.actorOf(props, some)
|
||||
def createMailboxTestActor(props: Props = Props[MailboxTestActor], id: String = ""): ActorRef = id match {
|
||||
case null | "" ⇒ system.actorOf(props.withDispatcher(backendName + "-dispatcher"))
|
||||
case some ⇒ system.actorOf(props.withDispatcher(backendName + "-dispatcher"), some)
|
||||
}
|
||||
|
||||
def isDurableMailbox(m: Mailbox): Boolean
|
||||
|
|
@ -77,6 +83,26 @@ abstract class DurableMailboxSpec(val backendName: String, config: String) exten
|
|||
|
||||
expectNoMsg()
|
||||
}
|
||||
|
||||
"support having multiple actors at the same time" in {
|
||||
val actors = Vector.fill(3)(createMailboxTestActor(Props[AccumulatorActor]))
|
||||
|
||||
actors foreach { a ⇒ isDurableMailbox(a.asInstanceOf[LocalActorRef].underlying.mailbox) must be(true) }
|
||||
|
||||
val msgs = 1 to 3
|
||||
|
||||
val expectedResult: Long = msgs.sum
|
||||
|
||||
for (a ← actors; m ← msgs) a ! m
|
||||
|
||||
for (a ← actors) {
|
||||
implicit val sender = testActor
|
||||
a ! "sum"
|
||||
expectMsg(expectedResult)
|
||||
}
|
||||
|
||||
expectNoMsg()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue