PSF-BotServer/src/test/scala/game/CharacterKnowledgeMessageTest.scala
Fate-JH ebfc028f5c
Team Building Exercise [Incomplete] (#1013)
* Squad -> SquadFeatures from a common lookup

* refactor to SquadService, etc.; clarification of fields related to outfit ids

* thorough pass over squad functionality in regards to joining a squad or rejecting a squad invitation

* decorating squads in the squad list to indicate availability based on size/capacity or role requirements

* squad list decoration; rudimentary squad list searching

* renovations to squad joining, promotion, and certain invitation/cleanup procedures

* further renovations to squad joining, promotion, and certain invitation/cleanup procedures

* overhaul of squad joining and squad promotion

* separated the invitation system from the squad publishing and manipulating system
2023-01-16 10:42:05 -05:00

72 lines
2 KiB
Scala

// Copyright (c) 2017 PSForever
package game
import net.psforever.objects.avatar.Certification
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game._
import net.psforever.types.PlanetSideGUID
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(
Certification.StandardAssault,
Certification.ArmoredAssault1,
Certification.MediumAssault,
Certification.ReinforcedExoSuit,
Certification.Harasser,
Certification.Engineering,
Certification.GroundSupport,
Certification.AgileExoSuit,
Certification.AIMAX,
Certification.StandardExoSuit,
Certification.AAMAX,
Certification.ArmoredAssault2
),
15,
0,
12
)
case _ =>
ko
}
}
"encode" in {
val msg = CharacterKnowledgeMessage(
41575372L,
CharacterKnowledgeInfo(
"Frankentank",
Set(
Certification.StandardAssault,
Certification.ArmoredAssault1,
Certification.MediumAssault,
Certification.ReinforcedExoSuit,
Certification.Harasser,
Certification.Engineering,
Certification.GroundSupport,
Certification.AgileExoSuit,
Certification.AIMAX,
Certification.StandardExoSuit,
Certification.AAMAX,
Certification.ArmoredAssault2
),
15,
0,
12
)
)
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
pkt mustEqual string
}
}