@Test
@SpecAssertions({ @SpecAssertion(section = TRANSACTIONAL_OBSERVER_METHODS, id = "a"), @SpecAssertion(section = TRANSACTIONAL_OBSERVER_METHODS, id = "b"),
@SpecAssertion(section = TRANSACTIONAL_OBSERVER_METHODS, id = "c"), @SpecAssertion(section = TRANSACTIONAL_OBSERVER_METHODS, id = "d"),
@SpecAssertion(section = TRANSACTIONAL_OBSERVER_METHODS, id = "e"), @SpecAssertion(section = TRANSACTIONAL_OBSERVER_METHODS, id = "gaa"),
@SpecAssertion(section = OBSERVER_NOTIFICATION, id = "b") })
public void testFailedTransaction() throws Exception {
logger.log("testFailedTransaction");
ActionSequence.reset();
accountService.withdrawFailedTransaction(2);
List<String> phases = ActionSequence.getSequenceData();
assertEquals(phases.size(), 4);
assertEquals(phases.get(0), TransactionPhase.IN_PROGRESS.name());
assertEquals(phases.get(1), "checkpoint");
assertTrue(phases.contains(TransactionPhase.AFTER_FAILURE.name()));
assertTrue(phases.contains(TransactionPhase.AFTER_COMPLETION.name()));
}