ByteBufferSerde implements Serde<ByteBuffer> { public byte[] toBytes(ByteBuffer byteBuffer) { if (byteBuffer != null) { byte[] bytes = new byte[byteBuffer.remaining()]; byteBuffer.duplicate().get(bytes); return bytes; } else { return null; } }  byte[] toBytes(ByteBuffer byteBuffer); ByteBuffer fromBytes(byte[] bytes);  }
@Test public void testSerializationPreservesInput() { ByteBufferSerde serde = new ByteBufferSerde(); byte[] bytes = "A lazy way of creating a byte array".getBytes(); ByteBuffer byteBuffer = ByteBuffer.wrap(bytes); byteBuffer.get(); serde.toBytes(byteBuffer); assertEquals(byteBuffer.capacity(), byteBuffer.limit()); assertEquals(1, byteBuffer.position()); }