Package net.officefloor.jdbc.test
Class DataSourceRule
- java.lang.Object
-
- net.officefloor.jdbc.test.DataSourceRule
-
- All Implemented Interfaces:
org.junit.rules.TestRule
public class DataSourceRule extends java.lang.Object implements org.junit.rules.TestRule
TestRule
for makingDataSource
available.This is useful for in memory database implementations to keep a
Connection
active so the in memory database stays active for the entirety of the test.- Author:
- Daniel Sagenschneider
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
DataSourceRule.ConnectionFactory
Factory to create theConnection
.static interface
DataSourceRule.ConnectionFactoryContext
Context for theDataSourceRule.ConnectionFactory
.
-
Constructor Summary
Constructors Constructor Description DataSourceRule(java.lang.String dataSourcePropertiesFilePath)
Instantiate.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description org.junit.runners.model.Statement
apply(org.junit.runners.model.Statement base, org.junit.runner.Description description)
java.sql.Connection
getActiveConnection()
Obtains the activeConnection
.java.sql.Connection
getConnection()
Convenience method to obtain aConnection
.javax.sql.DataSource
getDataSource()
Obtains theDataSource
.static java.sql.Connection
waitForDatabaseAvailable(java.lang.Object lock, DataSourceRule.ConnectionFactory connectionFactory)
Waits for the database to be available.static java.sql.Connection
waitForDatabaseAvailable(DataSourceRule.ConnectionFactory connectionFactory)
Waits for the database to be available.
-
-
-
Method Detail
-
waitForDatabaseAvailable
public static java.sql.Connection waitForDatabaseAvailable(DataSourceRule.ConnectionFactory connectionFactory) throws java.lang.Exception
Waits for the database to be available.- Parameters:
connectionFactory
-DataSourceRule.ConnectionFactory
.- Returns:
Connection
.- Throws:
java.lang.Exception
- If failed waiting on database orConnection
issue.
-
waitForDatabaseAvailable
public static java.sql.Connection waitForDatabaseAvailable(java.lang.Object lock, DataSourceRule.ConnectionFactory connectionFactory) throws java.lang.Exception
Waits for the database to be available.- Parameters:
lock
- To wait on to allow locking setup.connectionFactory
-DataSourceRule.ConnectionFactory
.- Returns:
Connection
.- Throws:
java.lang.Exception
- If failed waiting on database orConnection
issue.
-
getDataSource
public javax.sql.DataSource getDataSource()
Obtains theDataSource
.- Returns:
DataSource
;
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLException
Convenience method to obtain aConnection
.- Returns:
Connection
.- Throws:
java.sql.SQLException
- If fails to obtainConnection
.
-
getActiveConnection
public java.sql.Connection getActiveConnection()
Obtains the activeConnection
.- Returns:
- Active
Connection
.
-
apply
public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description)
- Specified by:
apply
in interfaceorg.junit.rules.TestRule
-
-