PSF-BotServer/common/src/test/scala/objects/NumberPoolActorTest.scala
2017-09-27 22:12:36 -04:00

51 lines
1.8 KiB
Scala

// Copyright (c) 2017 PSForever
package objects
import akka.actor.{ActorSystem, Props}
import net.psforever.objects.guid.actor.NumberPoolActor
import net.psforever.objects.guid.pool.ExclusivePool
import net.psforever.objects.guid.selector.RandomSelector
import scala.concurrent.duration.Duration
class NumberPoolActorTest extends ActorTest(ActorSystem("test")) {
"NumberPoolActor" should {
"GetAnyNumber" in {
val pool = new ExclusivePool((25 to 50).toList)
pool.Selector = new RandomSelector
val poolActor = system.actorOf(Props(classOf[NumberPoolActor], pool), name = "poolActor1")
poolActor ! NumberPoolActor.GetAnyNumber()
val msg = receiveOne(Duration.create(100, "ms"))
assert(msg.isInstanceOf[NumberPoolActor.GiveNumber])
}
}
}
class NumberPoolActorTest1 extends ActorTest(ActorSystem("test")) {
"NumberPoolActor" should {
"GetSpecificNumber" in {
val pool = new ExclusivePool((25 to 50).toList)
pool.Selector = new RandomSelector
val poolActor = system.actorOf(Props(classOf[NumberPoolActor], pool), name = "poolActor2")
poolActor ! NumberPoolActor.GetSpecificNumber(37)
expectMsg(NumberPoolActor.GiveNumber(37, None))
}
}
}
class NumberPoolActorTest2 extends ActorTest(ActorSystem("test")) {
"NumberPoolActor" should {
"NoNumber" in {
val pool = new ExclusivePool((25 to 25).toList) //pool only has one number - 25
pool.Selector = new RandomSelector
val poolActor = system.actorOf(Props(classOf[NumberPoolActor], pool), name = "poolActor3")
poolActor ! NumberPoolActor.GetAnyNumber()
expectMsg(NumberPoolActor.GiveNumber(25, None))
poolActor ! NumberPoolActor.GetAnyNumber()
val msg = receiveOne(Duration.create(100, "ms"))
assert(msg.isInstanceOf[NumberPoolActor.NoNumber])
}
}
}