/** * Create an array of random bytes * * @param length The length of the created array * @return the byte array */ public static byte[] randomByteArray(int length) { return randomByteArray(length, false, (byte) 0); }
/** * Creates a Buffer containing random bytes * * @param length the size of the Buffer to create * @param avoid if true, the resulting Buffer will not contain avoidByte * @param avoidByte A byte that is not to be included in the resulting array * @return a Buffer of random bytes */ public static Buffer randomBuffer(int length, boolean avoid, byte avoidByte) { byte[] line = randomByteArray(length, avoid, avoidByte); return Buffer.buffer(line); }
@Test(expected = IndexOutOfBoundsException.class) public void testGetBytesWithTooSmallByteArray() throws Exception { byte[] bytes = TestUtils.randomByteArray(100); Buffer b = Buffer.buffer(bytes); byte[] result = new byte[bytes.length / 4]; b.getBytes(bytes.length / 4, bytes.length / 4 + bytes.length / 2, result); }
@Test(expected = IndexOutOfBoundsException.class) public void testGetBytesWithBadOffset() throws Exception { byte[] bytes = TestUtils.randomByteArray(100); Buffer b = Buffer.buffer(bytes); byte[] result = new byte[bytes.length / 2]; b.getBytes(bytes.length / 4, bytes.length / 4 + bytes.length / 2, result, -1); }
private void testSetBytesBuffer(Buffer buff, Function<byte[], Buffer> bufferFactory) throws Exception { Buffer b = bufferFactory.apply(TestUtils.randomByteArray(100)); buff.setBuffer(50, b); byte[] b2 = buff.getBytes(50, 150); assertEquals(b, Buffer.buffer(b2)); byte[] b3 = TestUtils.randomByteArray(100); buff.setBytes(50, b3); byte[] b4 = buff.getBytes(50, 150); assertEquals(Buffer.buffer(b3), Buffer.buffer(b4)); }
@Test public void testGetByte() throws Exception { int bytesLen = 100; byte[] bytes = TestUtils.randomByteArray(bytesLen); Buffer b = Buffer.buffer(bytes); for (int i = 0; i < bytesLen; i++) { assertEquals(bytes[i], b.getByte(i)); } }
@Test public void testAppendByte2() throws Exception { int bytesLen = 100; Buffer b = Buffer.buffer(TestUtils.randomByteArray(bytesLen)); b.setByte(b.length(), (byte) 9); }
@Test public void testBytesDecoding() { Pojo original = new Pojo(); original.bytes = TestUtils.randomByteArray(12); Pojo decoded = Json.decodeValue("{\"bytes\":\"" + Base64.getEncoder().encodeToString(original.bytes) + "\"}", Pojo.class); assertArrayEquals(original.bytes, decoded.bytes); }
@Test public void testGetBytesWithByteArrayFull() throws Exception { byte[] bytes = TestUtils.randomByteArray(100); Buffer b = Buffer.buffer(bytes); byte[] sub = new byte[bytes.length]; System.arraycopy(bytes, bytes.length / 4, sub, 12, bytes.length / 2); byte[] result = new byte[bytes.length]; b.getBytes(bytes.length / 4, bytes.length / 4 + bytes.length / 2, result, 12); assertTrue(TestUtils.byteArraysEqual(sub, result)); }
@Test public void testLength() throws Exception { byte[] bytes = TestUtils.randomByteArray(100); Buffer buffer = Buffer.buffer(bytes); assertEquals(100, Buffer.buffer(buffer.getByteBuf()).length()); }
@Test public void testLength2() throws Exception { byte[] bytes = TestUtils.randomByteArray(100); assertEquals(90, Buffer.buffer(Unpooled.copiedBuffer(bytes).slice(10, 90)).length()); }
@Test public void testGetBytes2() throws Exception { byte[] bytes = TestUtils.randomByteArray(100); Buffer b = Buffer.buffer(bytes); byte[] sub = new byte[bytes.length / 2]; System.arraycopy(bytes, bytes.length / 4, sub, 0, bytes.length / 2); assertTrue(TestUtils.byteArraysEqual(sub, b.getBytes(bytes.length / 4, bytes.length / 4 + bytes.length / 2))); }
@Test public void testGetBytes() throws Exception { byte[] bytes = TestUtils.randomByteArray(100); Buffer b = Buffer.buffer(bytes); assertTrue(TestUtils.byteArraysEqual(bytes, b.getBytes())); }
@Test public void testAppendUnsignedByte() { Buffer b = Buffer.buffer(TestUtils.randomByteArray(100)); b.appendUnsignedByte((short) (Byte.MAX_VALUE + Byte.MAX_VALUE / 2)); assertEquals(101, b.length()); }
@Test public void testGetUnsignedByte() throws Exception { int bytesLen = 100; byte[] bytes = TestUtils.randomByteArray(bytesLen); Buffer b = Buffer.buffer(bytes); for (int i = 0; i < bytesLen; i++) { assertEquals(Byte.toUnsignedLong(bytes[i]), b.getUnsignedByte(i)); } }
@Test public void testAppendInt() { Buffer b = Buffer.buffer(TestUtils.randomByteArray(100)); b.appendInt(Integer.MAX_VALUE); assertEquals(104, b.length()); b.appendIntLE(Integer.MAX_VALUE); assertEquals(108, b.length()); }
@Test public void testAppendMedium() { Buffer b = Buffer.buffer(TestUtils.randomByteArray(100)); b.appendMedium(MEDIUM_MAX_VALUE); assertEquals(103, b.length()); b.appendMediumLE(MEDIUM_MAX_VALUE); assertEquals(106, b.length()); }
@Test public void testAppendLong() { Buffer b = Buffer.buffer(TestUtils.randomByteArray(100)); b.appendLong(Long.MAX_VALUE); assertEquals(108, b.length()); b.appendLongLE(Long.MAX_VALUE); assertEquals(116, b.length()); }
public void testAppendBuff(Function<byte[], Buffer> bufferFactory) throws Exception { int bytesLen = 100; byte[] bytes = TestUtils.randomByteArray(bytesLen); Buffer toAppend = bufferFactory.apply(bytes); Buffer b = Buffer.buffer(); b.appendBuffer(toAppend); assertEquals(b.length(), bytes.length); assertTrue(TestUtils.byteArraysEqual(bytes, b.getBytes())); b.appendBuffer(toAppend); assertEquals(b.length(), 2 * bytes.length); assertNullPointerException(() -> b.appendBuffer(null)); }
@Test public void testAppendBytes() throws Exception { int bytesLen = 100; byte[] bytes = TestUtils.randomByteArray(bytesLen); Buffer b = Buffer.buffer(); b.appendBytes(bytes); assertEquals(b.length(), bytes.length); assertTrue(TestUtils.byteArraysEqual(bytes, b.getBytes())); b.appendBytes(bytes); assertEquals(b.length(), 2 * bytes.length); assertNullPointerException(() -> b.appendBytes(null)); }