mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-12 06:55:10 +00:00
added tests for TargetingRequest but not certain I trust my results; will explore further
This commit is contained in:
parent
0629fa5eb7
commit
3a2d8062bf
2 changed files with 94 additions and 11 deletions
|
|
@ -4,7 +4,6 @@ package net.psforever.packet.game
|
||||||
import net.psforever.packet.{GamePacketOpcode, Marshallable, PlanetSideGamePacket}
|
import net.psforever.packet.{GamePacketOpcode, Marshallable, PlanetSideGamePacket}
|
||||||
import scodec.Codec
|
import scodec.Codec
|
||||||
import scodec.codecs._
|
import scodec.codecs._
|
||||||
import shapeless.{::, HNil}
|
|
||||||
|
|
||||||
final case class TargetRequest(target_guid : PlanetSideGUID,
|
final case class TargetRequest(target_guid : PlanetSideGUID,
|
||||||
unk : Boolean)
|
unk : Boolean)
|
||||||
|
|
@ -20,16 +19,7 @@ object TargetingImplantRequest extends Marshallable[TargetingImplantRequest] {
|
||||||
private val request_codec : Codec[TargetRequest] = (
|
private val request_codec : Codec[TargetRequest] = (
|
||||||
("target_guid" | PlanetSideGUID.codec) ::
|
("target_guid" | PlanetSideGUID.codec) ::
|
||||||
("unk" | bool)
|
("unk" | bool)
|
||||||
).xmap[TargetRequest] (
|
).as[TargetRequest]
|
||||||
{
|
|
||||||
case a :: b :: HNil =>
|
|
||||||
TargetRequest(a, b)
|
|
||||||
},
|
|
||||||
{
|
|
||||||
case TargetRequest(a, b) =>
|
|
||||||
a :: b :: HNil
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
implicit val codec : Codec[TargetingImplantRequest] = ("target_list" | listOfN(intL(6), request_codec)).as[TargetingImplantRequest]
|
implicit val codec : Codec[TargetingImplantRequest] = ("target_list" | listOfN(intL(6), request_codec)).as[TargetingImplantRequest]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
93
common/src/test/scala/game/TargetingImplantRequestTest.scala
Normal file
93
common/src/test/scala/game/TargetingImplantRequestTest.scala
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
// Copyright (c) 2017 PSForever
|
||||||
|
package game
|
||||||
|
|
||||||
|
import org.specs2.mutable._
|
||||||
|
import net.psforever.packet._
|
||||||
|
import net.psforever.packet.game._
|
||||||
|
import scodec.bits._
|
||||||
|
|
||||||
|
class TargetingImplantRequestTest extends Specification {
|
||||||
|
val string = hex"b5 41edeb12d4409f0144053f8010541ba91d03df376831b1e26000611041e1107c0209c0"//0510085013d9ffb6720d5b132900003770?
|
||||||
|
|
||||||
|
"decode" in {
|
||||||
|
PacketCoding.DecodePacket(string).require match {
|
||||||
|
case TargetingImplantRequest(target_list) =>
|
||||||
|
target_list.length mustEqual 16
|
||||||
|
//0
|
||||||
|
target_list.head.target_guid mustEqual PlanetSideGUID(31355)
|
||||||
|
target_list.head.unk mustEqual true
|
||||||
|
//1
|
||||||
|
target_list(1).target_guid mustEqual PlanetSideGUID(27273)
|
||||||
|
target_list(1).unk mustEqual false
|
||||||
|
//2
|
||||||
|
target_list(2).target_guid mustEqual PlanetSideGUID(40768)
|
||||||
|
target_list(2).unk mustEqual false
|
||||||
|
//3
|
||||||
|
target_list(3).target_guid mustEqual PlanetSideGUID(34818)
|
||||||
|
target_list(3).unk mustEqual false
|
||||||
|
//4
|
||||||
|
target_list(4).target_guid mustEqual PlanetSideGUID(65044)
|
||||||
|
target_list(4).unk mustEqual false
|
||||||
|
//5
|
||||||
|
target_list(5).target_guid mustEqual PlanetSideGUID(33280)
|
||||||
|
target_list(5).unk mustEqual true
|
||||||
|
//6
|
||||||
|
target_list(6).target_guid mustEqual PlanetSideGUID(47681)
|
||||||
|
target_list(6).unk mustEqual true
|
||||||
|
//7
|
||||||
|
target_list(7).target_guid mustEqual PlanetSideGUID(40995)
|
||||||
|
target_list(7).unk mustEqual false
|
||||||
|
//8
|
||||||
|
target_list(8).target_guid mustEqual PlanetSideGUID(52727)
|
||||||
|
target_list(8).unk mustEqual true
|
||||||
|
//9
|
||||||
|
target_list(9).target_guid mustEqual PlanetSideGUID(6324)
|
||||||
|
target_list(9).unk mustEqual true
|
||||||
|
//10
|
||||||
|
target_list(10).target_guid mustEqual PlanetSideGUID(58033)
|
||||||
|
target_list(10).unk mustEqual false
|
||||||
|
//11
|
||||||
|
target_list(11).target_guid mustEqual PlanetSideGUID(192)
|
||||||
|
target_list(11).unk mustEqual true
|
||||||
|
//12
|
||||||
|
target_list(12).target_guid mustEqual PlanetSideGUID(16772)
|
||||||
|
target_list(12).unk mustEqual false
|
||||||
|
//13
|
||||||
|
target_list(13).target_guid mustEqual PlanetSideGUID(2063)
|
||||||
|
target_list(13).unk mustEqual true
|
||||||
|
//14
|
||||||
|
target_list(14).target_guid mustEqual PlanetSideGUID(49159)
|
||||||
|
target_list(14).unk mustEqual false
|
||||||
|
//15
|
||||||
|
target_list(15).target_guid mustEqual PlanetSideGUID(14401)
|
||||||
|
target_list(15).unk mustEqual false
|
||||||
|
case _ =>
|
||||||
|
ko
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"encode" in {
|
||||||
|
val msg = TargetingImplantRequest(
|
||||||
|
TargetRequest(PlanetSideGUID(31355), true) ::
|
||||||
|
TargetRequest(PlanetSideGUID(27273), false) ::
|
||||||
|
TargetRequest(PlanetSideGUID(40768), false) ::
|
||||||
|
TargetRequest(PlanetSideGUID(34818), false) ::
|
||||||
|
TargetRequest(PlanetSideGUID(65044), false) ::
|
||||||
|
TargetRequest(PlanetSideGUID(33280), true) ::
|
||||||
|
TargetRequest(PlanetSideGUID(47681), true) ::
|
||||||
|
TargetRequest(PlanetSideGUID(40995), false) ::
|
||||||
|
TargetRequest(PlanetSideGUID(52727), true) ::
|
||||||
|
TargetRequest(PlanetSideGUID(6324), true) ::
|
||||||
|
TargetRequest(PlanetSideGUID(58033), false) ::
|
||||||
|
TargetRequest(PlanetSideGUID(192), true) ::
|
||||||
|
TargetRequest(PlanetSideGUID(16772), false) ::
|
||||||
|
TargetRequest(PlanetSideGUID(2063), true) ::
|
||||||
|
TargetRequest(PlanetSideGUID(49159), false) ::
|
||||||
|
TargetRequest(PlanetSideGUID(14401), false) ::
|
||||||
|
Nil
|
||||||
|
)
|
||||||
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
||||||
|
|
||||||
|
pkt mustEqual string
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue