Merge pull request #1159 from Resaec/squad_voice_host_request_message

Fully implement the VoiceHostRequest packet
This commit is contained in:
Fate-JH 2024-01-08 11:25:00 -05:00 committed by GitHub
commit da32c68479
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 98 additions and 21 deletions

View file

@ -4,26 +4,91 @@ package game
import org.specs2.mutable._
import net.psforever.packet._
import net.psforever.packet.game._
import net.psforever.types.PlanetSideGUID
import scodec.bits._
class VoiceHostRequestTest extends Specification {
val string_request = hex"b0 2580 00"
val string_request_local_75_high = hex"b0 2580 01 c0 00"
val string_request_local_1111_mid = hex"b0 2b82 64 c0 00"
val string_request_local_1112_mid = hex"b0 2c02 64 c0 00"
val string_request_remote_12345_high = hex"b0 9c98 01 c7 803131312e3232322e3132332e323334"
"decode" in {
PacketCoding.decodePacket(string_request).require match {
case VoiceHostRequest(unk, player, _) =>
unk mustEqual false
player mustEqual PlanetSideGUID(75)
"decode local 75 high" in {
PacketCoding.decodePacket(string_request_local_75_high).require match {
case VoiceHostRequest(remote_host, port, bandwidth, server_ip, data) =>
remote_host mustEqual false
port mustEqual 75
bandwidth mustEqual 3
server_ip mustEqual ""
data mustEqual ByteVector.empty
case _ =>
ko
}
}
"encode" in {
val msg = VoiceHostRequest(false, PlanetSideGUID(75), ByteVector.empty)
"encode local 75 high" in {
val msg = VoiceHostRequest(remote_host = false, 75, 3, "", ByteVector.empty)
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
pkt mustEqual string_request
pkt mustEqual string_request_local_75_high
}
"decode local 1111 mid" in {
PacketCoding.decodePacket(string_request_local_1111_mid).require match {
case VoiceHostRequest(remote_host, port, bandwidth, server_ip, data) =>
remote_host mustEqual false
port mustEqual 1111
bandwidth mustEqual 201
server_ip mustEqual ""
data mustEqual ByteVector.empty
case _ =>
ko
}
}
"encode local 1111 mid" in {
val msg = VoiceHostRequest(remote_host = false, 1111, 201, "", ByteVector.empty)
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
pkt mustEqual string_request_local_1111_mid
}
"decode local 1112 mid" in {
PacketCoding.decodePacket(string_request_local_1112_mid).require match {
case VoiceHostRequest(remote_host, port, bandwidth, server_ip, data) =>
remote_host mustEqual false
port mustEqual 1112
bandwidth mustEqual 201
server_ip mustEqual ""
data mustEqual ByteVector.empty
case _ =>
ko
}
}
"encode local 1112 mid" in {
val msg = VoiceHostRequest(remote_host = false, 1112, 201, "", ByteVector.empty)
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
pkt mustEqual string_request_local_1112_mid
}
"decode remote 12345 high" in {
PacketCoding.decodePacket(string_request_remote_12345_high).require match {
case VoiceHostRequest(remote, port, codec, server_ip, data) =>
remote mustEqual true
port mustEqual 12345
codec mustEqual 3
server_ip mustEqual "111.222.123.234"
data mustEqual ByteVector.empty
case _ =>
ko
}
}
"encode remote 12345 high" in {
val msg = VoiceHostRequest(remote_host = true, port = 12345, bandwidth = 3, remote_ip = "111.222.123.234", ByteVector.empty)
val pkt = PacketCoding.encodePacket(msg).require.toByteVector
pkt mustEqual string_request_remote_12345_high
}
}