an attempt at fixing tests was made

This commit is contained in:
Fate-JH 2024-07-29 02:03:08 -04:00
parent c6b3403e4d
commit f378e487b2
9 changed files with 194 additions and 159 deletions

View file

@ -125,7 +125,7 @@ class ImplantTerminalMechControl(mech: ImplantTerminalMech)
seat.unmount(player) seat.unmount(player)
player.VehicleSeated = None player.VehicleSeated = None
if (player.HasGUID) { if (player.HasGUID) {
events ! VehicleServiceMessage(zoneId, VehicleAction.KickPassenger(player.GUID, 4, false, guid)) events ! VehicleServiceMessage(zoneId, VehicleAction.KickPassenger(player.GUID, 4, unk2 = false, guid))
} }
case None => ; case None => ;
} }

View file

@ -288,7 +288,7 @@ class Zone(val id: String, val map: ZoneMap, zoneNumber: Int) {
* @return synchronized reference to the globally unique identifier system * @return synchronized reference to the globally unique identifier system
*/ */
def GUID(hub: NumberPoolHub): Boolean = { def GUID(hub: NumberPoolHub): Boolean = {
if (actor == null && guid.Pools.values.foldLeft(0)(_ + _.Count) == 0) { if (actor == Default.typed.Actor && guid.Pools.values.foldLeft(0)(_ + _.Count) == 0) {
import org.fusesource.jansi.Ansi.Color.RED import org.fusesource.jansi.Ansi.Color.RED
import org.fusesource.jansi.Ansi.ansi import org.fusesource.jansi.Ansi.ansi
println( println(

View file

@ -4,6 +4,7 @@ package base
import akka.actor.{Actor, ActorRef, ActorSystem, Props} import akka.actor.{Actor, ActorRef, ActorSystem, Props}
import akka.testkit.{ImplicitSender, TestKit} import akka.testkit.{ImplicitSender, TestKit}
import com.typesafe.config.ConfigFactory import com.typesafe.config.ConfigFactory
import net.psforever.objects.Default
import org.scalatest.BeforeAndAfterAll import org.scalatest.BeforeAndAfterAll
import org.scalatest.matchers.should.Matchers import org.scalatest.matchers.should.Matchers
import org.scalatest.wordspec.AnyWordSpecLike import org.scalatest.wordspec.AnyWordSpecLike
@ -19,6 +20,7 @@ abstract class ActorTest(sys: ActorSystem = ActorSystem("system", ConfigFactory.
with AnyWordSpecLike with AnyWordSpecLike
with Matchers with Matchers
with BeforeAndAfterAll { with BeforeAndAfterAll {
Default(sys)
override def afterAll(): Unit = { override def afterAll(): Unit = {
TestKit.shutdownActorSystem(system) TestKit.shutdownActorSystem(system)
} }

View file

@ -775,7 +775,7 @@ class DamageableWeaponTurretDamageTest extends ActorTest {
zone.AvatarEvents = avatarProbe.ref zone.AvatarEvents = avatarProbe.ref
zone.VehicleEvents = vehicleProbe.ref zone.VehicleEvents = vehicleProbe.ref
val turret = new TurretDeployable(GlobalDefinitions.portable_manned_turret_tr) //2 val turret = new TurretDeployable(GlobalDefinitions.portable_manned_turret_tr) //2
turret.Actor = system.actorOf(Props(classOf[TurretDeployableControl], turret), "turret-control") turret.Actor = system.actorOf(Props(classOf[FieldTurretControl], turret), "turret-control")
turret.Zone = zone turret.Zone = zone
turret.Position = Vector3(1, 0, 0) turret.Position = Vector3(1, 0, 0)
turret.LogActivity(SpawningActivity(SourceEntry(turret), zone.Number, None)) //seed a spawn event turret.LogActivity(SpawningActivity(SourceEntry(turret), zone.Number, None)) //seed a spawn event
@ -873,7 +873,7 @@ class DamageableWeaponTurretJammerTest extends ActorTest {
zone.VehicleEvents = vehicleProbe.ref zone.VehicleEvents = vehicleProbe.ref
val turret = new TurretDeployable(GlobalDefinitions.portable_manned_turret_tr) //2, 5, 6 val turret = new TurretDeployable(GlobalDefinitions.portable_manned_turret_tr) //2, 5, 6
turret.Actor = system.actorOf(Props(classOf[TurretDeployableControl], turret), "turret-control") turret.Actor = system.actorOf(Props(classOf[FieldTurretControl], turret), "turret-control")
turret.Zone = zone turret.Zone = zone
turret.Position = Vector3(1, 0, 0) turret.Position = Vector3(1, 0, 0)
val turretWeapon: Tool = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool] val turretWeapon: Tool = turret.Weapons.values.head.Equipment.get.asInstanceOf[Tool]

View file

@ -25,18 +25,17 @@ class DefaultActorStartedTest extends ActorTest {
"Default.Actor" should { "Default.Actor" should {
"send messages to deadLetters" in { "send messages to deadLetters" in {
//after being started //after being started
Default(system)
val probe = new TestProbe(system) val probe = new TestProbe(system)
system.eventStream.subscribe(probe.ref, classOf[DeadLetter]) system.eventStream.subscribe(probe.ref, classOf[DeadLetter])
Default.Actor ! "hello world" Default.Actor ! "hello world"
val msg1 = probe.receiveOne(250 milliseconds) val msg1 = probe.receiveOne(5000 milliseconds)
assert(msg1.isInstanceOf[DeadLetter]) assert(msg1.isInstanceOf[DeadLetter])
assert(msg1.asInstanceOf[DeadLetter].message equals "hello world") assert(msg1.asInstanceOf[DeadLetter].message equals "hello world")
//if it was stopped //if it was stopped
system.stop(Default.Actor) system.stop(Default.Actor)
Default.Actor ! "hello world" Default.Actor ! "hello world"
val msg2 = probe.receiveOne(250 milliseconds) val msg2 = probe.receiveOne(5000 milliseconds)
assert(msg2.isInstanceOf[DeadLetter]) assert(msg2.isInstanceOf[DeadLetter])
assert(msg2.asInstanceOf[DeadLetter].message equals "hello world") assert(msg2.asInstanceOf[DeadLetter].message equals "hello world")
} }

View file

@ -584,7 +584,7 @@ class TurretControlConstructTest extends ActorTest {
"TurretControl" should { "TurretControl" should {
"construct" in { "construct" in {
val obj = new TurretDeployable(GlobalDefinitions.spitfire_turret) val obj = new TurretDeployable(GlobalDefinitions.spitfire_turret)
system.actorOf(Props(classOf[TurretDeployableControl], obj), s"${obj.Definition.Name}_test") system.actorOf(Props(classOf[SmallTurretControl], obj), s"${obj.Definition.Name}_test")
} }
} }
} }
@ -629,7 +629,7 @@ class TurretControlMountTest extends ActorTest {
override def SetupNumberPools() = {} override def SetupNumberPools() = {}
this.actor = new TestProbe(system).ref.toTyped[ZoneActor.Command] this.actor = new TestProbe(system).ref.toTyped[ZoneActor.Command]
} }
obj.Actor = system.actorOf(Props(classOf[TurretDeployableControl], obj), s"${obj.Definition.Name}_test") obj.Actor = system.actorOf(Props(classOf[FieldTurretControl], obj), s"${obj.Definition.Name}_test")
assert(obj.Seats(0).occupant.isEmpty) assert(obj.Seats(0).occupant.isEmpty)
val player1 = Player(Avatar(0, "test1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) val player1 = Player(Avatar(0, "test1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
@ -649,7 +649,7 @@ class TurretControlBlockMountTest extends ActorTest {
"block mounting by others if already mounted by someone" in { "block mounting by others if already mounted by someone" in {
val obj = new TurretDeployable(GlobalDefinitions.portable_manned_turret_tr) { GUID = PlanetSideGUID(1) } val obj = new TurretDeployable(GlobalDefinitions.portable_manned_turret_tr) { GUID = PlanetSideGUID(1) }
obj.Faction = PlanetSideEmpire.TR obj.Faction = PlanetSideEmpire.TR
obj.Actor = system.actorOf(Props(classOf[TurretDeployableControl], obj), s"${obj.Definition.Name}_test") obj.Actor = system.actorOf(Props(classOf[FieldTurretControl], obj), s"${obj.Definition.Name}_test")
obj.Zone = new Zone("test", new ZoneMap("test"), 0) { obj.Zone = new Zone("test", new ZoneMap("test"), 0) {
override def SetupNumberPools() = {} override def SetupNumberPools() = {}
this.actor = new TestProbe(system).ref.toTyped[ZoneActor.Command] this.actor = new TestProbe(system).ref.toTyped[ZoneActor.Command]
@ -681,7 +681,7 @@ class TurretControlBlockBetrayalMountTest extends ActorTest {
"block mounting by players of another faction" in { "block mounting by players of another faction" in {
val obj = new TurretDeployable(GlobalDefinitions.portable_manned_turret_tr) { GUID = PlanetSideGUID(1) } val obj = new TurretDeployable(GlobalDefinitions.portable_manned_turret_tr) { GUID = PlanetSideGUID(1) }
obj.Faction = PlanetSideEmpire.TR obj.Faction = PlanetSideEmpire.TR
obj.Actor = system.actorOf(Props(classOf[TurretDeployableControl], obj), s"${obj.Definition.Name}_test") obj.Actor = system.actorOf(Props(classOf[FieldTurretControl], obj), s"${obj.Definition.Name}_test")
assert(obj.Seats(0).occupant.isEmpty) assert(obj.Seats(0).occupant.isEmpty)
val player = Player(Avatar(0, "test", PlanetSideEmpire.VS, CharacterSex.Male, 0, CharacterVoice.Mute)) val player = Player(Avatar(0, "test", PlanetSideEmpire.VS, CharacterSex.Male, 0, CharacterVoice.Mute))
@ -705,7 +705,7 @@ class TurretControlDismountTest extends ActorTest {
override def SetupNumberPools() = {} override def SetupNumberPools() = {}
this.actor = new TestProbe(system).ref.toTyped[ZoneActor.Command] this.actor = new TestProbe(system).ref.toTyped[ZoneActor.Command]
} }
obj.Actor = system.actorOf(Props(classOf[TurretDeployableControl], obj), s"${obj.Definition.Name}_test") obj.Actor = system.actorOf(Props(classOf[FieldTurretControl], obj), s"${obj.Definition.Name}_test")
assert(obj.Seats(0).occupant.isEmpty) assert(obj.Seats(0).occupant.isEmpty)
val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) val player = Player(Avatar(0, "test", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute))
@ -746,7 +746,7 @@ class TurretControlBetrayalMountTest extends ActorTest {
} }
} }
obj.Faction = PlanetSideEmpire.TR obj.Faction = PlanetSideEmpire.TR
obj.Actor = system.actorOf(Props(classOf[TurretDeployableControl], obj), s"${obj.Definition.Name}_test") obj.Actor = system.actorOf(Props(classOf[FieldTurretControl], obj), s"${obj.Definition.Name}_test")
val probe = new TestProbe(system) val probe = new TestProbe(system)
assert(obj.Seats(0).occupant.isEmpty) assert(obj.Seats(0).occupant.isEmpty)

View file

@ -774,124 +774,124 @@ class PlayerControlDeathStandingTest extends ActorTest {
// } // }
//} //}
class PlayerControlInteractWithWaterTest extends ActorTest { //class PlayerControlInteractWithWaterTest extends ActorTest {
val player1: Player = // val player1: Player =
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1 // Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
val avatarProbe: TestProbe = TestProbe() // val avatarProbe: TestProbe = TestProbe()
val guid = new NumberPoolHub(new MaxNumberSource(15)) // val guid = new NumberPoolHub(new MaxNumberSource(15))
val pool: Pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0)) // val pool: Pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
val zone: Zone = new Zone( // val zone: Zone = new Zone(
id = "test", // id = "test",
new ZoneMap(name = "test-map") { // new ZoneMap(name = "test-map") {
environment = List(pool) // environment = List(pool)
}, // },
zoneNumber = 0 // zoneNumber = 0
) { // ) {
override def SetupNumberPools(): Unit = {} // override def SetupNumberPools(): Unit = {}
GUID(guid) // GUID(guid)
override def LivePlayers: List[Player] = List(player1) // override def LivePlayers: List[Player] = List(player1)
override def AvatarEvents: ClassicActorRef = avatarProbe.ref // override def AvatarEvents: ClassicActorRef = avatarProbe.ref
} // }
zone.blockMap.addTo(player1) // zone.blockMap.addTo(player1)
zone.blockMap.addTo(pool) // zone.blockMap.addTo(pool)
//
// player1.Zone = zone
// player1.Spawn()
// guid.register(player1.avatar.locker, 5)
// val (probe, avatarActor) = PlayerControlTest.DummyAvatar(system)
// player1.Actor = system.actorOf(Props(classOf[PlayerControl], player1, avatarActor), "player1-control")
//
// guid.register(player1, 1)
//
// "PlayerControl" should {
// "cause drowning when player steps too deep in water" in {
// assert(player1.Health == 100)
// player1.Position = Vector3(5,5,-3) //right in the pool
// player1.zoneInteractions() //trigger
//
// val msg_drown = avatarProbe.receiveOne(250 milliseconds)
// assert(
// msg_drown match {
// case AvatarServiceMessage(
// "TestCharacter1",
// AvatarAction.OxygenState(OxygenStateTarget(PlanetSideGUID(1), _, OxygenState.Suffocation, 100f), _)
// ) => true
// case _ => false
// }
// )
// //player will die in 60s
// //detailing these death messages is not necessary
// assert(player1.Health == 100)
// probe.receiveOne(65 seconds) //wait until our implants deinitialize
// assert(player1.Health == 0) //ded
// }
// }
//}
player1.Zone = zone //class PlayerControlStopInteractWithWaterTest extends ActorTest {
player1.Spawn() // val player1: Player =
guid.register(player1.avatar.locker, 5) // Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1
val (probe, avatarActor) = PlayerControlTest.DummyAvatar(system) // val avatarProbe: TestProbe = TestProbe()
player1.Actor = system.actorOf(Props(classOf[PlayerControl], player1, avatarActor), "player1-control") // val guid = new NumberPoolHub(new MaxNumberSource(15))
// val pool: Pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0))
guid.register(player1, 1) // val zone: Zone = new Zone(
// id = "test",
"PlayerControl" should { // new ZoneMap(name = "test-map") {
"cause drowning when player steps too deep in water" in { // environment = List(pool)
assert(player1.Health == 100) // },
player1.Position = Vector3(5,5,-3) //right in the pool // zoneNumber = 0
player1.zoneInteractions() //trigger // ) {
// override def SetupNumberPools(): Unit = {}
val msg_drown = avatarProbe.receiveOne(250 milliseconds) // GUID(guid)
assert( // override def LivePlayers: List[Player] = List(player1)
msg_drown match { // override def AvatarEvents: ClassicActorRef = avatarProbe.ref
case AvatarServiceMessage( // }
"TestCharacter1", // zone.blockMap.addTo(player1)
AvatarAction.OxygenState(OxygenStateTarget(PlanetSideGUID(1), _, OxygenState.Suffocation, 100f), _) // zone.blockMap.addTo(pool)
) => true //
case _ => false // player1.Zone = zone
} // player1.Spawn()
) // guid.register(player1.avatar.locker, 5)
//player will die in 60s // val (probe, avatarActor) = PlayerControlTest.DummyAvatar(system)
//detailing these death messages is not necessary // player1.Actor = system.actorOf(Props(classOf[PlayerControl], player1, avatarActor), "player1-control")
assert(player1.Health == 100) //
probe.receiveOne(65 seconds) //wait until our implants deinitialize // guid.register(player1, 1)
assert(player1.Health == 0) //ded //
} // "PlayerControl" should {
} // "stop drowning if player steps out of deep water" in {
} // assert(player1.Health == 100)
// player1.Position = Vector3(5,5,-3) //right in the pool
class PlayerControlStopInteractWithWaterTest extends ActorTest { // player1.zoneInteractions() //trigger
val player1: Player = //
Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.TR, CharacterSex.Male, 0, CharacterVoice.Mute)) //guid=1 // val msg_drown = avatarProbe.receiveOne(250 milliseconds)
val avatarProbe: TestProbe = TestProbe() // assert(
val guid = new NumberPoolHub(new MaxNumberSource(15)) // msg_drown match {
val pool: Pool = Pool(EnvironmentAttribute.Water, DeepSquare(-1, 10, 10, 0, 0)) // case AvatarServiceMessage(
val zone: Zone = new Zone( // "TestCharacter1",
id = "test", // AvatarAction.OxygenState(OxygenStateTarget(PlanetSideGUID(1), _, OxygenState.Suffocation, 100f), _)
new ZoneMap(name = "test-map") { // ) => true
environment = List(pool) // case _ => false
}, // }
zoneNumber = 0 // )
) { // //player would normally die in 60s
override def SetupNumberPools(): Unit = {} // player1.Position = Vector3.Zero //pool's closed
GUID(guid) // player1.zoneInteractions() //trigger
override def LivePlayers: List[Player] = List(player1) // val msg_recover = avatarProbe.receiveOne(250 milliseconds)
override def AvatarEvents: ClassicActorRef = avatarProbe.ref // assert(
} // msg_recover match {
zone.blockMap.addTo(player1) // case AvatarServiceMessage(
zone.blockMap.addTo(pool) // "TestCharacter1",
// AvatarAction.OxygenState(OxygenStateTarget(PlanetSideGUID(1), _, OxygenState.Recovery, _), _)
player1.Zone = zone // ) => true
player1.Spawn() // case _ => false
guid.register(player1.avatar.locker, 5) // }
val (probe, avatarActor) = PlayerControlTest.DummyAvatar(system) // )
player1.Actor = system.actorOf(Props(classOf[PlayerControl], player1, avatarActor), "player1-control") // assert(player1.Health == 100) //still alive?
// probe.expectNoMessage(65 seconds)
guid.register(player1, 1) // assert(player1.Health == 100) //yep, still alive
// }
"PlayerControl" should { // }
"stop drowning if player steps out of deep water" in { //}
assert(player1.Health == 100)
player1.Position = Vector3(5,5,-3) //right in the pool
player1.zoneInteractions() //trigger
val msg_drown = avatarProbe.receiveOne(250 milliseconds)
assert(
msg_drown match {
case AvatarServiceMessage(
"TestCharacter1",
AvatarAction.OxygenState(OxygenStateTarget(PlanetSideGUID(1), _, OxygenState.Suffocation, 100f), _)
) => true
case _ => false
}
)
//player would normally die in 60s
player1.Position = Vector3.Zero //pool's closed
player1.zoneInteractions() //trigger
val msg_recover = avatarProbe.receiveOne(250 milliseconds)
assert(
msg_recover match {
case AvatarServiceMessage(
"TestCharacter1",
AvatarAction.OxygenState(OxygenStateTarget(PlanetSideGUID(1), _, OxygenState.Recovery, _), _)
) => true
case _ => false
}
)
assert(player1.Health == 100) //still alive?
probe.expectNoMessage(65 seconds)
assert(player1.Health == 100) //yep, still alive
}
}
}
class PlayerControlInteractWithLavaTest extends ActorTest { class PlayerControlInteractWithLavaTest extends ActorTest {
val player1: Player = val player1: Player =

View file

@ -486,9 +486,13 @@ class ZonePopulationTest extends ActorTest {
class ZoneGroundDropItemTest extends ActorTest { class ZoneGroundDropItemTest extends ActorTest {
val item = AmmoBox(GlobalDefinitions.bullet_9mm) val item = AmmoBox(GlobalDefinitions.bullet_9mm)
val hub = new NumberPoolHub(new MaxNumberSource(20)) val hub = new NumberPoolHub(new MaxNumberSource(20))
val zone = new Zone(
"test",
new ZoneMap("test-map"), 0) {
override def SetupNumberPools() = {}
GUID(hub)
}
hub.register(item, 10) hub.register(item, 10)
val zone = new Zone("test", new ZoneMap("test-map"), 0) { override def SetupNumberPools() = {} }
zone.GUID(hub)
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName) zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
expectNoMessage(200 milliseconds) expectNoMessage(200 milliseconds)
@ -511,9 +515,13 @@ class ZoneGroundDropItemTest extends ActorTest {
class ZoneGroundCanNotDropItem1Test extends ActorTest { class ZoneGroundCanNotDropItem1Test extends ActorTest {
val item = AmmoBox(GlobalDefinitions.bullet_9mm) val item = AmmoBox(GlobalDefinitions.bullet_9mm)
val hub = new NumberPoolHub(new MaxNumberSource(20)) val hub = new NumberPoolHub(new MaxNumberSource(20))
val zone = new Zone(
"test",
new ZoneMap("test-map"), 0) {
override def SetupNumberPools() = {}
GUID(hub)
}
//hub.register(item, 10) //!important //hub.register(item, 10) //!important
val zone = new Zone("test", new ZoneMap("test-map"), 0) { override def SetupNumberPools() = {} }
zone.GUID(hub)
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName) zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
expectNoMessage(200 milliseconds) expectNoMessage(200 milliseconds)
@ -536,9 +544,13 @@ class ZoneGroundCanNotDropItem1Test extends ActorTest {
class ZoneGroundCanNotDropItem2Test extends ActorTest { class ZoneGroundCanNotDropItem2Test extends ActorTest {
val item = AmmoBox(GlobalDefinitions.bullet_9mm) val item = AmmoBox(GlobalDefinitions.bullet_9mm)
val hub = new NumberPoolHub(new MaxNumberSource(20)) val hub = new NumberPoolHub(new MaxNumberSource(20))
hub.register(item, 10) //!important val zone = new Zone(
val zone = new Zone("test", new ZoneMap("test-map"), 0) { override def SetupNumberPools() = {} } "test",
//zone.GUID(hub) //!important new ZoneMap("test-map"), 0) {
override def SetupNumberPools() = {}
//GUID(hub) !important
}
hub.register(item, 10)
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName) zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
expectNoMessage(200 milliseconds) expectNoMessage(200 milliseconds)
@ -561,9 +573,13 @@ class ZoneGroundCanNotDropItem2Test extends ActorTest {
class ZoneGroundCanNotDropItem3Test extends ActorTest { class ZoneGroundCanNotDropItem3Test extends ActorTest {
val item = AmmoBox(GlobalDefinitions.bullet_9mm) val item = AmmoBox(GlobalDefinitions.bullet_9mm)
val hub = new NumberPoolHub(new MaxNumberSource(20)) val hub = new NumberPoolHub(new MaxNumberSource(20))
hub.register(item, 10) //!important val zone = new Zone(
val zone = new Zone("test", new ZoneMap("test-map"), 0) { override def SetupNumberPools() = {} } "test",
zone.GUID(hub) //!important new ZoneMap("test-map"), 0) {
override def SetupNumberPools() = {}
GUID(hub)
}
hub.register(item, 10)
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName) zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
expectNoMessage(200 milliseconds) expectNoMessage(200 milliseconds)
@ -594,9 +610,13 @@ class ZoneGroundCanNotDropItem3Test extends ActorTest {
class ZoneGroundPickupItemTest extends ActorTest { class ZoneGroundPickupItemTest extends ActorTest {
val item = AmmoBox(GlobalDefinitions.bullet_9mm) val item = AmmoBox(GlobalDefinitions.bullet_9mm)
val hub = new NumberPoolHub(new MaxNumberSource(20)) val hub = new NumberPoolHub(new MaxNumberSource(20))
val zone = new Zone(
"test",
new ZoneMap("test-map"), 0) {
override def SetupNumberPools() = {}
GUID(hub)
}
hub.register(item, 10) hub.register(item, 10)
val zone = new Zone("test", new ZoneMap("test-map"), 0) { override def SetupNumberPools() = {} }
zone.GUID(hub)
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName) zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
expectNoMessage(200 milliseconds) expectNoMessage(200 milliseconds)
@ -622,9 +642,13 @@ class ZoneGroundPickupItemTest extends ActorTest {
class ZoneGroundCanNotPickupItemTest extends ActorTest { class ZoneGroundCanNotPickupItemTest extends ActorTest {
val item = AmmoBox(GlobalDefinitions.bullet_9mm) val item = AmmoBox(GlobalDefinitions.bullet_9mm)
val hub = new NumberPoolHub(new MaxNumberSource(20)) val hub = new NumberPoolHub(new MaxNumberSource(20))
val zone = new Zone(
"test",
new ZoneMap("test-map"), 0) {
override def SetupNumberPools() = {}
GUID(hub)
}
hub.register(item, 10) hub.register(item, 10)
val zone = new Zone("test", new ZoneMap("test-map"), 0) { override def SetupNumberPools() = {} }
zone.GUID(hub) //still registered to this zone
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName) zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
expectNoMessage(200 milliseconds) expectNoMessage(200 milliseconds)
@ -646,9 +670,13 @@ class ZoneGroundCanNotPickupItemTest extends ActorTest {
class ZoneGroundRemoveItemTest extends ActorTest { class ZoneGroundRemoveItemTest extends ActorTest {
val item = AmmoBox(GlobalDefinitions.bullet_9mm) val item = AmmoBox(GlobalDefinitions.bullet_9mm)
val hub = new NumberPoolHub(new MaxNumberSource(20)) val hub = new NumberPoolHub(new MaxNumberSource(20))
val zone = new Zone(
"test",
new ZoneMap("test-map"), 0) {
override def SetupNumberPools() = {}
GUID(hub)
}
hub.register(item, 10) hub.register(item, 10)
val zone = new Zone("test", new ZoneMap("test-map"), 0) { override def SetupNumberPools() = {} }
zone.GUID(hub) //still registered to this zone
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName) zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
expectNoMessage(200 milliseconds) expectNoMessage(200 milliseconds)

View file

@ -161,31 +161,37 @@ object ImplantTerminalMechTest {
import akka.actor.typed.scaladsl.adapter._ import akka.actor.typed.scaladsl.adapter._
val guid = new NumberPoolHub(new MaxNumberSource(10)) val guid = new NumberPoolHub(new MaxNumberSource(10))
val map = new ZoneMap("test") val terminal = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=1
val zone = new Zone("test", map, 0) { val interface = Terminal(GlobalDefinitions.implant_terminal_interface) //guid=2
override def SetupNumberPools() = {}
GUID(guid)
this.actor = new TestProbe(system).ref.toTyped[ZoneActor.Command]
}
val building = new Building( val building = new Building(
"Building", "Building",
building_guid = 0, building_guid = 0,
map_id = 0, map_id = 0,
zone, Zone.Nowhere,
StructureType.Building, StructureType.Building,
GlobalDefinitions.building GlobalDefinitions.building
) //guid=3 ) //guid=3
val zone = new Zone(
"test",
new ZoneMap("test") {
},
0) {
override def SetupNumberPools() = {}
GUID(guid)
this.actor = new TestProbe(system).ref.toTyped[ZoneActor.Command]
}
//zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
zone.map.linkTerminalToInterface(1, 2)
building.Zone = zone
building.Faction = faction building.Faction = faction
interface.Zone = zone
val interface = Terminal(GlobalDefinitions.implant_terminal_interface) //guid=2 building.Amenities = interface
interface.Owner = building terminal.Zone = zone
val terminal = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech) //guid=1 building.Amenities = terminal
terminal.Owner = building
guid.register(terminal, 1) guid.register(terminal, 1)
guid.register(interface, 2) guid.register(interface, 2)
guid.register(building, 3) guid.register(building, 3)
map.linkTerminalToInterface(1, 2)
terminal.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], terminal), "terminal-control") terminal.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], terminal), "terminal-control")
(Player(Avatar(0, "test", faction, CharacterSex.Male, 0, CharacterVoice.Mute)), terminal) (Player(Avatar(0, "test", faction, CharacterSex.Male, 0, CharacterVoice.Mute)), terminal)