private void testByteBufferRoundTrip(Message message, short version) throws Exception { int size = message.size(version); ByteBuffer buf = ByteBuffer.allocate(size); ByteBufferAccessor byteBufferAccessor = new ByteBufferAccessor(buf); message.write(byteBufferAccessor, version); assertEquals(size, buf.position()); Message message2 = message.getClass().newInstance(); buf.flip(); message2.read(byteBufferAccessor, version); assertEquals(size, buf.position()); assertEquals(message, message2); assertEquals(message.hashCode(), message2.hashCode()); assertEquals(message.toString(), message2.toString()); }