@Test
public void retriesFailedTransactionTillSuccess() {
when(sagaDefinition.policy()).thenReturn(new ForwardRecovery());
saga = sagaFactory.createSaga(requestJson, sagaId, eventStore, sagaDefinition);
when(transaction2.send(request2.serviceName(), transactionResponse1))
.thenThrow(exception).thenThrow(exception).thenReturn(transactionResponse2);
saga.run();
assertThat(eventStore, IsIterableContainingInOrder.contains(
SagaEventMatcher.eventWith(sagaId, SAGA_START_TRANSACTION, SagaStartedEvent.class),
SagaEventMatcher.eventWith(sagaId, transaction1, TransactionStartedEvent.class),
SagaEventMatcher.eventWith(sagaId, transaction1, TransactionEndedEvent.class),
SagaEventMatcher.eventWith(sagaId, transaction2, TransactionStartedEvent.class),
SagaEventMatcher.eventWith(sagaId, transaction2, TransactionEndedEvent.class),
SagaEventMatcher.eventWith(sagaId, SAGA_END_TRANSACTION, SagaEndedEvent.class)
));
verify(transaction1).send(request1.serviceName(), SagaResponse.EMPTY_RESPONSE);
verify(transaction2, times(3)).send(request2.serviceName(), transactionResponse1);
verify(compensation1, never()).send(anyString(), any(SagaResponse.class));
verify(compensation2, never()).send(anyString(), any(SagaResponse.class));
}
ActorBasedSagaIntegrationTest.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:incubator-servicecomb-saga
作者:
评论列表
文章目录