mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-07-08 13:04:41 +00:00
410 lines
12 KiB
Scala
410 lines
12 KiB
Scala
// Copyright (c) 2017 PSForever
|
|
package service
|
|
|
|
import akka.actor.Props
|
|
import base.ActorTest
|
|
import net.psforever.objects._
|
|
import net.psforever.objects.vehicles.control.VehicleControl
|
|
import net.psforever.objects.zones.Zone
|
|
import net.psforever.types.{PlanetSideGUID, _}
|
|
import net.psforever.services.{Service, ServiceManager}
|
|
import net.psforever.services.vehicle._
|
|
|
|
class VehicleService1Test extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"construct" in {
|
|
system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
assert(true)
|
|
}
|
|
}
|
|
}
|
|
|
|
class VehicleService2Test extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"subscribe" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
assert(true)
|
|
}
|
|
}
|
|
}
|
|
|
|
class VehicleService3Test extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"subscribe to a specific channel" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! Service.Leave()
|
|
assert(true)
|
|
}
|
|
}
|
|
}
|
|
|
|
class VehicleService4Test extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"subscribe" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! Service.LeaveAll()
|
|
assert(true)
|
|
}
|
|
}
|
|
}
|
|
|
|
class VehicleService5Test extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass an unhandled message" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! "hello"
|
|
expectNoMessage()
|
|
}
|
|
}
|
|
}
|
|
|
|
class OwnershipTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass Awareness" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage("test", PlanetSideGUID(10), VehicleAction.Ownership(PlanetSideGUID(11)))
|
|
expectMsg(
|
|
VehicleServiceResponse("/test/Vehicle", PlanetSideGUID(10), VehicleAction.Ownership(PlanetSideGUID(11)))
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class ChildObjectStateTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass ChildObjectState" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.ChildObjectState(PlanetSideGUID(11), 1.2f, 3.4f)
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.ChildObjectState(PlanetSideGUID(11), 1.2f, 3.4f)
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class DeployRequestTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass DeployRequest" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.DeployRequest(PlanetSideGUID(11), DriveState.Mobile, 0, false, Vector3(1.2f, 3.4f, 5.6f))
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.DeployRequest(PlanetSideGUID(11), DriveState.Mobile, 0, false, Vector3(1.2f, 3.4f, 5.6f))
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class DismountVehicleTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass DismountVehicle" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage("test", PlanetSideGUID(10), VehicleAction.DismountVehicle(BailType.Normal, false))
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.DismountVehicle(BailType.Normal, false)
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class InventoryStateTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
val tool = Tool(GlobalDefinitions.beamer)
|
|
tool.AmmoSlots.head.Box.GUID = PlanetSideGUID(13)
|
|
val cdata = tool.Definition.Packet.ConstructorData(tool).get
|
|
|
|
"VehicleService" should {
|
|
"pass InventoryState" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.InventoryState(tool, PlanetSideGUID(11), 0, cdata)
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.InventoryState(tool, PlanetSideGUID(11), 0, cdata)
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class InventoryState2Test extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
val tool = Tool(GlobalDefinitions.beamer)
|
|
tool.AmmoSlots.head.Box.GUID = PlanetSideGUID(13)
|
|
val cdata = tool.Definition.Packet.ConstructorData(tool).get
|
|
|
|
"VehicleService" should {
|
|
"pass InventoryState2" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.InventoryState2(PlanetSideGUID(11), PlanetSideGUID(12), 13)
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.InventoryState2(PlanetSideGUID(11), PlanetSideGUID(12), 13)
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class KickPassengerTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass KickPassenger" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.KickPassenger(0, false, PlanetSideGUID(11))
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.KickPassenger(0, false, PlanetSideGUID(11))
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class LoadVehicleTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
val vehicle = Vehicle(GlobalDefinitions.quadstealth)
|
|
vehicle.Actor = system.actorOf(Props(classOf[VehicleControl], vehicle), "test-vehicle")
|
|
val cdata = vehicle.Definition.Packet.ConstructorData(vehicle).get
|
|
|
|
"VehicleService" should {
|
|
"pass LoadVehicle" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.LoadVehicle(vehicle, 12, PlanetSideGUID(11), cdata)
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.LoadVehicle(vehicle, 12, PlanetSideGUID(11), cdata)
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class MountVehicleTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass MountVehicle" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage("test", VehicleAction.MountVehicle(PlanetSideGUID(11), 0))
|
|
expectMsg(
|
|
VehicleServiceResponse("/test/Vehicle", PlanetSideGUID(10), VehicleAction.MountVehicle(PlanetSideGUID(11), 0))
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class SeatPermissionsTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass SeatPermissions" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
VehicleAction.SeatPermissions(PlanetSideGUID(11), 0, 12L)
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.SeatPermissions(PlanetSideGUID(11), 0, 12L)
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class StowEquipmentTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
val tool = Tool(GlobalDefinitions.beamer)
|
|
tool.GUID = PlanetSideGUID(12)
|
|
tool.AmmoSlots.head.Box.GUID = PlanetSideGUID(13)
|
|
val toolDef = tool.Definition
|
|
val cdata = tool.Definition.Packet.DetailedConstructorData(tool).get
|
|
|
|
"StowEquipment" should {
|
|
"pass StowEquipment" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.StowEquipment(PlanetSideGUID(11), 0, tool)
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.StowEquipment(PlanetSideGUID(11), 0, toolDef.ObjectId, tool.GUID, cdata)
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class UnstowEquipmentTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass UnstowEquipment" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage("test", PlanetSideGUID(10), VehicleAction.UnstowEquipment(PlanetSideGUID(11)))
|
|
expectMsg(
|
|
VehicleServiceResponse("/test/Vehicle", PlanetSideGUID(10), VehicleAction.UnstowEquipment(PlanetSideGUID(11)))
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class VehicleStateTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass VehicleState" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
VehicleAction.VehicleState(PlanetSideGUID(11), 0, Vector3(1.2f, 3.4f, 5.6f), Vector3(7.8f, 9.1f, 2.3f), Some(Vector3(4.5f, 6.7f, 8.9f)), Option(1), 2, 3, 4, false, true)
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.VehicleState(
|
|
PlanetSideGUID(11),
|
|
0,
|
|
Vector3(1.2f, 3.4f, 5.6f),
|
|
Vector3(7.8f, 9.1f, 2.3f),
|
|
Some(Vector3(4.5f, 6.7f, 8.9f)),
|
|
Option(1),
|
|
2,
|
|
3,
|
|
4,
|
|
false,
|
|
true
|
|
)
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
class TransferPassengerChannelTest extends ActorTest {
|
|
ServiceManager.boot(system)
|
|
|
|
"VehicleService" should {
|
|
"pass TransferPassengerChannel" in {
|
|
val service = system.actorOf(Props(classOf[VehicleService]), "v-service")
|
|
val fury = Vehicle(GlobalDefinitions.fury)
|
|
fury.Actor = system.actorOf(Props(classOf[VehicleControl], fury), "test-fury")
|
|
service ! Service.Join("test")
|
|
service ! VehicleServiceMessage(
|
|
"test",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.TransferPassengerChannel("old_channel", "new_channel", fury, PlanetSideGUID(11))
|
|
)
|
|
expectMsg(
|
|
VehicleServiceResponse(
|
|
"/test/Vehicle",
|
|
PlanetSideGUID(10),
|
|
VehicleAction.TransferPassengerChannel("old_channel", "new_channel", fury, PlanetSideGUID(11))
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
//class TransferPassengerTest extends ActorTest {
|
|
// ServiceManager.boot(system)
|
|
// "VehicleService" should {
|
|
// "pass TransferPassenger" in {
|
|
// val fury = Vehicle(GlobalDefinitions.fury)
|
|
// val service = system.actorOf(Props[VehicleService], "v-service")
|
|
// service ! Service.Join("test")
|
|
// service ! VehicleServiceMessage("test", VehicleAction.TransferPassenger(PlanetSideGUID(10), "temp_channel", fury, PlanetSideGUID(11)))
|
|
// expectMsg(VehicleServiceResponse("/test/Vehicle", PlanetSideGUID(10), VehicleAction.TransferPassenger("temp_channel", fury, PlanetSideGUID(11))))
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
object VehicleServiceTest {
|
|
//decoy
|
|
}
|