Class DbUnitEmbeddedDatabaseExtension

  • All Implemented Interfaces:
    org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver

    public class DbUnitEmbeddedDatabaseExtension
    extends Object
    implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.ParameterResolver
    A simple and easy-to-use integration between DbUnit and spring EmbeddedDatabase.
    This extension will: Note that this extension will use EmbeddedDatabaseExtension and DbUnitExtension internally, so there is not need to use also these extensions here.
    This extension can be used using ExtendWith or RegisterExtension.
    For example:
    
       @DbUnitDataSet("/dataset")
       @DbUnitSetup(DbUnitOperation.CLEAN_INSERT)
       @DbUnitTearDown(DbUnitOperation.TRUNCATE_TABLE)
       class MyDaoTest {
         @RegisterExtension
         static EmbeddedDatabaseExtension extension = new EmbeddedDatabaseExtension(
           new EmbeddedDatabaseBuilder()
             .generateUniqueName(true)
             .addScript("classpath:/sql/init.sql")
             .addScript("classpath:/sql/data.sql")
             .build()
         );
    
         @Test
         void test1(EmbeddedDatabase db) throws Exception {
           Assertions.assertEquals(count(db.getConnection()), 2);
         }
       }
     
    This extension can also be used with EmbeddedDatabaseConfiguration to configure the embedded database to use during tests:
    
       @EmbeddedDatabaseConfiguration(generateUniqueName = true, scripts = "classpath:/sql/init.sql")
       @DbUnitDataSet("/dataset")
       @DbUnitSetup(DbUnitOperation.CLEAN_INSERT)
       @DbUnitTearDown(DbUnitOperation.TRUNCATE_TABLE)
       class MyDaoTest {
         @Test
         void test1(EmbeddedDatabase db) throws Exception {
           Assertions.assertEquals(count(db.getConnection()), 2);
         }
       }
     
    See Also:
    EmbeddedDatabaseExtension, DbUnitExtension, EmbeddedDatabaseConfiguration
    • Constructor Detail

      • DbUnitEmbeddedDatabaseExtension

        public DbUnitEmbeddedDatabaseExtension()
        Create extension with default database or using EmbeddedDatabaseConfiguration settings.
      • DbUnitEmbeddedDatabaseExtension

        public DbUnitEmbeddedDatabaseExtension​(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase db)
        Create extension with given EmbeddedDatabase.
        Parameters:
        db - Embedded database.
        Throws:
        NullPointerException - If db is null.
    • Method Detail

      • beforeAll

        public void beforeAll​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallback
      • afterAll

        public void afterAll​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback
      • beforeEach

        public void beforeEach​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
      • afterEach

        public void afterEach​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        afterEach in interface org.junit.jupiter.api.extension.AfterEachCallback
      • supportsParameter

        public boolean supportsParameter​(org.junit.jupiter.api.extension.ParameterContext parameterContext,
                                         org.junit.jupiter.api.extension.ExtensionContext extensionContext)
                                  throws org.junit.jupiter.api.extension.ParameterResolutionException
        Specified by:
        supportsParameter in interface org.junit.jupiter.api.extension.ParameterResolver
        Throws:
        org.junit.jupiter.api.extension.ParameterResolutionException
      • resolveParameter

        public Object resolveParameter​(org.junit.jupiter.api.extension.ParameterContext parameterContext,
                                       org.junit.jupiter.api.extension.ExtensionContext extensionContext)
                                throws org.junit.jupiter.api.extension.ParameterResolutionException
        Specified by:
        resolveParameter in interface org.junit.jupiter.api.extension.ParameterResolver
        Throws:
        org.junit.jupiter.api.extension.ParameterResolutionException