diff --git a/protocol/src/test/java/mc/protocol/buffer/NetByteBufReadTest.java b/protocol/src/test/java/mc/protocol/buffer/NetByteBufReadTest.java index 1fe676a..f5b66f2 100644 --- a/protocol/src/test/java/mc/protocol/buffer/NetByteBufReadTest.java +++ b/protocol/src/test/java/mc/protocol/buffer/NetByteBufReadTest.java @@ -33,7 +33,7 @@ class NetByteBufReadTest { void readBoolean(byte sourceByte, boolean expectedValue) { baos.write(sourceByte); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(expectedValue, netByteBuf.readBoolean()); } @@ -44,7 +44,7 @@ class NetByteBufReadTest { random.nextBytes(bytes); baos.write(bytes[0]); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(bytes[0], netByteBuf.readByte()); } @@ -54,7 +54,7 @@ class NetByteBufReadTest { void readUnsignedByte(byte sourceByte, int expectedValue) { baos.write(sourceByte); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(expectedValue, netByteBuf.readUnsignedByte()); } @@ -64,7 +64,7 @@ class NetByteBufReadTest { int value = Integer.valueOf(random.nextInt()).shortValue(); new DataOutputStream(baos).writeShort(value); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(value, netByteBuf.readShort()); } @@ -74,7 +74,7 @@ class NetByteBufReadTest { int value = 32768; new DataOutputStream(baos).writeShort(value); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(value, netByteBuf.readUnsignedShort()); } @@ -89,7 +89,7 @@ class NetByteBufReadTest { baos.write(bytes); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(string, netByteBuf.readString()); } @@ -105,7 +105,7 @@ class NetByteBufReadTest { baos.write(bytes); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertThrows(NetIOException.class, () -> netByteBuf.readString(length)); } @@ -124,7 +124,7 @@ class NetByteBufReadTest { baos.write(bytes); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertThrows(NetIOException.class, () -> netByteBuf.readString(-1)); } @@ -134,7 +134,7 @@ class NetByteBufReadTest { void readVarInt(byte[] sourceBytes, int expectedValue) throws IOException { baos.write(sourceBytes); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(expectedValue, netByteBuf.readVarInt()); } @@ -143,7 +143,7 @@ class NetByteBufReadTest { void readVarInt_tooBig() throws IOException { baos.write(new byte[]{ (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0x0F }); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(-1, netByteBuf.readVarInt()); } @@ -153,7 +153,7 @@ class NetByteBufReadTest { void readVarLong(byte[] sourceBytes, long expectedValue) throws IOException { baos.write(sourceBytes); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(expectedValue, netByteBuf.readVarLong()); } @@ -164,7 +164,7 @@ class NetByteBufReadTest { (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0x0F }); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(-1, netByteBuf.readVarLong()); } @@ -196,7 +196,7 @@ class NetByteBufReadTest { (byte) (leastSignificantBits & 0xFF) }); - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(uuid, netByteBuf.readUUID()); } @@ -208,7 +208,7 @@ class NetByteBufReadTest { baos.write(bytes); byte[] actualBytes = new byte[128]; - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); assertEquals(bytes.length, netByteBuf.readableBytes()); @@ -225,7 +225,7 @@ class NetByteBufReadTest { baos.write(bytes); byte[] buff = new byte[128]; - NetByteBuf netByteBuf = new NetByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(Unpooled.wrappedBuffer(baos.toByteArray())); netByteBuf.readBytes(buff, 3, 11); byte[] expectedBytes = new byte[11]; diff --git a/protocol/src/test/java/mc/protocol/buffer/NetByteBufWriteTest.java b/protocol/src/test/java/mc/protocol/buffer/NetByteBufWriteTest.java index c1c101d..2f02535 100644 --- a/protocol/src/test/java/mc/protocol/buffer/NetByteBufWriteTest.java +++ b/protocol/src/test/java/mc/protocol/buffer/NetByteBufWriteTest.java @@ -30,7 +30,7 @@ class NetByteBufWriteTest { @MethodSource("paramsWriteBoolean") void writeBoolean(boolean sourceValue, byte expectedByte) { ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeBoolean(sourceValue); @@ -41,7 +41,7 @@ class NetByteBufWriteTest { @MethodSource("paramsWriteByte") void writeByte(byte sourceValue, byte expectedByte) { ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeByte(sourceValue); @@ -51,7 +51,7 @@ class NetByteBufWriteTest { @Test void writeUnsignedByte() { ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeUnsignedByte(129); @@ -62,7 +62,7 @@ class NetByteBufWriteTest { @MethodSource("paramsWriteString") void writeString(String string, int exceptedLength) { ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeString(string); @@ -81,11 +81,11 @@ class NetByteBufWriteTest { String overSizeString = RandomStringUtils.randomAscii(Short.MAX_VALUE + Short.MAX_VALUE); ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeString(overSizeString); - NetByteBuf netByteBuf2 = new NetByteBuf(byteBuf.copy()); + NetByteBuf netByteBuf2 = new NetByteBuf().setByteBuf(byteBuf.copy()); String actualString = netByteBuf2.readString(); String expectedString = overSizeString.substring(0, Short.MAX_VALUE); @@ -97,7 +97,7 @@ class NetByteBufWriteTest { @MethodSource("paramsWriteVarInt") void writeVarInt(int sourceValue, byte[] expectedBytes) { ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeVarInt(sourceValue); byte[] actualArray = netByteBuf.copy(0, netByteBuf.readableBytes()).array(); @@ -109,7 +109,7 @@ class NetByteBufWriteTest { @MethodSource({ "paramsWriteVarInt", "paramsWriteVarLong" }) void writeVarLong(long sourceValue, byte[] expectedBytes) { ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeVarLong(sourceValue); byte[] actualArray = netByteBuf.copy(0, netByteBuf.readableBytes()).array(); @@ -122,7 +122,7 @@ class NetByteBufWriteTest { final UUID uuid = UUID.randomUUID(); ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeUUID(uuid); @@ -158,7 +158,7 @@ class NetByteBufWriteTest { random.nextBytes(bytes); ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeBytes(bytes); byte[] actualArray = netByteBuf.copy(0, netByteBuf.readableBytes()).array(); @@ -172,7 +172,7 @@ class NetByteBufWriteTest { random.nextBytes(bytes); ByteBuf byteBuf = Unpooled.buffer(); - NetByteBuf netByteBuf = new NetByteBuf(byteBuf); + NetByteBuf netByteBuf = new NetByteBuf().setByteBuf(byteBuf); netByteBuf.writeBytes(bytes, 3, 11); diff --git a/protocol/src/test/java/mc/protocol/utils/HalfByteArrayTest.java b/protocol/src/test/java/mc/protocol/utils/HalfByteArrayTest.java new file mode 100644 index 0000000..c72f29e --- /dev/null +++ b/protocol/src/test/java/mc/protocol/utils/HalfByteArrayTest.java @@ -0,0 +1,65 @@ +package mc.protocol.utils; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class HalfByteArrayTest { + + @Test + void addLast() { + byte expected = 0b0001_0010; + byte value1 = 0b0000_0001; + byte value2 = 0b0000_0010; + + NibbleArray nibbleArray = new HalfByteArray(1); + nibbleArray.put(value1); + nibbleArray.put(value2); + + byte[] bytes = nibbleArray.byteBuffer().array(); + assertNotNull(bytes); + assertEquals(1, bytes.length); + assertEquals(expected, bytes[0]); + } + + @Test + void addLastHalf() { + byte[] expected = {0b0001_0010, 0b0011_0000}; + byte value1 = 0b0000_0001; + byte value2 = 0b0000_0010; + byte value3 = 0b0000_0011; + + NibbleArray nibbleArray = new HalfByteArray(2); + nibbleArray.put(value1); + nibbleArray.put(value2); + nibbleArray.put(value3); + + byte[] bytes = nibbleArray.byteBuffer().array(); + assertNotNull(bytes); + assertEquals(2, bytes.length); + assertArrayEquals(expected, bytes); + } + + @Test + void byteBufTest() { + byte[] expected = {0b0001_0010, 0b0011_0000}; + byte value1 = 0b0000_0001; + byte value2 = 0b0000_0010; + byte value3 = 0b0000_0011; + + NibbleArray nibbleArray = new HalfByteArray(2); + nibbleArray.put(value1); + nibbleArray.put(value2); + nibbleArray.put(value3); + + ByteBuf byteBuf = Unpooled.buffer(2); + byteBuf.writeBytes(nibbleArray.byteBuffer()); + + byte[] bytes = byteBuf.array(); + assertNotNull(bytes); + assertEquals(2, bytes.length); + assertArrayEquals(expected, bytes); + } +} \ No newline at end of file