Class 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");
        }
     

    • Method Detail

      • 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