Class DbUnitEmbeddedDatabaseExtension

java.lang.Object
com.github.mjeanroy.dbunit.integration.spring.jupiter.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:
  • Constructor Details

    • 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 Details

    • 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