package org.jboss.narayana.rest.integration.test.functional; import java.net.MalformedURLException; import org.junit.Assert; import org.jboss.jbossts.star.util.TxStatus; import org.jboss.narayana.rest.integration.ParticipantInformation; import org.jboss.narayana.rest.integration.ParticipantsContainer; import org.jboss.narayana.rest.integration.api.HeuristicType; import org.jboss.narayana.rest.integration.api.Participant; import org.jboss.narayana.rest.integration.api.ParticipantsManager; import org.jboss.narayana.rest.integration.api.ParticipantsManagerFactory; import org.jboss.narayana.rest.integration.api.Prepared; import org.jboss.narayana.rest.integration.test.common.LoggingParticipant; import org.junit.Before; import org.junit.Test; import com.arjuna.ats.arjuna.common.Uid; public final class ParticipantsManagerTestCase { private static final String APPLICATION_ID = "org.jboss.narayana.rest.integration.test.functional.ParticipantResourceTestCase"; private ParticipantsManager participantsManager; @Before public void before() { participantsManager = ParticipantsManagerFactory.getInstance(); ParticipantsContainer.getInstance().clear(); } @Test public void testSetBaseUrl() { final String url1 = "http://example1.com"; final String url2 = "http://example2.com"; final ParticipantsManager participantsManager = ParticipantsManagerFactory.getInstance(); participantsManager.setBaseUrl(url1); Assert.assertEquals(url1, participantsManager.getBaseUrl()); participantsManager.setBaseUrl(url2); Assert.assertEquals(url2, participantsManager.getBaseUrl()); } @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()); } private void registerParticipant(final String participantId, final Participant participant) throws MalformedURLException { ParticipantInformation participantInformation = new ParticipantInformation(participantId, APPLICATION_ID, "", participant); participantInformation.setStatus(TxStatus.TransactionActive.name()); ParticipantsContainer.getInstance().addParticipantInformation(participantId, participantInformation); } }