### Question:
BackwardRecovery implements RecoveryPolicy { @Segment(name = "backwardPolicy", category = "application", library = "kamon") @Override public SagaResponse apply(SagaTask task, SagaRequest request, SagaResponse parentResponse) { try { return request.transaction().send(request.serviceName(), parentResponse); } catch (Exception e) { log.error("Applying {} policy due to failure in transaction {} of service {}", description(), request.transaction(), request.serviceName(), e ); task.abort(request, e); throw e; } }  @Segment(name = "backwardPolicy", category = "application", library = "kamon") @Override SagaResponse apply(SagaTask task, SagaRequest request, SagaResponse parentResponse); @Override String description();  }### Answer:
@Test public void blowsUpWhenTaskIsNotCommitted() { doThrow(exception).when(transaction).send(serviceName, parentResponse); try { backwardRecovery.apply(sagaTask, sagaRequest, parentResponse); expectFailing(RuntimeException.class); } catch (RuntimeException ignored) { } verify(sagaTask).abort(sagaRequest, exception); }