use of org.jboss.narayana.rest.integration.test.common.LoggingParticipant in project narayana by jbosstm.
the class ParticipantsManagerTestCase method testReportHeuristic.
@Test
public void testReportHeuristic() throws MalformedURLException {
final String participantId = new Uid().toString();
registerParticipant(participantId, new LoggingParticipant(new Prepared()));
final ParticipantInformation participantInformation = ParticipantsContainer.getInstance().getParticipantInformation(participantId);
participantInformation.setStatus(TxStatus.TransactionPrepared.name());
participantsManager.reportHeuristic(participantId, HeuristicType.HEURISTIC_ROLLBACK);
Assert.assertEquals(TxStatus.TransactionHeuristicRollback.name(), participantInformation.getStatus());
}
use of org.jboss.narayana.rest.integration.test.common.LoggingParticipant in project narayana by jbosstm.
the class BasicIntegrationTestCase method testHeuristicRollbackAfterUnsuccessfullPrepare.
@Test
public void testHeuristicRollbackAfterUnsuccessfullPrepare() {
txSupport.startTx();
LoggingParticipant loggingParticipant = new LoggingParticipant(new Aborted());
HeuristicParticipant heuristicParticipant = new HeuristicParticipant(HeuristicType.HEURISTIC_ROLLBACK, new Prepared());
ParticipantsManagerFactory.getInstance().enlist(APPLICATION_ID, txSupport.getDurableParticipantEnlistmentURI(), loggingParticipant);
ParticipantsManagerFactory.getInstance().enlist(APPLICATION_ID, txSupport.getDurableParticipantEnlistmentURI(), heuristicParticipant);
final String txStatus = TxSupport.getStatus(txSupport.commitTx());
Assert.assertEquals(TxStatus.TransactionRolledBack.name(), txStatus);
Assert.assertEquals(Arrays.asList(new String[] { "prepare", "rollback" }), loggingParticipant.getInvocations());
Assert.assertEquals(Arrays.asList(new String[] { "prepare", "rollback" }), heuristicParticipant.getInvocations());
}
use of org.jboss.narayana.rest.integration.test.common.LoggingParticipant in project narayana by jbosstm.
the class BasicIntegrationTestCase method testSecondParticipantHeuristicCommitWithFirstParticipantSuccessfullPrepare.
@Test
public void testSecondParticipantHeuristicCommitWithFirstParticipantSuccessfullPrepare() throws JAXBException {
txSupport.startTx();
final List<LoggingParticipant> participants = Arrays.asList(new LoggingParticipant[] { new LoggingParticipant(new Prepared()), new LoggingParticipant(new Prepared()) });
String lastParticipantid = null;
for (LoggingParticipant p : participants) {
lastParticipantid = ParticipantsManagerFactory.getInstance().enlist(APPLICATION_ID, txSupport.getDurableParticipantEnlistmentURI(), p);
}
ParticipantsManagerFactory.getInstance().reportHeuristic(lastParticipantid, HeuristicType.HEURISTIC_COMMIT);
final String txStatus = TxSupport.getStatus(txSupport.commitTx());
Assert.assertEquals(TxStatus.TransactionCommitted.name(), txStatus);
Assert.assertEquals(Arrays.asList(new String[] { "prepare", "commit" }), participants.get(0).getInvocations());
Assert.assertEquals(Collections.EMPTY_LIST, participants.get(1).getInvocations());
}
use of org.jboss.narayana.rest.integration.test.common.LoggingParticipant in project narayana by jbosstm.
the class BasicIntegrationTestCase method testRollbackWithVolatileParticipant.
@Test
public void testRollbackWithVolatileParticipant() {
txSupport.startTx();
LoggingParticipant loggingParticipant = new LoggingParticipant(new Prepared());
LoggingVolatileParticipant loggingVolatileParticipant = new LoggingVolatileParticipant();
ParticipantsManagerFactory.getInstance().enlist(APPLICATION_ID, txSupport.getDurableParticipantEnlistmentURI(), loggingParticipant);
ParticipantsManagerFactory.getInstance().enlistVolatileParticipant(txSupport.getVolatileParticipantEnlistmentURI(), loggingVolatileParticipant);
final String txStatus = TxSupport.getStatus(txSupport.rollbackTx());
Assert.assertEquals(TxStatus.TransactionRolledBack.name(), txStatus);
Assert.assertEquals(Arrays.asList(new String[] { "rollback" }), loggingParticipant.getInvocations());
Assert.assertEquals(Arrays.asList(new String[] { "afterCompletion" }), loggingVolatileParticipant.getInvocations());
Assert.assertEquals(TxStatus.TransactionRolledBack, loggingVolatileParticipant.getTxStatus());
}
use of org.jboss.narayana.rest.integration.test.common.LoggingParticipant in project narayana by jbosstm.
the class BasicIntegrationTestCase method testHeuristicRollbackAfterSuccessfullPrepare.
@Test
public void testHeuristicRollbackAfterSuccessfullPrepare() {
txSupport.startTx();
LoggingParticipant loggingParticipant = new LoggingParticipant(new Prepared());
HeuristicParticipant heuristicParticipant = new HeuristicParticipant(HeuristicType.HEURISTIC_ROLLBACK, new Prepared());
ParticipantsManagerFactory.getInstance().enlist(APPLICATION_ID, txSupport.getDurableParticipantEnlistmentURI(), loggingParticipant);
ParticipantsManagerFactory.getInstance().enlist(APPLICATION_ID, txSupport.getDurableParticipantEnlistmentURI(), heuristicParticipant);
final String txStatus = TxSupport.getStatus(txSupport.commitTx());
Assert.assertEquals(TxStatus.TransactionHeuristicMixed.name(), txStatus);
Assert.assertEquals(Arrays.asList(new String[] { "prepare", "commit" }), loggingParticipant.getInvocations());
Assert.assertEquals(Arrays.asList(new String[] { "prepare", "commit" }), heuristicParticipant.getInvocations());
}
Aggregations