Class DAOTestExtension

java.lang.Object
io.dropwizard.testing.junit5.DAOTestExtension
All Implemented Interfaces:
DropwizardExtension, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.Extension

public class DAOTestExtension extends Object implements DropwizardExtension, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback
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");
    }
 

  • Method Details

    • newBuilder

      public static DAOTestExtension.Builder newBuilder()
      Creates a new builder for DAOTestExtension, which allows to customize a SessionFactory by different parameters. Uses the H2 database in memory mode by default.
      Returns:
      a new DAOTestExtension.Builder
    • before

      public void before() throws Throwable
      Description copied from interface: DropwizardExtension
      Executed before test method or class.
      Specified by:
      before in interface DropwizardExtension
      Throws:
      Throwable
    • after

      public void after()
      Description copied from interface: DropwizardExtension
      Executed after test method or class.
      Specified by:
      after in interface DropwizardExtension
    • beforeAll

      public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Exception
      Specified by:
      beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallback
      Throws:
      Exception
    • afterAll

      public void afterAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
      Specified by:
      afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback
    • getSessionFactory

      public org.hibernate.SessionFactory getSessionFactory()
      Returns the current active session factory for injecting to DAOs.
      Returns:
      SessionFactory with 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