2018-09-23 08:00:58 -04:00
|
|
|
// Copyright (c) 2017 PSForever
|
2018-07-14 21:25:44 -04:00
|
|
|
package service
|
|
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
import akka.actor.Props
|
2018-07-14 21:25:44 -04:00
|
|
|
import base.ActorTest
|
2018-10-17 12:36:43 -04:00
|
|
|
import net.psforever.objects.{GlobalDefinitions, SensorDeployable, Vehicle}
|
2018-04-18 18:29:40 -04:00
|
|
|
import net.psforever.objects.serverobject.PlanetSideServerObject
|
2018-12-23 21:09:12 -05:00
|
|
|
import net.psforever.objects.serverobject.terminals.{ProximityTerminal, Terminal}
|
2019-12-10 08:37:57 -05:00
|
|
|
import net.psforever.objects.zones.Zone
|
2018-09-23 08:00:58 -04:00
|
|
|
import net.psforever.packet.game._
|
2020-01-06 08:45:55 -05:00
|
|
|
import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID, Vector3}
|
2018-09-23 08:00:58 -04:00
|
|
|
import services.{Service, ServiceManager}
|
2018-04-18 18:29:40 -04:00
|
|
|
import services.local._
|
|
|
|
|
|
|
|
|
|
class LocalService1Test extends ActorTest {
|
2018-09-23 08:00:58 -04:00
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
"LocalService" should {
|
|
|
|
|
"construct" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-04-18 18:29:40 -04:00
|
|
|
assert(true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class LocalService2Test extends ActorTest {
|
2018-09-23 08:00:58 -04:00
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
"LocalService" should {
|
|
|
|
|
"subscribe" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-04-18 18:29:40 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
assert(true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class LocalService3Test extends ActorTest {
|
2018-09-23 08:00:58 -04:00
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
"LocalService" should {
|
|
|
|
|
"subscribe to a specific channel" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-04-18 18:29:40 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! Service.Leave()
|
|
|
|
|
assert(true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class LocalService4Test extends ActorTest {
|
2018-09-23 08:00:58 -04:00
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
"LocalService" should {
|
|
|
|
|
"subscribe" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-04-18 18:29:40 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! Service.LeaveAll()
|
|
|
|
|
assert(true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class LocalService5Test extends ActorTest {
|
2018-09-23 08:00:58 -04:00
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
"LocalService" should {
|
|
|
|
|
"pass an unhandled message" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-04-18 18:29:40 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! "hello"
|
|
|
|
|
expectNoMsg()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-09-23 08:00:58 -04:00
|
|
|
class AlertDestroyDeployableTest extends ActorTest {
|
|
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
val obj = new SensorDeployable(GlobalDefinitions.motionalarmsensor)
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass AlertDestroyDeployable" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-09-23 08:00:58 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.AlertDestroyDeployable(PlanetSideGUID(10), obj))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(0), LocalResponse.AlertDestroyDeployable(obj)))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class DeployableMapIconTest extends ActorTest {
|
|
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass DeployableMapIcon" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-09-23 08:00:58 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test",
|
|
|
|
|
LocalAction.DeployableMapIcon(
|
|
|
|
|
PlanetSideGUID(10),
|
|
|
|
|
DeploymentAction.Build,
|
|
|
|
|
DeployableInfo(PlanetSideGUID(40), DeployableIcon.Boomer, Vector3(1,2,3), PlanetSideGUID(11))
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(10),
|
|
|
|
|
LocalResponse.DeployableMapIcon(
|
|
|
|
|
DeploymentAction.Build,
|
|
|
|
|
DeployableInfo(PlanetSideGUID(40), DeployableIcon.Boomer, Vector3(1,2,3), PlanetSideGUID(11))
|
|
|
|
|
)
|
|
|
|
|
))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
class DoorClosesTest extends ActorTest {
|
2018-09-23 08:00:58 -04:00
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
"LocalService" should {
|
|
|
|
|
"pass DoorCloses" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-04-18 18:29:40 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.DoorCloses(PlanetSideGUID(10), PlanetSideGUID(40)))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(10), LocalResponse.DoorCloses(PlanetSideGUID(40))))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class HackClearTest extends ActorTest {
|
2018-09-23 08:00:58 -04:00
|
|
|
ServiceManager.boot(system)
|
2018-04-18 18:29:40 -04:00
|
|
|
val obj = new PlanetSideServerObject() {
|
|
|
|
|
def Faction = PlanetSideEmpire.NEUTRAL
|
|
|
|
|
def Definition = null
|
|
|
|
|
GUID = PlanetSideGUID(40)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass HackClear" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-04-18 18:29:40 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.HackClear(PlanetSideGUID(10), obj, 0L, 1000L))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(10), LocalResponse.HackClear(PlanetSideGUID(40), 0L, 1000L)))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-12-23 21:09:12 -05:00
|
|
|
class ProximityTerminalEffectOnTest extends ActorTest {
|
2018-09-23 08:00:58 -04:00
|
|
|
ServiceManager.boot(system)
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-12-23 21:09:12 -05:00
|
|
|
val terminal = new ProximityTerminal(GlobalDefinitions.medical_terminal)
|
|
|
|
|
terminal.GUID = PlanetSideGUID(1)
|
2018-09-23 08:00:58 -04:00
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
"LocalService" should {
|
2018-12-23 21:09:12 -05:00
|
|
|
"pass ProximityTerminalEffect (true)" in {
|
|
|
|
|
service ! Service.Join("nowhere")
|
|
|
|
|
service ! Terminal.StartProximityEffect(terminal)
|
|
|
|
|
expectMsg(LocalServiceResponse("/nowhere/Local", PlanetSideGUID(0), LocalResponse.ProximityTerminalEffect(PlanetSideGUID(1), true)))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class ProximityTerminalEffectOffTest extends ActorTest {
|
|
|
|
|
ServiceManager.boot(system)
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-12-23 21:09:12 -05:00
|
|
|
val terminal = new ProximityTerminal(GlobalDefinitions.medical_terminal)
|
|
|
|
|
terminal.GUID = PlanetSideGUID(1)
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass ProximityTerminalEffect (false)" in {
|
|
|
|
|
service ! Service.Join("nowhere")
|
|
|
|
|
service ! Terminal.StopProximityEffect(terminal)
|
|
|
|
|
expectMsg(LocalServiceResponse("/nowhere/Local", PlanetSideGUID(0), LocalResponse.ProximityTerminalEffect(PlanetSideGUID(1), false)))
|
2018-04-18 18:29:40 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-10-17 12:36:43 -04:00
|
|
|
class RouterTelepadTransportTest extends ActorTest {
|
|
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass RouterTelepadTransport" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-10-17 12:36:43 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.RouterTelepadTransport(PlanetSideGUID(10), PlanetSideGUID(11), PlanetSideGUID(12), PlanetSideGUID(13)))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(10), LocalResponse.RouterTelepadTransport(PlanetSideGUID(11), PlanetSideGUID(12), PlanetSideGUID(13))))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-09-23 08:00:58 -04:00
|
|
|
class SetEmpireTest extends ActorTest {
|
|
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
val obj = new SensorDeployable(GlobalDefinitions.motionalarmsensor)
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass SetEmpire" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-09-23 08:00:58 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.SetEmpire(PlanetSideGUID(10), PlanetSideEmpire.TR))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(0), LocalResponse.SetEmpire(PlanetSideGUID(10), PlanetSideEmpire.TR)))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-10-17 12:36:43 -04:00
|
|
|
class ToggleTeleportSystemTest extends ActorTest {
|
|
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass ToggleTeleportSystem" in {
|
|
|
|
|
val router = Vehicle(GlobalDefinitions.router)
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-10-17 12:36:43 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.ToggleTeleportSystem(PlanetSideGUID(10), router, None))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(10), LocalResponse.ToggleTeleportSystem(router, None)))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-09-23 08:00:58 -04:00
|
|
|
class TriggerEffectTest extends ActorTest {
|
|
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass TriggerEffect (1)" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-09-23 08:00:58 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.TriggerEffect(PlanetSideGUID(10), "on", PlanetSideGUID(40)))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(10), LocalResponse.TriggerEffect(PlanetSideGUID(40), "on", None, None)))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class TriggerEffectInfoTest extends ActorTest {
|
|
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass TriggerEffect (2)" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-09-23 08:00:58 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.TriggerEffectInfo(PlanetSideGUID(10), "on", PlanetSideGUID(40), true, 1000))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(10), LocalResponse.TriggerEffect(PlanetSideGUID(40), "on", Some(TriggeredEffect(true, 1000)), None)))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class TriggerEffectLocationTest extends ActorTest {
|
|
|
|
|
ServiceManager.boot(system)
|
|
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass TriggerEffect (3)" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-09-23 08:00:58 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.TriggerEffectLocation(PlanetSideGUID(10), "spawn_object_failed_effect", Vector3(1.1f, 2.2f, 3.3f), Vector3(4.4f, 5.5f, 6.6f)))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(10), LocalResponse.TriggerEffect(PlanetSideGUID(0), "spawn_object_failed_effect", None, Some(TriggeredEffectLocation(Vector3(1.1f, 2.2f, 3.3f), Vector3(4.4f, 5.5f, 6.6f))))))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-18 18:29:40 -04:00
|
|
|
class TriggerSoundTest extends ActorTest {
|
|
|
|
|
import net.psforever.packet.game.TriggeredSound
|
2018-09-23 08:00:58 -04:00
|
|
|
ServiceManager.boot(system)
|
2018-04-18 18:29:40 -04:00
|
|
|
|
|
|
|
|
"LocalService" should {
|
|
|
|
|
"pass TriggerSound" in {
|
2019-12-10 08:37:57 -05:00
|
|
|
val service = system.actorOf(Props(classOf[LocalService], Zone.Nowhere), "l_service")
|
2018-04-18 18:29:40 -04:00
|
|
|
service ! Service.Join("test")
|
|
|
|
|
service ! LocalServiceMessage("test", LocalAction.TriggerSound(PlanetSideGUID(10), TriggeredSound.LockedOut, Vector3(1.1f, 2.2f, 3.3f), 0, 0.75f))
|
|
|
|
|
expectMsg(LocalServiceResponse("/test/Local", PlanetSideGUID(10), LocalResponse.TriggerSound(TriggeredSound.LockedOut, Vector3(1.1f, 2.2f, 3.3f), 0, 0.75f)))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
object LocalServiceTest {
|
|
|
|
|
//decoy
|
|
|
|
|
}
|