@Test
public void testMessageHeaderIsSerializable() {
Object payload = new Object();
UUID uuid = UUID.nameUUIDFromBytes(((System.currentTimeMillis() - System.nanoTime()) + "").getBytes());
Long timestamp = System.currentTimeMillis();
Map<String, Object> headerMapStrings = new HashMap<>();
headerMapStrings.put(MessageHeaders.ID, uuid.toString());
headerMapStrings.put(MessageHeaders.TIMESTAMP, timestamp.toString());
MutableMessage<Object> mutableMessageStrings = new MutableMessage<>(payload, headerMapStrings);
assertEquals(uuid, mutableMessageStrings.getHeaders().getId());
assertEquals(timestamp, mutableMessageStrings.getHeaders().getTimestamp());
Map<String, Object> headerMapByte = new HashMap<>();
byte[] uuidAsBytes =
ByteBuffer.allocate(16)
.putLong(uuid.getMostSignificantBits())
.putLong(uuid.getLeastSignificantBits())
.array();
headerMapByte.put(MessageHeaders.ID, uuidAsBytes);
headerMapByte.put(MessageHeaders.TIMESTAMP, timestamp);
MutableMessage<Object> mutableMessageBytes = new MutableMessage<>(payload, headerMapByte);
assertEquals(uuid, mutableMessageBytes.getHeaders().getId());
assertEquals(timestamp, mutableMessageBytes.getHeaders().getTimestamp());
}