@Test
public void testSerializeDeserializeBinaryEquals() {
final CallConstructorEvent event1 = new CallConstructorEvent(TSTAMP, TRACE_ID, ORDER_INDEX, FQ_CALLER_OPERATION_SIGNATURE, FQ_CALLER_CLASSNAME,
FQ_CALLEE_OPERATION_SIGNATURE, FQ_CALLEE_CLASSNAME);
Assert.assertEquals("Unexpected timestamp", TSTAMP, event1.getTimestamp());
Assert.assertEquals("Unexpected trace ID", TRACE_ID, event1.getTraceId());
Assert.assertEquals("Unexpected order index", ORDER_INDEX, event1.getOrderIndex());
Assert.assertEquals("Unexpected caller operation name", FQ_CALLER_OPERATION_SIGNATURE, event1.getCallerOperationSignature());
Assert.assertEquals("Unexpected caller class name", FQ_CALLER_CLASSNAME, event1.getCallerClassSignature());
Assert.assertEquals("Unexpected callee operation name", FQ_CALLEE_OPERATION_SIGNATURE, event1.getCalleeOperationSignature());
Assert.assertEquals("Unexpected callee class name", FQ_CALLEE_CLASSNAME, event1.getCalleeClassSignature());
final WriterListener receiver = new WriterListener();
final IWriterRegistry<String> stringRegistry = new WriterRegistry(receiver);
final ByteBuffer buffer = ByteBuffer.allocate(event1.getSize());
event1.serialize(BinaryValueSerializer.create(buffer, stringRegistry));
buffer.flip();
final CallConstructorEvent event2 = new CallConstructorEvent(BinaryValueDeserializer.create(buffer, receiver.getReaderRegistry()));
Assert.assertEquals(event1, event2);
Assert.assertEquals(0, event1.compareTo(event2));
Assert.assertTrue(UtilityClass.refersToSameOperationAs(event1, event2));
}