mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-02-24 09:03:39 +00:00
94 lines
3 KiB
Scala
94 lines
3 KiB
Scala
// Copyright (c) 2017 PSForever
|
|
package game
|
|
|
|
import org.specs2.mutable._
|
|
import net.psforever.packet._
|
|
import net.psforever.packet.game._
|
|
import scodec.bits._
|
|
|
|
class VoiceHostRequestTest extends Specification {
|
|
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 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 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_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
|
|
}
|
|
}
|