package com.arjuna.wsas.tests.arq.basic; import static org.junit.Assert.fail; import com.arjuna.mw.wscf.model.sagas.api.CoordinatorManager; import com.arjuna.mw.wscf11.model.sagas.CoordinatorManagerFactory; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import com.arjuna.mw.wsas.UserActivity; import com.arjuna.mw.wsas.UserActivityFactory; import com.arjuna.mw.wsas.activity.ActivityHierarchy; import com.arjuna.mw.wsas.exceptions.NoActivityException; import com.arjuna.wsas.tests.WSASTestUtils; import com.arjuna.wsas.tests.arq.WarDeployment; @RunWith(Arquillian.class) public class HierarchyTest { @Deployment public static WebArchive createDeployment() { return WarDeployment.getDeployment( WSASTestUtils.class); } @Test public void testHierarchy() throws Exception { UserActivity ua = UserActivityFactory.userActivity(); try { ua.start("dummy"); System.out.println("Started: "+ua.activityName()); ua.start("dummy"); System.out.println("Started: "+ua.activityName()); ActivityHierarchy ctx = ua.currentActivity(); System.out.println("\nHierarchy: "+ctx); if (ctx == null) { fail("current activity should not be null"); } else { ua.end(); System.out.println("\nCurrent: "+ua.activityName()); ua.end(); try { if (ua.activityName() != null) { fail("activity name should be null but is " + ua.activityName()); } } catch (NoActivityException ex) { // ok if we get here } } } catch (Exception ex) { WSASTestUtils.cleanup(ua); throw ex; } } @Test public void testComparision() throws Exception{ CoordinatorManager cm1 = CoordinatorManagerFactory.coordinatorManager(); CoordinatorManager cm2 = CoordinatorManagerFactory.coordinatorManager(); cm1.begin("Sagas11HLS"); ActivityHierarchy hierarchy1 = cm1.suspend(); cm2.begin("Sagas11HLS"); ActivityHierarchy hierarchy2 = cm2.suspend(); try { Assert.assertFalse(hierarchy1.equals(hierarchy2)); } finally { cm1.resume(hierarchy1); cm1.close(); cm2.resume(hierarchy2); cm2.close(); } } }