public void testActionAlwaysBeginAndSuspendXaTxAndFailureCallback() throws Exception
{
TransactionCoordination.getInstance().bindTransaction(mockTransaction);
mockTransaction.setXA(true);
MuleTransactionConfig config = new MuleTransactionConfig(TransactionConfig.ACTION_ALWAYS_BEGIN);
ExecutionTemplate executionTemplate = createExecutionTemplate(config);
config.setFactory(new TestTransactionFactory(mockNewTransaction));
MuleEvent exceptionListenerResult = configureExceptionListenerCall();
try
{
executionTemplate.execute(getFailureTransactionCallback());
}
catch (MessagingException e)
{
assertThat(e, is(mockMessagingException));
assertThat(e.getEvent(), is(exceptionListenerResult));