Package io.dropwizard.testing.junit5
Class DAOTestExtension
- java.lang.Object
-
- io.dropwizard.testing.junit5.DAOTestExtension
-
- All Implemented Interfaces:
DropwizardExtension
public class DAOTestExtension extends Object implements DropwizardExtension
An extension for testing DAOs and Hibernate entities. It allows to quickly test the database access code without starting the Dropwizard infrastructure.Example:
public DAOTestExtension daoTestExtension = DAOTestExtension.newBuilder() .addEntityClass(Person.class) .build(); private PersonDAO personDAO; @BeforeEach public void setUp() throws Exception { personDAO = new PersonDAO(daoTestRule.getSessionFactory()); } @Test public void createPerson() { Person wizard = daoTestExtension.inTransaction(() -> personDAO.create(new Person("Merlin", "The chief wizard"))); assertThat(wizard.getId()).isGreaterThan(0); assertThat(wizard.getFullName()).isEqualTo("Merlin"); assertThat(wizard.getJobTitle()).isEqualTo("The chief wizard"); }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDAOTestExtension.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafter()Executed after test method or class.voidbefore()Executed before test method or class.org.hibernate.SessionFactorygetSessionFactory()Returns the current active session factory for injecting to DAOs.voidinTransaction(Runnable action)Performs an action in a transaction<T> TinTransaction(Callable<T> call)Performs a call in a transactionstatic DAOTestExtension.BuildernewBuilder()Creates a new builder forDAOTestExtension, which allows to customize aSessionFactoryby different parameters.
-
-
-
Method Detail
-
newBuilder
public static DAOTestExtension.Builder newBuilder()
Creates a new builder forDAOTestExtension, which allows to customize aSessionFactoryby different parameters. By default uses the H2 database in the memory mode.- Returns:
- a new
DAOTestExtension.Builder
-
before
public void before() throws ThrowableDescription copied from interface:DropwizardExtensionExecuted before test method or class.- Specified by:
beforein interfaceDropwizardExtension- Throws:
Throwable
-
after
public void after()
Description copied from interface:DropwizardExtensionExecuted after test method or class.- Specified by:
afterin interfaceDropwizardExtension
-
getSessionFactory
public org.hibernate.SessionFactory getSessionFactory()
Returns the current active session factory for injecting to DAOs.- Returns:
SessionFactorywith an open session.
-
inTransaction
public <T> T inTransaction(Callable<T> call)
Performs a call in a transaction- Type Parameters:
T- the type of the returned result- Parameters:
call- the call- Returns:
- the result of the call
-
inTransaction
public void inTransaction(Runnable action)
Performs an action in a transaction- Parameters:
action- the action
-
-