@Test public void testByteArrayIsTruncated() { byte[] bytes = new byte[] {0, 1, 2, 3, 4, 5}; ByteArrayInputStream stream = new ByteArrayInputStream(bytes); ByteStreamReadingMessageSource source = new ByteStreamReadingMessageSource(stream); source.setBytesPerMessage(4); Message<?> message1 = source.receive(); assertEquals(4, ((byte[]) message1.getPayload()).length); Message<?> message2 = source.receive(); assertEquals(2, ((byte[]) message2.getPayload()).length); Message<?> message3 = source.receive(); assertNull(message3); }
@Test public void testByteArrayIsNotTruncated() { byte[] bytes = new byte[] {0, 1, 2, 3, 4, 5}; ByteArrayInputStream stream = new ByteArrayInputStream(bytes); ByteStreamReadingMessageSource source = new ByteStreamReadingMessageSource(stream); source.setBytesPerMessage(4); source.setShouldTruncate(false); Message<?> message1 = source.receive(); assertEquals(4, ((byte[]) message1.getPayload()).length); Message<?> message2 = source.receive(); assertEquals(4, ((byte[]) message2.getPayload()).length); assertEquals(4, ((byte[]) message2.getPayload())[0]); assertEquals(5, ((byte[]) message2.getPayload())[1]); assertEquals(0, ((byte[]) message2.getPayload())[2]); assertEquals(0, ((byte[]) message2.getPayload())[3]); Message<?> message3 = source.receive(); assertNull(message3); }
@Test public void testEndOfStream() { byte[] bytes = new byte[] {1, 2, 3}; ByteArrayInputStream stream = new ByteArrayInputStream(bytes); ByteStreamReadingMessageSource source = new ByteStreamReadingMessageSource(stream); Message<?> message1 = source.receive(); byte[] payload = (byte[]) message1.getPayload(); assertEquals(3, payload.length); assertEquals(1, payload[0]); assertEquals(2, payload[1]); assertEquals(3, payload[2]); Message<?> message2 = source.receive(); assertNull(message2); }