You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by li...@apache.org on 2008/12/10 16:52:45 UTC
svn commit: r725317 -
/geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/
Author: linsun
Date: Wed Dec 10 07:52:45 2008
New Revision: 725317
URL: http://svn.apache.org/viewvc?rev=725317&view=rev
Log:
add some agreed upon test cases for GERONIMO-4448
Modified:
geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TestTransactionManager.java
geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerImplTest.java
geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java
Modified: geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TestTransactionManager.java
URL: http://svn.apache.org/viewvc/geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TestTransactionManager.java?rev=725317&r1=725316&r2=725317&view=diff
==============================================================================
--- geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TestTransactionManager.java (original)
+++ geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TestTransactionManager.java Wed Dec 10 07:52:45 2008
@@ -18,6 +18,7 @@
package org.apache.geronimo.transaction.manager;
import javax.transaction.Status;
+import javax.transaction.InvalidTransactionException;
import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import javax.transaction.xa.XAResource;
Modified: geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerImplTest.java
URL: http://svn.apache.org/viewvc/geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerImplTest.java?rev=725317&r1=725316&r2=725317&view=diff
==============================================================================
--- geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerImplTest.java (original)
+++ geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerImplTest.java Wed Dec 10 07:52:45 2008
@@ -19,6 +19,7 @@
import java.util.Map;
+import javax.transaction.InvalidTransactionException;
import javax.transaction.RollbackException;
import javax.transaction.Status;
import javax.transaction.Transaction;
@@ -290,28 +291,125 @@
assertEquals(xid, recovered.keySet().iterator().next());
}
- public void testTimeout() throws Exception
- {
- long timeout = tm.getTransactionTimeoutMilliseconds(0L);
- tm.setTransactionTimeout((int)timeout/4000);
- tm.begin();
- System.out.println("Test to sleep for " + timeout + " millisecs");
- Thread.sleep(timeout);
- try
- {
- tm.commit();
- fail("Tx Should get Rollback exception");
- }catch(RollbackException rex)
- {
- // Caught expected exception
- }
-
- // Now test if the default timeout is active
- tm.begin();
- System.out.println("Test to sleep for " + (timeout/2) + " millisecs");
- Thread.sleep((timeout/2));
- tm.commit();
- // Its a failure if exception occurs.
- }
+ public void testTimeout() throws Exception
+ {
+ long timeout = tm.getTransactionTimeoutMilliseconds(0L);
+ tm.setTransactionTimeout((int)timeout/4000);
+ tm.begin();
+ System.out.println("Test to sleep for " + timeout + " millisecs");
+ Thread.sleep(timeout);
+ try
+ {
+ tm.commit();
+ fail("Tx Should get Rollback exception");
+ }catch(RollbackException rex)
+ {
+ // Caught expected exception
+ }
+
+ // Now test if the default timeout is active
+ tm.begin();
+ System.out.println("Test to sleep for " + (timeout/2) + " millisecs");
+ Thread.sleep((timeout/2));
+ tm.commit();
+ // Its a failure if exception occurs.
+ }
+
+ // resume throws InvalidTransactionException on completed tx (via commit)
+ public void testResume1() throws Exception {
+ Transaction tx;
+ assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
+ tm.begin();
+ assertEquals(Status.STATUS_ACTIVE, tm.getStatus());
+ tx = tm.getTransaction();
+ assertNotNull(tx);
+ assertEquals(Status.STATUS_ACTIVE, tx.getStatus());
+
+ tm.commit();
+ assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
+ assertNull(tm.getTransaction());
+
+ try {
+ tm.resume(tx);
+ fail();
+ } catch (InvalidTransactionException e) {
+ // expected
+ }
+ }
+
+ // resume throws InvalidTransactionException on completed tx (via rollback)
+ public void testResume2() throws Exception {
+ Transaction tx;
+ assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
+ tm.begin();
+ assertEquals(Status.STATUS_ACTIVE, tm.getStatus());
+ tx = tm.getTransaction();
+ assertNotNull(tx);
+ assertEquals(Status.STATUS_ACTIVE, tx.getStatus());
+
+ tx = tm.suspend();
+ assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
+ assertNull(tm.getTransaction());
+
+ tm.resume(tx);
+ assertEquals(Status.STATUS_ACTIVE, tm.getStatus());
+ assertEquals(tx, tm.getTransaction());
+
+ tm.rollback();
+ assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
+ assertNull(tm.getTransaction());
+
+ try {
+ tm.resume(tx);
+ fail();
+ } catch (InvalidTransactionException e) {
+ // expected
+ }
+ }
+
+ // resume works on null tx
+ public void testResume3() throws Exception {
+ Transaction tx;
+ assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
+ tm.begin();
+ assertEquals(Status.STATUS_ACTIVE, tm.getStatus());
+ tx = tm.getTransaction();
+ assertNotNull(tx);
+ assertEquals(Status.STATUS_ACTIVE, tx.getStatus());
+
+ tm.commit();
+ assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
+ assertNull(tm.getTransaction());
+ // tx should be null
+ tx = tm.suspend();
+ assertNull(tx);
+
+ try {
+ tm.resume(tx);
+ } catch (InvalidTransactionException e) {
+ // null is considered valid so we don't expect InvalidTransactionException here
+ e.printStackTrace();
+ fail();
+ }
+ }
+
+ // resume works on any valid tx
+ public void testResume4() throws Exception {
+ Transaction tx;
+ assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
+ tm.begin();
+ assertEquals(Status.STATUS_ACTIVE, tm.getStatus());
+ tx = tm.getTransaction();
+ assertNotNull(tx);
+ assertEquals(Status.STATUS_ACTIVE, tx.getStatus());
+
+ tm.resume(tx);
+ assertNotNull(tx);
+ assertEquals(Status.STATUS_ACTIVE, tx.getStatus());
+
+ tm.commit();
+ assertEquals(Status.STATUS_NO_TRANSACTION, tm.getStatus());
+ assertNull(tm.getTransaction());
+ }
}
Modified: geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java
URL: http://svn.apache.org/viewvc/geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java?rev=725317&r1=725316&r2=725317&view=diff
==============================================================================
--- geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java (original)
+++ geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java Wed Dec 10 07:52:45 2008
@@ -83,6 +83,15 @@
tm.rollback();
checkInterposedSyncCalled();
}
+
+ /*public void testNormalSynchIsNotCalledOnRollback() throws Exception {
+ normalSync = new CountingSync();
+ tm.begin();
+ tm.getTransaction().registerSynchronization(normalSync);
+ tm.rollback();
+ assertFalse(normalSync.beforeCompletionCalled());
+ assertTrue(normalSync.afterCompletionCalled());
+ }*/
public void testInterposedSynchIsCalledOnMarkRollback() throws Exception {
setUpInterposedSync();
@@ -150,12 +159,16 @@
private int beforeCount = -1;
private int afterCount = -1;
+ private boolean beforeCalled = false;
+ private boolean afterCalled = false;
public void beforeCompletion() {
+ beforeCalled = true;
beforeCount = beforeCounter++;
}
public void afterCompletion(int i) {
+ afterCalled = true;
afterCount = afterCounter++;
}
@@ -166,6 +179,14 @@
public int getAfterCount() {
return afterCount;
}
+
+ public boolean beforeCompletionCalled() {
+ return beforeCalled;
+ }
+
+ public boolean afterCompletionCalled() {
+ return afterCalled;
+ }
}
}