@Test public void testByte() throws Exception { AbstractByteArraySerializer serializer = new ByteArrayLengthHeaderSerializer( ByteArrayLengthHeaderSerializer.HEADER_SIZE_UNSIGNED_BYTE); ByteArrayOutputStream bos = new ByteArrayOutputStream(); serializer.serialize(test255.getBytes(), bos); byte[] bytes = bos.toByteArray(); assertEquals(test255.length(), bytes[0] & 0xff); ByteArrayInputStream bis = new ByteArrayInputStream(bytes); bytes = serializer.deserialize(bis); assertEquals(test255, new String(bytes)); test255 += "x"; try { serializer.serialize(test255.getBytes(), bos); fail("Expected overflow"); } catch (IllegalArgumentException e) { } }
@Test public void testShort1() throws Exception { AbstractByteArraySerializer serializer = new ByteArrayLengthHeaderSerializer( ByteArrayLengthHeaderSerializer.HEADER_SIZE_UNSIGNED_SHORT); ByteArrayOutputStream bos = new ByteArrayOutputStream(); serializer.serialize(test255.getBytes(), bos); byte[] bytes = bos.toByteArray(); assertEquals(0, bytes[0]); assertEquals(test255.length(), bytes[1] & 0xff); ByteArrayInputStream bis = new ByteArrayInputStream(bytes); bytes = serializer.deserialize(bis); assertEquals(test255, new String(bytes)); }
@Test public void testShort2() throws Exception { AbstractByteArraySerializer serializer = new ByteArrayLengthHeaderSerializer( ByteArrayLengthHeaderSerializer.HEADER_SIZE_UNSIGNED_SHORT); serializer.setMaxMessageSize(0x10000); ByteArrayOutputStream bos = new ByteArrayOutputStream(); serializer.serialize(testFFFF.getBytes(), bos); byte[] bytes = bos.toByteArray(); assertEquals(0xff, bytes[0] & 0xff); assertEquals(0xff, bytes[1] & 0xff); ByteArrayInputStream bis = new ByteArrayInputStream(bytes); bytes = serializer.deserialize(bis); assertEquals(testFFFF, new String(bytes)); testFFFF += "x"; try { serializer.serialize(testFFFF.getBytes(), bos); fail("Expected overflow"); } catch (IllegalArgumentException e) { } }
@Test public void testInt() throws Exception { AbstractByteArraySerializer serializer = new ByteArrayLengthHeaderSerializer(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); serializer.serialize(TEST.getBytes(), bos); byte[] bytes = bos.toByteArray(); assertEquals(0, bytes[0]); assertEquals(0, bytes[1]); assertEquals(0, bytes[2]); assertEquals(TEST.length(), bytes[3]); ByteArrayInputStream bis = new ByteArrayInputStream(bytes); bytes = serializer.deserialize(bis); assertEquals(TEST, new String(bytes)); bytes[0] = -1; bis = new ByteArrayInputStream(bytes); try { bytes = serializer.deserialize(bis); fail("Expected negative length"); } catch (IllegalArgumentException e) { } }