Class TestContextTransactionUtils
java.lang.Object
org.springframework.test.context.transaction.TestContextTransactionUtils
Utility methods for working with transactions and data access related beans
within the Spring TestContext Framework.
Mainly for internal use within the framework.
- Since:
- 4.1
- Author:
- Sam Brannen, Juergen Hoeller
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringDefault bean name for aDataSource:"dataSource".static final StringDefault bean name for aPlatformTransactionManager:"transactionManager". -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic TransactionAttributecreateDelegatingTransactionAttribute(TestContext testContext, TransactionAttribute targetAttribute) Create a delegatingTransactionAttributefor the supplied targetTransactionAttributeandTestContext, using the names of the test class and test method to build the name of the transaction.static DataSourceretrieveDataSource(TestContext testContext, String name) Retrieve theDataSourceto use for the supplied test context.static PlatformTransactionManagerretrieveTransactionManager(TestContext testContext, String name) Retrieve the transaction manager to use for the supplied test context.
-
Field Details
-
DEFAULT_DATA_SOURCE_NAME
Default bean name for aDataSource:"dataSource".- See Also:
-
DEFAULT_TRANSACTION_MANAGER_NAME
Default bean name for aPlatformTransactionManager:"transactionManager".- See Also:
-
-
Constructor Details
-
TestContextTransactionUtils
public TestContextTransactionUtils()
-
-
Method Details
-
retrieveDataSource
@Nullable public static DataSource retrieveDataSource(TestContext testContext, @Nullable String name) Retrieve theDataSourceto use for the supplied test context.The following algorithm is used to retrieve the
DataSourcefrom theApplicationContextof the supplied test context:- Look up the
DataSourceby type and name, if the suppliednameis non-empty, throwing aBeansExceptionif the namedDataSourcedoes not exist. - Attempt to look up the single
DataSourceby type. - Attempt to look up the primary
DataSourceby type. - Attempt to look up the
DataSourceby type and the default data source name.
- Parameters:
testContext- the test context for which theDataSourceshould be retrieved; nevernullname- the name of theDataSourceto retrieve (may benullor empty)- Returns:
- the
DataSourceto use, ornullif not found - Throws:
BeansException- if an error occurs while retrieving an explicitly namedDataSource
- Look up the
-
retrieveTransactionManager
@Nullable public static PlatformTransactionManager retrieveTransactionManager(TestContext testContext, @Nullable String name) Retrieve the transaction manager to use for the supplied test context.The following algorithm is used to retrieve the transaction manager from the
ApplicationContextof the supplied test context:- Look up the transaction manager by type and explicit name, if the supplied
nameis non-empty, throwing aBeansExceptionif the named transaction manager does not exist. - Attempt to look up the transaction manager via a
TransactionManagementConfigurer, if present. - Attempt to look up the single transaction manager by type.
- Attempt to look up the primary transaction manager by type.
- Attempt to look up the transaction manager by type and the default transaction manager name.
- Parameters:
testContext- the test context for which the transaction manager should be retrieved; nevernullname- the name of the transaction manager to retrieve (may benullor empty)- Returns:
- the transaction manager to use, or
nullif not found - Throws:
BeansException- if an error occurs while retrieving an explicitly named transaction managerIllegalStateException- if more than one TransactionManagementConfigurer exists in the ApplicationContext
- Look up the transaction manager by type and explicit name, if the supplied
-
createDelegatingTransactionAttribute
public static TransactionAttribute createDelegatingTransactionAttribute(TestContext testContext, TransactionAttribute targetAttribute) Create a delegatingTransactionAttributefor the supplied targetTransactionAttributeandTestContext, using the names of the test class and test method to build the name of the transaction.- Parameters:
testContext- theTestContextupon which to base the nametargetAttribute- theTransactionAttributeto delegate to- Returns:
- the delegating
TransactionAttribute
-