org.springframework.test
Class AbstractTransactionalSpringContextTests

java.lang.Object
  extended byjunit.framework.Assert
      extended byjunit.framework.TestCase
          extended byorg.springframework.test.AbstractSpringContextTests
              extended byorg.springframework.test.AbstractDependencyInjectionSpringContextTests
                  extended byorg.springframework.test.AbstractTransactionalSpringContextTests
All Implemented Interfaces:
junit.framework.Test
Direct Known Subclasses:
AbstractTransactionalDataSourceSpringContextTests

public abstract class AbstractTransactionalSpringContextTests
extends AbstractDependencyInjectionSpringContextTests

Convenient superclass for tests that should occur in a transaction, but normally will roll the transaction back on the completion of each test.

This is useful in a range of circumstances, allowing the following benefits:

This class is typically very fast, compared to traditional setup/teardown scripts.

If data should be left in the database, call the setComplete() method in each test. The defaultRollback() property, which defaults to true, determines whether transactions will complete by default. Requires a single bean in the context implementing the PlatformTransactionManager interface. This will be set by the superclass's Dependency Injection mechanism. If using the superclass's Field Injection mechanism, the implementation should be named "transactionManager". This mechanism allows the use of this superclass even when there's more than one transaction manager in the context.

Since:
1.1.1
Author:
Rod Johnson

Field Summary
protected  PlatformTransactionManager transactionManager
           
protected  TransactionStatus transactionStatus
          TransactionStatus for this test.
 
Fields inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests
applicationContext, managedVariableNames
 
Fields inherited from class org.springframework.test.AbstractSpringContextTests
logger
 
Constructor Summary
AbstractTransactionalSpringContextTests()
           
 
Method Summary
protected  void onSetUp()
          Subclasses can override this method in place of the setUp() method, which is final in this class.
protected  void onSetUpInTransaction()
           
protected  void onTearDown()
          Subclasses can override this to add custom behavior on teardown.
protected  void onTearDownInTransaction()
          Transaction is still open.
protected  void setComplete()
          Cause the transaction to commit for this test method, even if default is set to rollback.
 void setDefaultRollback(boolean defaultRollback)
          Subclasses can set this value in their constructor to change default, which is always to roll the transaction back
 void setTransactionManager(PlatformTransactionManager ptm)
          Populated by dependency injection by superclass.
 
Methods inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests
contextKey, getConfigLocations, getLoadCount, initManagedVariableNames, isPopulateProtectedVariables, loadContextLocations, populateProtectedVariables, setDirty, setPopulateProtectedVariables, setUp, tearDown
 
Methods inherited from class org.springframework.test.AbstractSpringContextTests
contextKeyString, getContext, hasCachedContext, loadContext, setDirty
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

transactionStatus

protected TransactionStatus transactionStatus
TransactionStatus for this test. Subclasses probably won't need to use it.


transactionManager

protected PlatformTransactionManager transactionManager
Constructor Detail

AbstractTransactionalSpringContextTests

public AbstractTransactionalSpringContextTests()
Method Detail

setDefaultRollback

public void setDefaultRollback(boolean defaultRollback)
Subclasses can set this value in their constructor to change default, which is always to roll the transaction back


setTransactionManager

public void setTransactionManager(PlatformTransactionManager ptm)
Populated by dependency injection by superclass.


onSetUp

protected final void onSetUp()
                      throws java.lang.Exception
Description copied from class: AbstractDependencyInjectionSpringContextTests
Subclasses can override this method in place of the setUp() method, which is final in this class. This implementation does nothing.

Overrides:
onSetUp in class AbstractDependencyInjectionSpringContextTests
Throws:
java.lang.Exception

onSetUpInTransaction

protected void onSetUpInTransaction()
                             throws java.lang.Exception
Throws:
java.lang.Exception

onTearDown

protected final void onTearDown()
                         throws java.lang.Exception
Description copied from class: AbstractDependencyInjectionSpringContextTests
Subclasses can override this to add custom behavior on teardown.

Overrides:
onTearDown in class AbstractDependencyInjectionSpringContextTests
Throws:
java.lang.Exception

onTearDownInTransaction

protected void onTearDownInTransaction()
Transaction is still open. Subclasses will typically run tests here.


setComplete

protected void setComplete()
Cause the transaction to commit for this test method, even if default is set to rollback.



Copyright (C) 2003-2004 The Spring Framework Project.