The Spring Framework

org.springframework.test.annotation
Class AbstractAnnotationAwareTransactionalTests

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by org.springframework.test.ConditionalTestCase
              extended by org.springframework.test.AbstractSpringContextTests
                  extended by org.springframework.test.AbstractSingleSpringContextTests
                      extended by org.springframework.test.AbstractDependencyInjectionSpringContextTests
                          extended by org.springframework.test.AbstractTransactionalSpringContextTests
                              extended by org.springframework.test.AbstractTransactionalDataSourceSpringContextTests
                                  extended by org.springframework.test.annotation.AbstractAnnotationAwareTransactionalTests
All Implemented Interfaces:
junit.framework.Test
Direct Known Subclasses:
AbstractJpaTests

public abstract class AbstractAnnotationAwareTransactionalTests
extends AbstractTransactionalDataSourceSpringContextTests

Java 5 specific subclass of AbstractTransactionalDataSourceSpringContextTests, exposing a SimpleJdbcTemplate and obeying annotations for transaction control.

For example, test methods can be annotated with the regular Spring @Transactional annotation (e.g., to force execution in a read-only transaction) or with the @NotTransactional annotation to prevent any transaction being created at all. In addition, individual test methods can be annotated with @Rollback to override the default rollback settings.

The following list constitutes all annotations currently supported by AbstractAnnotationAwareTransactionalTests:

Since:
2.0
Author:
Rod Johnson, Sam Brannen, Juergen Hoeller

Field Summary
protected  ProfileValueSource profileValueSource
          ProfileValueSource available to subclasses but primarily intended for use in isDisabledInThisEnvironment(Method).
protected  SimpleJdbcTemplate simpleJdbcTemplate
           
 
Fields inherited from class org.springframework.test.AbstractTransactionalDataSourceSpringContextTests
jdbcTemplate
 
Fields inherited from class org.springframework.test.AbstractTransactionalSpringContextTests
transactionDefinition, transactionManager, transactionStatus
 
Fields inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests
AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_NO
 
Fields inherited from class org.springframework.test.AbstractSingleSpringContextTests
applicationContext
 
Fields inherited from class org.springframework.test.ConditionalTestCase
logger
 
Constructor Summary
AbstractAnnotationAwareTransactionalTests()
          Default constructor for AbstractAnnotationAwareTransactionalTests, which delegates to AbstractAnnotationAwareTransactionalTests(String).
AbstractAnnotationAwareTransactionalTests(String name)
          Constructs a new AbstractAnnotationAwareTransactionalTests instance with the specified JUnit name and retrieves the configured (or default) ProfileValueSource.
 
Method Summary
protected  void findUniqueProfileValueSourceFromContext(ApplicationContext applicationContext)
          Deprecated. Use @ProfileValueSourceConfiguration instead.
protected  Method getTestMethod()
          Get the current test method.
protected  boolean isDisabledInThisEnvironment(Method testMethod)
          Determine if the test for the supplied testMethod should run in the current environment.
protected  boolean isRollback()
          Determine whether or not to rollback transactions for the current test by taking into consideration the default rollback flag and a possible method-level override via the @Rollback annotation.
 void runBare()
          Overridden to populate transaction definition from annotations.
 void setDataSource(DataSource dataSource)
          Setter: DataSource is provided by Dependency Injection.
 
Methods inherited from class org.springframework.test.AbstractTransactionalDataSourceSpringContextTests
countRowsInTable, deleteFromTables, executeSqlScript, getJdbcTemplate, setComplete, setSqlScriptEncoding
 
Methods inherited from class org.springframework.test.AbstractTransactionalSpringContextTests
endTransaction, isDefaultRollback, onSetUp, onSetUpBeforeTransaction, onSetUpInTransaction, onTearDown, onTearDownAfterTransaction, onTearDownInTransaction, preventTransaction, setDefaultRollback, setTransactionDefinition, setTransactionManager, startNewTransaction
 
