@Test
public void testSerializeDeserializeBinaryEquals() {
final AfterOperationFailedObjectEvent event1 = new AfterOperationFailedObjectEvent(TSTAMP, TRACE_ID, ORDER_INDEX, FQ_OPERATION_SIGNATURE, FQ_CLASSNAME,
CAUSE, OBJECT_ID);
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());
Assert.assertEquals("Unexpected object id", OBJECT_ID, event1.getObjectId());
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 AfterOperationFailedObjectEvent event2 = new AfterOperationFailedObjectEvent(BinaryValueDeserializer.create(buffer, receiver.getReaderRegistry()));
Assert.assertEquals(event1, event2);
Assert.assertEquals(0, event1.compareTo(event2));
Assert.assertTrue(UtilityClass.refersToSameOperationAs(event1, event2));
}
}