Class JdbiPostgresExtension

java.lang.Object
org.jdbi.v3.testing.junit5.JdbiExtension
org.jdbi.v3.testing.junit5.JdbiPostgresExtension
All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver

public class JdbiPostgresExtension extends JdbiExtension
Jdbi PostgreSQL JUnit 5 rule using the pg-embedded component.

Using this class with the @ExtendWith annotation is equivalent to using the SingleDatabaseBuilder to create a EmbeddedPgExtension that creates a new postgres instance per test. This is slower than using the MultiDatabaseBuilder and using JdbiExtension.postgres(EmbeddedPgExtension).

Override methods for special case construction:


     @RegisterExtension
     public JdbiExtension extension = new JdbiPostgresExtension(pg) {
         @Override
         protected DataSource createDataSource() {
            ...
         }
     };
 

Use with ExtendWith:


 @ExtendWith(JdbiPostgresExtension.class)
 public class DatabaseTest {
     @Test
     public void testWithJdbi(Jdbi jdbi) {
         ...
     }

     @Test
     public void testWithHandle(Handle handle) {
         ...
     }
 }
 
  • Constructor Details

    • JdbiPostgresExtension

      public JdbiPostgresExtension()
  • Method Details

    • getUrl

      public String getUrl()
      Description copied from class: JdbiExtension
      Returns a JDBC url representing the data source used by this extension. This url is database-specific and may or may not be used to connect to the data source outside testing code that uses this extension (e.g. the JdbiSqliteExtension returns a constant uri for all database instances).
      Specified by:
      getUrl in class JdbiExtension
      Returns:
      A string representing the JDBC URL.
    • beforeEach

      public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      Specified by:
      beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
      Overrides:
      beforeEach in class JdbiExtension
      Throws:
      Exception
    • afterEach

      public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      Specified by:
      afterEach in interface org.junit.jupiter.api.extension.AfterEachCallback
      Overrides:
      afterEach in class JdbiExtension
      Throws:
      Exception