Open-source multiplayer game server compatible with the RuneScape client https://www.openrs2.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
openrs2/protocol/src/test/kotlin/org/openrs2/protocol/js5/Js5RequestEncoderTest.kt

34 lines
1.2 KiB

package org.openrs2.protocol.js5
import io.netty.buffer.ByteBuf
import io.netty.buffer.Unpooled
import io.netty.channel.embedded.EmbeddedChannel
import org.openrs2.buffer.use
import org.openrs2.protocol.js5.upstream.Js5Request
import org.openrs2.protocol.js5.upstream.Js5RequestEncoder
import kotlin.test.Test
import kotlin.test.assertEquals
class Js5RequestEncoderTest {
@Test
fun testEncode() {
testEncode(Js5Request.Group(true, 2, 3), byteArrayOf(0, 2, 0, 3))
testEncode(Js5Request.Group(false, 2, 3), byteArrayOf(1, 2, 0, 3))
testEncode(Js5Request.Rekey(0x55), byteArrayOf(4, 0x55, 0, 0))
testEncode(Js5Request.LoggedIn, byteArrayOf(2, 0, 0, 0))
testEncode(Js5Request.LoggedOut, byteArrayOf(3, 0, 0, 0))
testEncode(Js5Request.Connected, byteArrayOf(6, 0, 0, 3))
testEncode(Js5Request.Disconnect, byteArrayOf(7, 0, 0, 0))
}
private fun testEncode(request: Js5Request, expected: ByteArray) {
val channel = EmbeddedChannel(Js5RequestEncoder)
channel.writeOutbound(request)
channel.readOutbound<ByteBuf>().use { actual ->
Unpooled.wrappedBuffer(expected).use { expected ->
assertEquals(expected, actual)
}
}
}
}