Methods inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests
getAutowireMode, injectDependencies, isDependencyCheck, isPopulateProtectedVariables, prepareTestInstance, setAutowireMode, setDependencyCheck, setPopulateProtectedVariables
 
Methods inherited from class org.springframework.test.AbstractSingleSpringContextTests
contextKey, createApplicationContext, createBeanDefinitionReader, customizeBeanFactory, getApplicationContext, getConfigLocations, getConfigPath, getConfigPaths, getLoadCount, loadContext, loadContextLocations, prepareApplicationContext, setDirty, setUp, tearDown
 
Methods inherited from class org.springframework.test.AbstractSpringContextTests
addContext, contextKeyString, getContext, hasCachedContext, isContextKeyEmpty, setDirty
 
Methods inherited from class org.springframework.test.ConditionalTestCase
getDisabledTestCount, isDisabledInThisEnvironment, recordDisabled
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, 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, failNotEquals, failNotSame, failSame, format
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

simpleJdbcTemplate

protected SimpleJdbcTemplate simpleJdbcTemplate

profileValueSource

protected ProfileValueSource profileValueSource
ProfileValueSource available to subclasses but primarily intended for use in isDisabledInThisEnvironment(Method).

Set to SystemProfileValueSource by default for backwards compatibility; however, the value may be changed in the AbstractAnnotationAwareTransactionalTests(String) constructor.

Constructor Detail

AbstractAnnotationAwareTransactionalTests

public AbstractAnnotationAwareTransactionalTests()
Default constructor for AbstractAnnotationAwareTransactionalTests, which delegates to AbstractAnnotationAwareTransactionalTests(String).


AbstractAnnotationAwareTransactionalTests

public AbstractAnnotationAwareTransactionalTests(String name)
Constructs a new AbstractAnnotationAwareTransactionalTests instance with the specified JUnit name and retrieves the configured (or default) ProfileValueSource.

Parameters:
name - the name of the current test
See Also:
ProfileValueUtils.retrieveProfileValueSource(Class)
Method Detail

setDataSource

public void setDataSource(DataSource dataSource)
Description copied from class: AbstractTransactionalDataSourceSpringContextTests
Setter: DataSource is provided by Dependency Injection.

Overrides:
setDataSource in class AbstractTransactionalDataSourceSpringContextTests

findUniqueProfileValueSourceFromContext

@Deprecated
protected void findUniqueProfileValueSourceFromContext(ApplicationContext applicationContext)
Deprecated. Use @ProfileValueSourceConfiguration instead.

Search for a unique ProfileValueSource in the supplied ApplicationContext. If found, the profileValueSource for this test will be set to the unique ProfileValueSource.

Parameters:
applicationContext - the ApplicationContext in which to search for the ProfileValueSource; may not be null

runBare

public void runBare()
             throws Throwable
Overridden to populate transaction definition from annotations.

Overrides:
runBare in class ConditionalTestCase
Throws:
Throwable

isDisabledInThisEnvironment

protected boolean isDisabledInThisEnvironment(Method testMethod)
Determine if the test for the supplied testMethod should run in the current environment.

The default implementation is based on @IfProfileValue semantics.

Parameters:
testMethod - the test method
Returns:
true if the test is disabled in the current environment
See Also:
ProfileValueUtils.isTestEnabledInThisEnvironment(org.springframework.test.annotation.ProfileValueSource, java.lang.reflect.Method, java.lang.Class)

getTestMethod

protected Method getTestMethod()
Get the current test method.


isRollback

protected boolean isRollback()
Determine whether or not to rollback transactions for the current test by taking into consideration the default rollback flag and a possible method-level override via the @Rollback annotation.

Overrides:
isRollback in class AbstractTransactionalSpringContextTests
Returns:
the rollback flag for the current test

The Spring Framework

Copyright © 2002-2008 The Spring Framework.