2018-03-03 21:21:41 -05:00
|
|
|
// Copyright (c) 2017 PSForever
|
|
|
|
|
package game
|
|
|
|
|
|
|
|
|
|
import org.specs2.mutable._
|
|
|
|
|
import net.psforever.packet._
|
|
|
|
|
import net.psforever.packet.game._
|
|
|
|
|
import scodec.bits._
|
|
|
|
|
|
|
|
|
|
class DensityLevelUpdateMessageTest extends Specification {
|
|
|
|
|
val string = hex"cd 0100 1f4e 000000"
|
|
|
|
|
|
|
|
|
|
"decode" in {
|
|
|
|
|
PacketCoding.DecodePacket(string).require match {
|
|
|
|
|
case DensityLevelUpdateMessage(zone_id, building_id, unk) =>
|
2018-03-04 22:19:56 -05:00
|
|
|
zone_id mustEqual 1
|
|
|
|
|
building_id mustEqual 19999
|
2018-03-03 21:21:41 -05:00
|
|
|
unk.length mustEqual 8
|
|
|
|
|
unk.head mustEqual 0
|
|
|
|
|
unk(1) mustEqual 0
|
|
|
|
|
unk(2) mustEqual 0
|
|
|
|
|
unk(3) mustEqual 0
|
|
|
|
|
unk(4) mustEqual 0
|
|
|
|
|
unk(5) mustEqual 0
|
|
|
|
|
unk(6) mustEqual 0
|
|
|
|
|
unk(7) mustEqual 0
|
|
|
|
|
case _ =>
|
|
|
|
|
ko
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"encode" in {
|
2020-07-14 05:54:05 +02:00
|
|
|
val msg = DensityLevelUpdateMessage(1, 19999, List(0, 0, 0, 0, 0, 0, 0, 0))
|
2018-03-03 21:21:41 -05:00
|
|
|
val pkt = PacketCoding.EncodePacket(msg).require.toByteVector
|
|
|
|
|
|
|
|
|
|
pkt mustEqual string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"encode (failure; wrong number of list entries)" in {
|
2018-03-04 22:19:56 -05:00
|
|
|
val msg = DensityLevelUpdateMessage(1, 19999, List(0))
|
2018-03-03 21:21:41 -05:00
|
|
|
PacketCoding.EncodePacket(msg).isSuccessful mustEqual false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"encode (failure; list number too big)" in {
|
2020-07-14 05:54:05 +02:00
|
|
|
val msg = DensityLevelUpdateMessage(1, 19999, List(0, 0, 0, 0, 0, 0, 0, 8))
|
2018-03-07 22:58:42 -05:00
|
|
|
PacketCoding.EncodePacket(msg).isSuccessful mustEqual false
|
2018-03-03 21:21:41 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"encode (failure; list number too small)" in {
|
2020-07-14 05:54:05 +02:00
|
|
|
val msg = DensityLevelUpdateMessage(1, 19999, List(0, 0, 0, 0, 0, -1, 0, 0))
|
2018-03-07 22:58:42 -05:00
|
|
|
PacketCoding.EncodePacket(msg).isSuccessful mustEqual false
|
2018-03-03 21:21:41 -05:00
|
|
|
}
|
2018-03-07 22:32:27 -05:00
|
|
|
}
|