PSF-BotServer/common/src/test/scala/game/PlayerStateMessageUpstreamTest.scala

42 lines
1.5 KiB
Scala
Raw Normal View History

2017-03-06 19:30:45 -05:00
// Copyright (c) 2017 PSForever
package game
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game._
import net.psforever.types.Vector3
import scodec.bits._
class PlayerStateMessageUpstreamTest extends Specification {
val string = hex"BD 4B000 E377BA575B616C640A70004014060110007000000"
"decode" in {
PacketCoding.DecodePacket(string).require match {
2017-04-11 14:03:56 +02:00
case PlayerStateMessageUpstream(avatar_guid, pos, vel, facingYaw, facingPitch, facingYawUpper, seq_time, unk1, is_crouching, is_jumping, jump_thrust, is_cloaked, unk2, unk3) =>
avatar_guid mustEqual PlanetSideGUID(75)
pos mustEqual Vector3(3694.1094f, 2735.4531f, 90.84375f)
vel mustEqual Some(Vector3(4.375f, 2.59375f, 0.0f))
facingYaw mustEqual 61.875f
facingPitch mustEqual 351.5625f
facingYawUpper mustEqual 0.0f
seq_time mustEqual 136
2017-04-11 14:03:56 +02:00
unk1 mustEqual 0
is_crouching mustEqual false
2017-04-11 14:03:56 +02:00
is_jumping mustEqual false
jump_thrust mustEqual false
is_cloaked mustEqual false
unk2 mustEqual 112
unk3 mustEqual 0
case _ =>
ko
}
}
"encode" in {
val msg = PlayerStateMessageUpstream(PlanetSideGUID(75), Vector3(3694.1094f, 2735.4531f, 90.84375f), Some(Vector3(4.375f, 2.59375f, 0.0f)), 61.875f, 351.5625f, 0.0f, 136, 0, false, false, false, false, 112, 0)
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
pkt mustEqual string
}
}