@Test
public void testSerializeDeserializeBinaryEquals() {
final TraceMetadata trace1 = new TraceMetadata(TRACE_ID, THREAD_ID, SESSION_ID, HOSTNAME, PARENT_TRACE_ID, PARENT_ORDER_ID);
Assert.assertEquals("Unexpected trace ID", TRACE_ID, trace1.getTraceId());
Assert.assertEquals("Unexpected thread ID", THREAD_ID, trace1.getThreadId());
Assert.assertEquals("Unexpected session ID", SESSION_ID, trace1.getSessionId());
Assert.assertEquals("Unexpected hostname", HOSTNAME, trace1.getHostname());
Assert.assertEquals("Unexpected parent trace ID", PARENT_TRACE_ID, trace1.getParentTraceId());
Assert.assertEquals("Unexpected parent order ID", PARENT_ORDER_ID, trace1.getParentOrderId());
final WriterListener receiver = new WriterListener();
final IWriterRegistry<String> stringRegistry = new WriterRegistry(receiver);
final ByteBuffer buffer = ByteBuffer.allocate(trace1.getSize());
trace1.serialize(BinaryValueSerializer.create(buffer, stringRegistry));
buffer.flip();
final TraceMetadata trace2 = new TraceMetadata(BinaryValueDeserializer.create(buffer, receiver.getReaderRegistry()));
Assert.assertEquals(trace1, trace2);
Assert.assertEquals(0, trace1.compareTo(trace2));
}
}