2019-07-30 15:30:57 +00:00
|
|
|
// Copyright (c) 2017 PSForever
|
|
|
|
|
package game
|
|
|
|
|
|
|
|
|
|
import org.specs2.mutable._
|
|
|
|
|
import net.psforever.packet._
|
|
|
|
|
import net.psforever.packet.game._
|
2020-01-06 13:45:55 +00:00
|
|
|
import net.psforever.types.{CertificationType, PlanetSideGUID}
|
2019-07-30 15:30:57 +00:00
|
|
|
import scodec.bits._
|
|
|
|
|
|
|
|
|
|
class CharacterKnowledgeMessageTest extends Specification {
|
|
|
|
|
val string = hex"ec cc637a02 45804600720061006e006b0065006e00740061006e006b0003c022dc0008f01800"
|
|
|
|
|
|
|
|
|
|
"decode" in {
|
|
|
|
|
PacketCoding.DecodePacket(string).require match {
|
|
|
|
|
case CharacterKnowledgeMessage(char_id, Some(info)) =>
|
|
|
|
|
char_id mustEqual 41575372L
|
|
|
|
|
info mustEqual CharacterKnowledgeInfo(
|
|
|
|
|
"Frankentank",
|
|
|
|
|
Set(
|
|
|
|
|
CertificationType.StandardAssault,
|
|
|
|
|
CertificationType.ArmoredAssault1,
|
|
|
|
|
CertificationType.MediumAssault,
|
|
|
|
|
CertificationType.ReinforcedExoSuit,
|
|
|
|
|
CertificationType.Harasser,
|
|
|
|
|
CertificationType.Engineering,
|
|
|
|
|
CertificationType.GroundSupport,
|
|
|
|
|
CertificationType.AgileExoSuit,
|
|
|
|
|
CertificationType.AIMAX,
|
|
|
|
|
CertificationType.StandardExoSuit,
|
|
|
|
|
CertificationType.AAMAX,
|
|
|
|
|
CertificationType.ArmoredAssault2
|
|
|
|
|
),
|
|
|
|
|
15,
|
|
|
|
|
0,
|
|
|
|
|
PlanetSideGUID(12)
|
|
|
|
|
)
|
|
|
|
|
case _ =>
|
|
|
|
|
ko
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"encode" in {
|
|
|
|
|
val msg = CharacterKnowledgeMessage(
|
|
|
|
|
41575372L,
|
|
|
|
|
CharacterKnowledgeInfo(
|
|
|
|
|
"Frankentank",
|
|
|
|
|
Set(
|
|
|
|
|
CertificationType.StandardAssault,
|
|
|
|
|
CertificationType.ArmoredAssault1,
|
|
|
|
|
CertificationType.MediumAssault,
|
|
|
|
|
CertificationType.ReinforcedExoSuit,
|
|
|
|
|
CertificationType.Harasser,
|
|
|
|
|
CertificationType.Engineering,
|
|
|
|
|
CertificationType.GroundSupport,
|
|
|
|
|
CertificationType.AgileExoSuit,
|
|
|
|
|
CertificationType.AIMAX,
|
|
|
|
|
CertificationType.StandardExoSuit,
|
|
|
|
|
CertificationType.AAMAX,
|
|
|
|
|
CertificationType.ArmoredAssault2
|
|
|
|
|
),
|
|
|
|
|
15,
|
|
|
|
|
0,
|
|
|
|
|
PlanetSideGUID(12)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
|
|
|
|
|
|
|
|
|
pkt mustEqual string
|
|
|
|
|
}
|
|
|
|
|
}
|