X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=test%2Fenterprise%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Ftest%2Ftransactions%2FSimpleTransactionManagerTest.java;h=1f7afc645306fe19d48f065815243a531be980b1;hb=124e05b5c0c2619457b8134df21f10b3b23226e0;hp=97c0359d1e3521115234e1ddda30466b07d8af04;hpb=2505dde4c404d845afdd4448134980ad9636b878;p=utils diff --git a/test/enterprise/src/test/java/org/wamblee/test/transactions/SimpleTransactionManagerTest.java b/test/enterprise/src/test/java/org/wamblee/test/transactions/SimpleTransactionManagerTest.java index 97c0359d..1f7afc64 100644 --- a/test/enterprise/src/test/java/org/wamblee/test/transactions/SimpleTransactionManagerTest.java +++ b/test/enterprise/src/test/java/org/wamblee/test/transactions/SimpleTransactionManagerTest.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import javax.transaction.SystemException; import javax.transaction.UserTransaction; import org.junit.After; @@ -63,14 +64,21 @@ public class SimpleTransactionManagerTest { @Test public void testTransactionsAreThreadSpecific() throws Exception { - UserTransaction transaction = manager.getTransaction(); + manager.getTransaction().getStatus(); + UserTransaction transaction = manager.getThreadSpecificTransaction(); assertNotNull(transaction); - assertSame(transaction, manager.getTransaction()); + assertSame(transaction, manager.getThreadSpecificTransaction()); final ValueHolder transaction2 = new ValueHolder(); Thread t = new Thread(new Runnable() { @Override public void run() { - transaction2.setValue(manager.getTransaction()); + try { + manager.getTransaction().getStatus(); + transaction2.setValue(manager + .getThreadSpecificTransaction()); + } catch (SystemException e) { + fail("exception "); + } } }); t.start(); @@ -81,18 +89,21 @@ public class SimpleTransactionManagerTest { } @Test - public void testTransactionLifeCycle() { - UserTransaction transaction = manager.getTransaction(); + public void testTransactionLifeCycle() throws Exception { + manager.getTransaction().getStatus(); + UserTransaction transaction = manager.getThreadSpecificTransaction(); + assertNotNull(transaction); assertEquals(1, callbacks.size()); callbacks.get(0).transactionFinished(); - UserTransaction transaction2 = manager.getTransaction(); + manager.getTransaction().getStatus(); + UserTransaction transaction2 = manager.getThreadSpecificTransaction(); assertNotNull(transaction2); assert (transaction != transaction2); } @Test - public void testVerifyResourcesArePassedToFactory() { + public void testVerifyResourcesArePassedToFactory() throws Exception { final ValueHolder actual = new ValueHolder(); when(factory.create(any(UserTransactionCallback.class), (List) any())) @@ -100,9 +111,10 @@ public class SimpleTransactionManagerTest { @Override public Object answer(InvocationOnMock aInvocation) throws Throwable { - Object[] value = ((List)aInvocation.getArguments()[1]).toArray(); + Object[] value = ((List) aInvocation.getArguments()[1]) + .toArray(); actual.setValue(value); - return null; + return mock(UserTransaction.class); } }); @@ -111,9 +123,19 @@ public class SimpleTransactionManagerTest { manager.addResource(resource1); manager.addResource(resource2); - UserTransaction transaction = manager.getTransaction(); + manager.getTransaction().getStatus(); Object[] expected = new Object[] { resource1, resource2 }; assertTrue(Arrays.equals(expected, actual.getValue())); } + @Test + public void testTwoTransactions() throws Exception { + UserTransaction transaction = manager.getTransaction(); + transaction.begin(); + transaction.commit(); + + transaction.begin(); + transaction.commit(); + } + }