@Test
public void sendsCompensateAckSucceedEventOnCompensationCompletedWithFSM() throws NoSuchMethodException {

  IdGenerator<String> idGenerator = new UniqueIdGenerator();
  OmegaContext omegaContext = new OmegaContext(idGenerator,AlphaMetas.builder().akkaEnabled(true).build());
  CallbackContext context = new CallbackContext(omegaContext, sender);
  Method mockMethod = this.getClass().getMethod("mockCompensationSucceedMethod",String.class);
  context.addCallbackContext(compensationMethod, mockMethod, this);
  CompensationMessageHandler handler = new CompensationMessageHandler(sender, context);
  handler.onReceive(globalTxId, localTxId, parentTxId, compensationMethod, payload);
  assertThat(events.size(), is(1));
  TxEvent event = events.get(0);
  assertThat(event.globalTxId(), is(globalTxId));
  assertThat(event.localTxId(), is(localTxId));
  assertThat(event.parentTxId(), is(parentTxId));
  assertThat(event.type(), is(EventType.TxCompensateAckSucceedEvent));
  assertThat(event.compensationMethod(), is(getClass().getCanonicalName()));
  assertThat(event.payloads().length, is(0));
}