@Test
public void testSerializeDeserializeBinaryEquals() {
final AfterOperationFailedEvent event1 = new AfterOperationFailedEvent(TSTAMP, TRACE_ID, ORDER_INDEX, FQ_OPERATION_SIGNATURE, FQ_CLASSNAME, CAUSE);
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 class name", FQ_CLASSNAME, event1.getClassSignature());
Assert.assertEquals("Unexpected operation signature", FQ_OPERATION_SIGNATURE, event1.getOperationSignature());
Assert.assertEquals("Unexpected cause", CAUSE, event1.getCause());
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 AfterOperationFailedEvent event2 = new AfterOperationFailedEvent(BinaryValueDeserializer.create(buffer, receiver.getReaderRegistry()));
Assert.assertEquals(event1, event2);
Assert.assertEquals(0, event1.compareTo(event2));
Assert.assertTrue(UtilityClass.refersToSameOperationAs(event1, event2));
}
}