@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);
}