mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-02-26 17:53:37 +00:00
overhaul of ReplicationStreamMessage to make the object form of the packet less of a hassle to compose; updated tests for RSM
This commit is contained in:
parent
e44d21520a
commit
6fdc617a87
3 changed files with 698 additions and 763 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -19,17 +19,7 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
val stringUpdateLeaderSize = hex"E6 C0 58 10 C3 00 4A0069006D006D0079006E00 43 FF"
|
||||
val stringUpdateTaskContinent = hex"E6 C0 58 11 40 80 3200 3 04000000 FF0"
|
||||
val stringUpdateAll = hex"E6 C0 78 30 58 0430 6D00610064006D0075006A00 80 040000000A FF"
|
||||
//failing conditions
|
||||
val stringCodecFail = hex"E6 20 A1 19 FE"
|
||||
val stringListOneFail = hex"E6 B8 01 06 01 00 8B 46007200610067004C0041004E00640049004E004300 84 4600720061006700 0A00 00 01 0A FF"
|
||||
val stringListTwoFail = hex"E6 B8 01 06 06 00 8E 470065006E006500720061006C0047006F0072006700750074007A00 A1 46004C0059002C0041006C006C002000770065006C0063006F006D0065002C0063006E0020006C0061007300740020006E0069006700680074002100210021002100 0400 00 00 7A 01 83 02 00 45 80 4B004F004B006B006900610073004D00460043004E00 87 5300710075006100640020003200 0400 00 01 6A FF"
|
||||
val stringUpdateLeaderFail = hex"E6 C0 28 08 44 00 46006100740065004A0048004E004300 FF"
|
||||
val stringUpdateTaskFail = hex"E6 C0 58 09CE00 52004900500020005000530031002C0020007600690073006900740020005000530046006F00720065007600650072002E006E0065007400 FF"
|
||||
val stringUpdateContinentFail = hex"E6 C0 38 09 85000001 7F80"
|
||||
val stringUpdateSizeFail = hex"E6 C0 18 0A B7 F8"
|
||||
val stringUpdateLeaderSizeFail = hex"E6 C0 58 10 43 00 4A0069006D006D0079006E00 43 FF"
|
||||
val stringUpdateTaskContinentFail = hex"E6 C0 58 11 C0 80 3200 3 04000000 FF0"
|
||||
val stringUpdateAllFail = hex"E6 C0 78 30 58 0430 6D00610064006D0075006A00 80 04000001 0A FF"
|
||||
val stringRemoveUpdate = hex"e6 20201801014aff"
|
||||
|
||||
"SquadInfo (w/out squad_guid)" in {
|
||||
val o = SquadInfo("FragLANdINC", "Frag", PlanetSideZoneID(10), 0, 10)
|
||||
|
|
@ -56,15 +46,27 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
o.capacity.get mustEqual 7
|
||||
}
|
||||
|
||||
"SquadInfo (Add)" in {
|
||||
val o1 = SquadInfo(Some("FragLANdINC"), Some("Frag"), Some(PlanetSideZoneID(10)), None, None)
|
||||
val o2 = SquadInfo(Some(7), 10)
|
||||
val o3 = SquadInfo("FragLANdINC", "Frag", PlanetSideZoneID(10), 7, 10)
|
||||
o1.And(o2) mustEqual o3
|
||||
}
|
||||
|
||||
"SquadInfo (Add, with blocked fields)" in {
|
||||
val o1 = SquadInfo(Some("FragLANdINC"), None, Some(PlanetSideZoneID(10)), None, Some(10))
|
||||
val o2 = SquadInfo(Some("Frag"), Some("Frag"), Some(PlanetSideZoneID(15)), Some(7), Some(7))
|
||||
val o3 = SquadInfo("FragLANdINC", "Frag", PlanetSideZoneID(10), 7, 10)
|
||||
o1.And(o2) mustEqual o3
|
||||
}
|
||||
|
||||
"decode (clear)" in {
|
||||
PacketCoding.DecodePacket(stringListClear).require match {
|
||||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 5
|
||||
behavior2.isDefined mustEqual true
|
||||
behavior2.get mustEqual 6
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 255
|
||||
entries.head.listing.isDefined mustEqual false
|
||||
entries.length mustEqual 0
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -75,27 +77,21 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 5
|
||||
behavior2.get mustEqual 6
|
||||
entries.length mustEqual 2
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 0
|
||||
entries.head.listing.isDefined mustEqual true
|
||||
entries.head.listing.get.unk1 mustEqual 131
|
||||
entries.head.listing.get.unk2 mustEqual false
|
||||
entries.head.listing.get.unk3.isDefined mustEqual false
|
||||
entries.head.listing.get.info.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.get mustEqual "FragLANdINC"
|
||||
entries.head.listing.get.info.get.task.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.task.get mustEqual "Frag"
|
||||
entries.head.listing.get.info.get.zone_id.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.zone_id.get mustEqual PlanetSideZoneID(10)
|
||||
entries.head.listing.get.info.get.size.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.size.get mustEqual 0
|
||||
entries.head.listing.get.info.get.capacity.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.capacity.get mustEqual 10
|
||||
entries.head.listing.get.info.get.squad_guid.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.squad_guid.get mustEqual PlanetSideGUID(1)
|
||||
entries(1).index mustEqual 255
|
||||
entries(1).listing.isDefined mustEqual false
|
||||
entries.head.listing.get.leader.isDefined mustEqual true
|
||||
entries.head.listing.get.leader.get mustEqual "FragLANdINC"
|
||||
entries.head.listing.get.task.isDefined mustEqual true
|
||||
entries.head.listing.get.task.get mustEqual "Frag"
|
||||
entries.head.listing.get.zone_id.isDefined mustEqual true
|
||||
entries.head.listing.get.zone_id.get mustEqual PlanetSideZoneID(10)
|
||||
entries.head.listing.get.size.isDefined mustEqual true
|
||||
entries.head.listing.get.size.get mustEqual 0
|
||||
entries.head.listing.get.capacity.isDefined mustEqual true
|
||||
entries.head.listing.get.capacity.get mustEqual 10
|
||||
entries.head.listing.get.squad_guid.isDefined mustEqual true
|
||||
entries.head.listing.get.squad_guid.get mustEqual PlanetSideGUID(1)
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -106,28 +102,21 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 5
|
||||
behavior2.get mustEqual 6
|
||||
entries.length mustEqual 3
|
||||
entries.length mustEqual 2
|
||||
entries.head.index mustEqual 0
|
||||
entries.head.listing.get.unk1 mustEqual 131
|
||||
entries.head.listing.get.unk2 mustEqual false
|
||||
entries.head.listing.get.unk3.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.leader.get mustEqual "GeneralGorgutz"
|
||||
entries.head.listing.get.info.get.task.get mustEqual "FLY,All welcome,cn last night!!!!"
|
||||
entries.head.listing.get.info.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries.head.listing.get.info.get.size.get mustEqual 7
|
||||
entries.head.listing.get.info.get.capacity.get mustEqual 10
|
||||
entries.head.listing.get.info.get.squad_guid.get mustEqual PlanetSideGUID(6)
|
||||
entries.head.listing.get.leader.get mustEqual "GeneralGorgutz"
|
||||
entries.head.listing.get.task.get mustEqual "FLY,All welcome,cn last night!!!!"
|
||||
entries.head.listing.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries.head.listing.get.size.get mustEqual 7
|
||||
entries.head.listing.get.capacity.get mustEqual 10
|
||||
entries.head.listing.get.squad_guid.get mustEqual PlanetSideGUID(6)
|
||||
entries(1).index mustEqual 1
|
||||
entries(1).listing.get.unk1 mustEqual 131
|
||||
entries(1).listing.get.unk2 mustEqual false
|
||||
entries(1).listing.get.unk3.isDefined mustEqual false
|
||||
entries(1).listing.get.info.get.leader.get mustEqual "KOKkiasMFCN"
|
||||
entries(1).listing.get.info.get.task.get mustEqual "Squad 2"
|
||||
entries(1).listing.get.info.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries(1).listing.get.info.get.size.get mustEqual 6
|
||||
entries(1).listing.get.info.get.capacity.get mustEqual 10
|
||||
entries(1).listing.get.info.get.squad_guid.get mustEqual PlanetSideGUID(4)
|
||||
entries(2).index mustEqual 255
|
||||
entries(1).listing.get.leader.get mustEqual "KOKkiasMFCN"
|
||||
entries(1).listing.get.task.get mustEqual "Squad 2"
|
||||
entries(1).listing.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries(1).listing.get.size.get mustEqual 6
|
||||
entries(1).listing.get.capacity.get mustEqual 10
|
||||
entries(1).listing.get.squad_guid.get mustEqual PlanetSideGUID(4)
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -138,38 +127,28 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 5
|
||||
behavior2.get mustEqual 6
|
||||
entries.length mustEqual 4
|
||||
entries.length mustEqual 3
|
||||
entries.head.index mustEqual 0
|
||||
entries.head.listing.get.unk1 mustEqual 131
|
||||
entries.head.listing.get.unk2 mustEqual false
|
||||
entries.head.listing.get.unk3.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.leader.get mustEqual "GeneralGorgutz"
|
||||
entries.head.listing.get.info.get.task.get mustEqual "FLY,All welcome,cn last night!!!!"
|
||||
entries.head.listing.get.info.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries.head.listing.get.info.get.size.get mustEqual 7
|
||||
entries.head.listing.get.info.get.capacity.get mustEqual 10
|
||||
entries.head.listing.get.info.get.squad_guid.get mustEqual PlanetSideGUID(6)
|
||||
entries.head.listing.get.leader.get mustEqual "GeneralGorgutz"
|
||||
entries.head.listing.get.task.get mustEqual "FLY,All welcome,cn last night!!!!"
|
||||
entries.head.listing.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries.head.listing.get.size.get mustEqual 7
|
||||
entries.head.listing.get.capacity.get mustEqual 10
|
||||
entries.head.listing.get.squad_guid.get mustEqual PlanetSideGUID(6)
|
||||
entries(1).index mustEqual 1
|
||||
entries(1).listing.get.unk1 mustEqual 131
|
||||
entries(1).listing.get.unk2 mustEqual false
|
||||
entries(1).listing.get.unk3.isDefined mustEqual false
|
||||
entries(1).listing.get.info.get.leader.get mustEqual "NIGHT88RAVEN"
|
||||
entries(1).listing.get.info.get.task.get mustEqual "All Welcome"
|
||||
entries(1).listing.get.info.get.zone_id.get mustEqual PlanetSideZoneID(10)
|
||||
entries(1).listing.get.info.get.size.get mustEqual 4
|
||||
entries(1).listing.get.info.get.capacity.get mustEqual 10
|
||||
entries(1).listing.get.info.get.squad_guid.get mustEqual PlanetSideGUID(3)
|
||||
entries(1).listing.get.leader.get mustEqual "NIGHT88RAVEN"
|
||||
entries(1).listing.get.task.get mustEqual "All Welcome"
|
||||
entries(1).listing.get.zone_id.get mustEqual PlanetSideZoneID(10)
|
||||
entries(1).listing.get.size.get mustEqual 4
|
||||
entries(1).listing.get.capacity.get mustEqual 10
|
||||
entries(1).listing.get.squad_guid.get mustEqual PlanetSideGUID(3)
|
||||
entries(2).index mustEqual 2
|
||||
entries(2).listing.get.unk1 mustEqual 131
|
||||
entries(2).listing.get.unk2 mustEqual false
|
||||
entries(2).listing.get.unk3.isDefined mustEqual false
|
||||
entries(2).listing.get.info.get.leader.get mustEqual "KOKkiasMFCN"
|
||||
entries(2).listing.get.info.get.task.get mustEqual "Squad 2"
|
||||
entries(2).listing.get.info.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries(2).listing.get.info.get.size.get mustEqual 6
|
||||
entries(2).listing.get.info.get.capacity.get mustEqual 10
|
||||
entries(2).listing.get.info.get.squad_guid.get mustEqual PlanetSideGUID(4)
|
||||
entries(3).index mustEqual 255
|
||||
entries(2).listing.get.leader.get mustEqual "KOKkiasMFCN"
|
||||
entries(2).listing.get.task.get mustEqual "Squad 2"
|
||||
entries(2).listing.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries(2).listing.get.size.get mustEqual 6
|
||||
entries(2).listing.get.capacity.get mustEqual 10
|
||||
entries(2).listing.get.squad_guid.get mustEqual PlanetSideGUID(4)
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -180,15 +159,9 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 1
|
||||
behavior2.isDefined mustEqual false
|
||||
entries.length mustEqual 2
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 5
|
||||
entries.head.listing.isDefined mustEqual true
|
||||
entries.head.listing.get.unk1 mustEqual 0
|
||||
entries.head.listing.get.unk2 mustEqual true
|
||||
entries.head.listing.get.unk3.isDefined mustEqual true
|
||||
entries.head.listing.get.unk3.get mustEqual 4
|
||||
entries.head.listing.get.info.isDefined mustEqual false
|
||||
entries(1).index mustEqual 255
|
||||
entries.head.listing.isDefined mustEqual false
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -199,22 +172,16 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 6
|
||||
behavior2.isDefined mustEqual false
|
||||
entries.length mustEqual 2
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 2
|
||||
entries.head.listing.isDefined mustEqual true
|
||||
entries.head.listing.get.unk1 mustEqual 128
|
||||
entries.head.listing.get.unk2 mustEqual true
|
||||
entries.head.listing.get.unk3.isDefined mustEqual true
|
||||
entries.head.listing.get.unk3.get mustEqual 0
|
||||
entries.head.listing.get.info.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.get mustEqual "FateJHNC"
|
||||
entries.head.listing.get.info.get.task.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.zone_id.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.size.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.squad_guid.isDefined mustEqual false
|
||||
entries(1).index mustEqual 255
|
||||
entries.head.listing.get.leader.isDefined mustEqual true
|
||||
entries.head.listing.get.leader.get mustEqual "FateJHNC"
|
||||
entries.head.listing.get.task.isDefined mustEqual false
|
||||
entries.head.listing.get.zone_id.isDefined mustEqual false
|
||||
entries.head.listing.get.size.isDefined mustEqual false
|
||||
entries.head.listing.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.squad_guid.isDefined mustEqual false
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -225,22 +192,16 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 6
|
||||
behavior2.isDefined mustEqual false
|
||||
entries.length mustEqual 2
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 5
|
||||
entries.head.listing.isDefined mustEqual true
|
||||
entries.head.listing.get.unk1 mustEqual 128
|
||||
entries.head.listing.get.unk2 mustEqual true
|
||||
entries.head.listing.get.unk3.isDefined mustEqual true
|
||||
entries.head.listing.get.unk3.get mustEqual 1
|
||||
entries.head.listing.get.info.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.task.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.task.get mustEqual "RIP PS1, visit PSForever.net"
|
||||
entries.head.listing.get.info.get.zone_id.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.size.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.squad_guid.isDefined mustEqual false
|
||||
entries(1).index mustEqual 255
|
||||
entries.head.listing.get.leader.isDefined mustEqual false
|
||||
entries.head.listing.get.task.isDefined mustEqual true
|
||||
entries.head.listing.get.task.get mustEqual "RIP PS1, visit PSForever.net"
|
||||
entries.head.listing.get.zone_id.isDefined mustEqual false
|
||||
entries.head.listing.get.size.isDefined mustEqual false
|
||||
entries.head.listing.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.squad_guid.isDefined mustEqual false
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -251,22 +212,16 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 6
|
||||
behavior2.isDefined mustEqual false
|
||||
entries.length mustEqual 2
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 3
|
||||
entries.head.listing.isDefined mustEqual true
|
||||
entries.head.listing.get.unk1 mustEqual 128
|
||||
entries.head.listing.get.unk2 mustEqual true
|
||||
entries.head.listing.get.unk3.isDefined mustEqual true
|
||||
entries.head.listing.get.unk3.get mustEqual 1
|
||||
entries.head.listing.get.info.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.task.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.zone_id.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.zone_id.get mustEqual PlanetSideZoneID(10)
|
||||
entries.head.listing.get.info.get.size.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.squad_guid.isDefined mustEqual false
|
||||
entries(1).index mustEqual 255
|
||||
entries.head.listing.get.leader.isDefined mustEqual false
|
||||
entries.head.listing.get.task.isDefined mustEqual false
|
||||
entries.head.listing.get.zone_id.isDefined mustEqual true
|
||||
entries.head.listing.get.zone_id.get mustEqual PlanetSideZoneID(10)
|
||||
entries.head.listing.get.size.isDefined mustEqual false
|
||||
entries.head.listing.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.squad_guid.isDefined mustEqual false
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -277,22 +232,16 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 6
|
||||
behavior2.isDefined mustEqual false
|
||||
entries.length mustEqual 2
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 1
|
||||
entries.head.listing.isDefined mustEqual true
|
||||
entries.head.listing.get.unk1 mustEqual 128
|
||||
entries.head.listing.get.unk2 mustEqual true
|
||||
entries.head.listing.get.unk3.isDefined mustEqual true
|
||||
entries.head.listing.get.unk3.get mustEqual 2
|
||||
entries.head.listing.get.info.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.task.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.zone_id.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.size.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.size.get mustEqual 6
|
||||
entries.head.listing.get.info.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.squad_guid.isDefined mustEqual false
|
||||
entries(1).index mustEqual 255
|
||||
entries.head.listing.get.leader.isDefined mustEqual false
|
||||
entries.head.listing.get.task.isDefined mustEqual false
|
||||
entries.head.listing.get.zone_id.isDefined mustEqual false
|
||||
entries.head.listing.get.size.isDefined mustEqual true
|
||||
entries.head.listing.get.size.get mustEqual 6
|
||||
entries.head.listing.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.squad_guid.isDefined mustEqual false
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -303,23 +252,17 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 6
|
||||
behavior2.isDefined mustEqual false
|
||||
entries.length mustEqual 2
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 5
|
||||
entries.head.listing.isDefined mustEqual true
|
||||
entries.head.listing.get.unk1 mustEqual 129
|
||||
entries.head.listing.get.unk2 mustEqual false
|
||||
entries.head.listing.get.unk3.isDefined mustEqual true
|
||||
entries.head.listing.get.unk3.get mustEqual 0
|
||||
entries.head.listing.get.info.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.get mustEqual "Jimmyn"
|
||||
entries.head.listing.get.info.get.task.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.zone_id.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.size.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.size.get mustEqual 3
|
||||
entries.head.listing.get.info.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.squad_guid.isDefined mustEqual false
|
||||
entries(1).index mustEqual 255
|
||||
entries.head.listing.get.leader.isDefined mustEqual true
|
||||
entries.head.listing.get.leader.get mustEqual "Jimmyn"
|
||||
entries.head.listing.get.task.isDefined mustEqual false
|
||||
entries.head.listing.get.zone_id.isDefined mustEqual false
|
||||
entries.head.listing.get.size.isDefined mustEqual true
|
||||
entries.head.listing.get.size.get mustEqual 3
|
||||
entries.head.listing.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.squad_guid.isDefined mustEqual false
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -330,23 +273,17 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 6
|
||||
behavior2.isDefined mustEqual false
|
||||
entries.length mustEqual 2
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 5
|
||||
entries.head.listing.isDefined mustEqual true
|
||||
entries.head.listing.get.unk1 mustEqual 129
|
||||
entries.head.listing.get.unk2 mustEqual false
|
||||
entries.head.listing.get.unk3.isDefined mustEqual true
|
||||
entries.head.listing.get.unk3.get mustEqual 1
|
||||
entries.head.listing.get.info.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.task.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.task.get mustEqual "2"
|
||||
entries.head.listing.get.info.get.zone_id.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries.head.listing.get.info.get.size.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.info.get.squad_guid.isDefined mustEqual false
|
||||
entries(1).index mustEqual 255
|
||||
entries.head.listing.get.leader.isDefined mustEqual false
|
||||
entries.head.listing.get.task.isDefined mustEqual true
|
||||
entries.head.listing.get.task.get mustEqual "2"
|
||||
entries.head.listing.get.zone_id.isDefined mustEqual true
|
||||
entries.head.listing.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries.head.listing.get.size.isDefined mustEqual false
|
||||
entries.head.listing.get.capacity.isDefined mustEqual false
|
||||
entries.head.listing.get.squad_guid.isDefined mustEqual false
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
|
|
@ -357,60 +294,57 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 6
|
||||
behavior2.isDefined mustEqual false
|
||||
entries.length mustEqual 2
|
||||
entries.length mustEqual 1
|
||||
entries.head.index mustEqual 7
|
||||
entries.head.listing.isDefined mustEqual true
|
||||
entries.head.listing.get.unk1 mustEqual 131
|
||||
entries.head.listing.get.unk2 mustEqual false
|
||||
entries.head.listing.get.unk3.isDefined mustEqual false
|
||||
entries.head.listing.get.info.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.leader.get mustEqual "madmuj"
|
||||
entries.head.listing.get.info.get.task.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.task.get mustEqual ""
|
||||
entries.head.listing.get.info.get.zone_id.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries.head.listing.get.info.get.size.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.size.get mustEqual 0
|
||||
entries.head.listing.get.info.get.capacity.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.capacity.get mustEqual 10
|
||||
entries.head.listing.get.info.get.squad_guid.isDefined mustEqual true
|
||||
entries.head.listing.get.info.get.squad_guid.get mustEqual PlanetSideGUID(11)
|
||||
entries(1).index mustEqual 255
|
||||
entries.head.listing.get.leader.isDefined mustEqual true
|
||||
entries.head.listing.get.leader.get mustEqual "madmuj"
|
||||
entries.head.listing.get.task.isDefined mustEqual true
|
||||
entries.head.listing.get.task.get mustEqual ""
|
||||
entries.head.listing.get.zone_id.isDefined mustEqual true
|
||||
entries.head.listing.get.zone_id.get mustEqual PlanetSideZoneID(4)
|
||||
entries.head.listing.get.size.isDefined mustEqual true
|
||||
entries.head.listing.get.size.get mustEqual 0
|
||||
entries.head.listing.get.capacity.isDefined mustEqual true
|
||||
entries.head.listing.get.capacity.get mustEqual 10
|
||||
entries.head.listing.get.squad_guid.isDefined mustEqual true
|
||||
entries.head.listing.get.squad_guid.get mustEqual PlanetSideGUID(11)
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
}
|
||||
|
||||
"decode (fails)" in {
|
||||
PacketCoding.DecodePacket(stringCodecFail).isFailure mustEqual true
|
||||
//PacketCoding.DecodePacket(stringListOneFail).isFailure mustEqual true -> used to fail
|
||||
//PacketCoding.DecodePacket(stringListTwoFail).isFailure mustEqual true -> used to fail
|
||||
PacketCoding.DecodePacket(stringUpdateLeaderFail).isFailure mustEqual true
|
||||
PacketCoding.DecodePacket(stringUpdateTaskFail).isFailure mustEqual true
|
||||
//PacketCoding.DecodePacket(stringUpdateContinentFail).isFailure mustEqual true -> used to fail
|
||||
PacketCoding.DecodePacket(stringUpdateSizeFail).isFailure mustEqual true
|
||||
PacketCoding.DecodePacket(stringUpdateLeaderSizeFail).isFailure mustEqual true
|
||||
PacketCoding.DecodePacket(stringUpdateTaskContinentFail).isFailure mustEqual true
|
||||
//PacketCoding.DecodePacket(stringUpdateAllFail).isFailure mustEqual true -> used to fail
|
||||
"decode (remove 1 and update 0)" in {
|
||||
PacketCoding.DecodePacket(stringRemoveUpdate).require match {
|
||||
case ReplicationStreamMessage(behavior, behavior2, entries) =>
|
||||
behavior mustEqual 1
|
||||
behavior2.isDefined mustEqual false
|
||||
entries.length mustEqual 2
|
||||
entries.head.index mustEqual 1
|
||||
entries.head.listing.isDefined mustEqual false
|
||||
entries(1).listing.get.leader.isDefined mustEqual false
|
||||
entries(1).listing.get.task.isDefined mustEqual false
|
||||
entries(1).listing.get.zone_id.isDefined mustEqual false
|
||||
entries(1).listing.get.size.isDefined mustEqual true
|
||||
entries(1).listing.get.size.get mustEqual 10
|
||||
entries(1).listing.get.capacity.isDefined mustEqual false
|
||||
entries(1).listing.get.squad_guid.isDefined mustEqual false
|
||||
case _ =>
|
||||
ko
|
||||
}
|
||||
}
|
||||
|
||||
"encode (clear)" in {
|
||||
val msg = ReplicationStreamMessage(5, Some(6),
|
||||
Vector(
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
val msg = ReplicationStreamMessage(5, Some(6), Vector.empty)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
||||
pkt mustEqual stringListClear
|
||||
}
|
||||
|
||||
"encode (one)" in {
|
||||
val msg = ReplicationStreamMessage(5, Some(6),
|
||||
Vector(
|
||||
SquadListing(0, Some(SquadHeader(131, false, None, SquadInfo("FragLANdINC", "Frag", PlanetSideZoneID(10), 0, 10, PlanetSideGUID(1))))),
|
||||
SquadListing(255)
|
||||
val msg = ReplicationStreamMessage(
|
||||
Seq(
|
||||
SquadInfo("FragLANdINC", "Frag", PlanetSideZoneID(10), 0, 10, PlanetSideGUID(1))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -419,11 +353,10 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
}
|
||||
|
||||
"encode (two)" in {
|
||||
val msg = ReplicationStreamMessage(5, Some(6),
|
||||
Vector(
|
||||
SquadListing(0, Some(SquadHeader(131, false, None, SquadInfo("GeneralGorgutz", "FLY,All welcome,cn last night!!!!", PlanetSideZoneID(4), 7, 10, PlanetSideGUID(6))))),
|
||||
SquadListing(1, Some(SquadHeader(131, false, None, SquadInfo("KOKkiasMFCN", "Squad 2", PlanetSideZoneID(4), 6, 10, PlanetSideGUID(4))))),
|
||||
SquadListing(255)
|
||||
val msg = ReplicationStreamMessage(
|
||||
Seq(
|
||||
SquadInfo("GeneralGorgutz", "FLY,All welcome,cn last night!!!!", PlanetSideZoneID(4), 7, 10, PlanetSideGUID(6)),
|
||||
SquadInfo("KOKkiasMFCN", "Squad 2", PlanetSideZoneID(4), 6, 10, PlanetSideGUID(4))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -432,12 +365,11 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
}
|
||||
|
||||
"encode (three)" in {
|
||||
val msg = ReplicationStreamMessage(5, Some(6),
|
||||
Vector(
|
||||
SquadListing(0, Some(SquadHeader(131, false, None, SquadInfo("GeneralGorgutz", "FLY,All welcome,cn last night!!!!", PlanetSideZoneID(4), 7, 10, PlanetSideGUID(6))))),
|
||||
SquadListing(1, Some(SquadHeader(131, false, None, SquadInfo("NIGHT88RAVEN", "All Welcome", PlanetSideZoneID(10), 4, 10, PlanetSideGUID(3))))),
|
||||
SquadListing(2, Some(SquadHeader(131, false, None, SquadInfo("KOKkiasMFCN", "Squad 2", PlanetSideZoneID(4), 6, 10, PlanetSideGUID(4))))),
|
||||
SquadListing(255)
|
||||
val msg = ReplicationStreamMessage(
|
||||
Seq(
|
||||
SquadInfo("GeneralGorgutz", "FLY,All welcome,cn last night!!!!", PlanetSideZoneID(4), 7, 10, PlanetSideGUID(6)),
|
||||
SquadInfo("NIGHT88RAVEN", "All Welcome", PlanetSideZoneID(10), 4, 10, PlanetSideGUID(3)),
|
||||
SquadInfo("KOKkiasMFCN", "Squad 2", PlanetSideZoneID(4), 6, 10, PlanetSideGUID(4))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -448,8 +380,7 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
"encode (remove)" in {
|
||||
val msg = ReplicationStreamMessage(1, None,
|
||||
Vector(
|
||||
SquadListing(5, Some(SquadHeader(0, true, Some(4)))),
|
||||
SquadListing(255)
|
||||
SquadListing(5, None)
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -460,8 +391,7 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
"encode (update leader)" in {
|
||||
val msg = ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(2, Some(SquadHeader(128, true, Some(0), SquadInfo("FateJHNC", None)))),
|
||||
SquadListing(255)
|
||||
SquadListing(2, SquadInfo("FateJHNC"))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -472,8 +402,7 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
"encode (update task)" in {
|
||||
val msg = ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(5, Some(SquadHeader(128, true, Some(1), SquadInfo(None, "RIP PS1, visit PSForever.net")))),
|
||||
SquadListing(255)
|
||||
SquadListing(5, SquadInfo(None, "RIP PS1, visit PSForever.net"))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -484,8 +413,7 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
"encode (update continent)" in {
|
||||
val msg = ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(3, Some(SquadHeader(128, true, Some(1), SquadInfo(PlanetSideZoneID(10))))),
|
||||
SquadListing(255)
|
||||
SquadListing(3, SquadInfo(PlanetSideZoneID(10)))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -496,8 +424,7 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
"encode (update size)" in {
|
||||
val msg = ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(1, Some(SquadHeader(128, true, Some(2), SquadInfo(6, None)))),
|
||||
SquadListing(255)
|
||||
SquadListing(1, SquadInfo(6))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -508,8 +435,7 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
"encode (update leader and size)" in {
|
||||
val msg = ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(5, Some(SquadHeader(129, false, Some(0), SquadInfo("Jimmyn", 3)))),
|
||||
SquadListing(255)
|
||||
SquadListing(5, SquadInfo("Jimmyn").And(SquadInfo(3)))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -520,8 +446,7 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
"encode (update task and continent)" in {
|
||||
val msg = ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(5, Some(SquadHeader(129, false, Some(1), SquadInfo("2", PlanetSideZoneID(4))))),
|
||||
SquadListing(255)
|
||||
SquadListing(5, SquadInfo(None, "2").And(SquadInfo(PlanetSideZoneID(4))))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -532,8 +457,7 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
"encode (update all)" in {
|
||||
val msg = ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(7, Some(SquadHeader(131, false, None, SquadInfo("madmuj", "", PlanetSideZoneID(4), 0, 10, PlanetSideGUID(11))))),
|
||||
SquadListing(255)
|
||||
SquadListing(7, SquadInfo("madmuj", "", PlanetSideZoneID(4), 0, 10, PlanetSideGUID(11)))
|
||||
)
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
|
@ -541,116 +465,15 @@ class ReplicationStreamMessageTest extends Specification {
|
|||
pkt mustEqual stringUpdateAll
|
||||
}
|
||||
|
||||
"encode (fails)" in {
|
||||
//encode codec fail
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(1, None,
|
||||
Vector(
|
||||
SquadListing(5, Some(SquadHeader(0, false, Some(4)))),
|
||||
SquadListing(255)
|
||||
)
|
||||
"encode (remove 1 and update 0)" in {
|
||||
val msg = ReplicationStreamMessage(1, None,
|
||||
Vector(
|
||||
SquadListing(1, None),
|
||||
SquadListing(0, SquadInfo(10))
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
)
|
||||
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||
|
||||
//encode one
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(5, Some(6),
|
||||
Vector(
|
||||
SquadListing(0, Some(SquadHeader(131, false, None, Some(SquadInfo(Some("FragLANdINC"), Some("Frag"), None, Some(0),Some(10), Some(PlanetSideGUID(1))))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
|
||||
//encode two
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(5, Some(6),
|
||||
Vector(
|
||||
SquadListing(0, Some(SquadHeader(131, false, None, SquadInfo("GeneralGorgutz", "FLY,All welcome,cn last night!!!!", PlanetSideZoneID(4), 7, 10, PlanetSideGUID(6))))),
|
||||
SquadListing(1, Some(SquadHeader(131, false, None, Some(SquadInfo(Some("KOKkiasMFCN"), Some("Squad 2"), None, Some(6), Some(10), Some(PlanetSideGUID(4))))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
|
||||
//encode leader
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(2, Some(SquadHeader(128, true, Some(0), Some(SquadInfo(None, None, None, None, None, None))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
|
||||
//encode task
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(5, Some(SquadHeader(128, true, Some(1), Some(SquadInfo(None, None, None, None, None, None))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
|
||||
//encode continent
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(3, Some(SquadHeader(128, true, Some(1), Some(SquadInfo(None, None, None, None, None, None))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
|
||||
//encode task or continent
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(3, Some(SquadHeader(128, true, Some(1), Some(SquadInfo(None, Some(""), Some(PlanetSideZoneID(10)), None, None, None))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
|
||||
//encode size
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(1, Some(SquadHeader(128, true, Some(2), Some(SquadInfo(None, None, None, None, None, None))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
|
||||
//encode leader and size
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(5, Some(SquadHeader(129, false, Some(0), Some(SquadInfo(None, None, None, None, None, None))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
|
||||
//encode task and continent
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(5, Some(SquadHeader(129, false, Some(1), Some(SquadInfo(None, None, None, None, None, None))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
|
||||
//encode all
|
||||
PacketCoding.EncodePacket(
|
||||
ReplicationStreamMessage(6, None,
|
||||
Vector(
|
||||
SquadListing(7, Some(SquadHeader(131, false, None, Some(SquadInfo(None, None, None, None, None, None))))),
|
||||
SquadListing(255)
|
||||
)
|
||||
)
|
||||
).isFailure mustEqual true
|
||||
pkt mustEqual stringRemoveUpdate
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -798,7 +798,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
traveler = new Traveler(self, continent.Id)
|
||||
//PropertyOverrideMessage
|
||||
sendResponse(PlanetsideAttributeMessage(PlanetSideGUID(0), 112, 0)) // disable festive backpacks
|
||||
sendResponse(ReplicationStreamMessage(5, Some(6), Vector(SquadListing()))) //clear squad list
|
||||
sendResponse(ReplicationStreamMessage(5, Some(6), Vector.empty)) //clear squad list
|
||||
sendResponse(FriendsResponse(FriendAction.InitializeFriendList, 0, true, true, Nil))
|
||||
sendResponse(FriendsResponse(FriendAction.InitializeIgnoreList, 0, true, true, Nil))
|
||||
avatarService ! Service.Join(avatar.name) //channel will be player.Name
|
||||
|
|
@ -3003,7 +3003,7 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
sendResponse(TimeOfDayMessage(1191182336))
|
||||
//custom
|
||||
sendResponse(ContinentalLockUpdateMessage(13, PlanetSideEmpire.VS)) // "The VS have captured the VS Sanctuary."
|
||||
sendResponse(ReplicationStreamMessage(5, Some(6), Vector(SquadListing()))) //clear squad list
|
||||
sendResponse(ReplicationStreamMessage(5, Some(6), Vector.empty)) //clear squad list
|
||||
sendResponse(PlanetsideAttributeMessage(PlanetSideGUID(0), 112, 0)) // disable festive backpacks
|
||||
//(0 to 255).foreach(i => { sendResponse(SetEmpireMessage(PlanetSideGUID(i), PlanetSideEmpire.VS)) })
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue