Class AbstractJdbcTestResourceProvider<T extends org.testcontainers.containers.JdbcDatabaseContainer<? extends T>>

java.lang.Object
io.micronaut.testresources.testcontainers.AbstractTestContainersProvider<T>
io.micronaut.testresources.jdbc.AbstractJdbcTestResourceProvider<T>
Type Parameters:
T - the type of the container
All Implemented Interfaces:
io.micronaut.core.order.Ordered, TestResourcesResolver, ToggableTestResourcesResolver
Direct Known Subclasses:
MariaDBTestResourceProvider, MSSQLTestResourceProvider, MySQLTestResourceProvider, OracleXETestResourceProvider, PostgreSQLTestResourceProvider

public abstract class AbstractJdbcTestResourceProvider<T extends org.testcontainers.containers.JdbcDatabaseContainer<? extends T>> extends AbstractTestContainersProvider<T>
Superclass for JDBC test containers providers.
  • Constructor Details

    • AbstractJdbcTestResourceProvider

      public AbstractJdbcTestResourceProvider()
  • Method Details

    • getDbTypes

      protected List<String> getDbTypes()
      Returns the list of db-types supported by this provider.
      Returns:
      the list of db types
    • getResolvableProperties

      public List<String> getResolvableProperties(Map<String,Collection<String>> propertyEntries, Map<String,Object> testResourcesConfig)
      Description copied from interface: TestResourcesResolver
      Returns the list of properties that this resolver is able to support. The property entries map is a map which keys are the property entries retrieved from calling TestResourcesResolver.getRequiredPropertyEntries() and values are those property entries resolved.
      Parameters:
      propertyEntries - the property entries
      testResourcesConfig - the test resources configuration
      Returns:
      the list of properties
    • getRequiredPropertyEntries

      public List<String> getRequiredPropertyEntries()
    • getRequiredProperties

      public List<String> getRequiredProperties(String expression)
      Description copied from interface: TestResourcesResolver
      Returns the list of properties which should be read before resolving an expression: this can be used if the resolver itself needs some configuration properties.
      Parameters:
      expression - the expression which needs to be resolved.
      Returns:
      the list of configuration properties this resolver requires
    • shouldAnswer

      protected boolean shouldAnswer(String propertyName, Map<String,Object> requestedProperties, Map<String,Object> testResourcesConfig)
      Description copied from class: AbstractTestContainersProvider
      Determines if this resolver can resolve the requested property. It is used in order to make sure that a "Postgres" resolver wouldn't provide a value if the requested container type is for MySQL, for example.
      Overrides:
      shouldAnswer in class AbstractTestContainersProvider<T extends org.testcontainers.containers.JdbcDatabaseContainer<? extends T>>
      Parameters:
      propertyName - the property to resolve
      requestedProperties - the resolved properties
      testResourcesConfig - the test resources configuration
      Returns:
      if this resolver should answer
    • resolveProperty

      protected Optional<String> resolveProperty(String expression, T container)
      Specified by:
      resolveProperty in class AbstractTestContainersProvider<T extends org.testcontainers.containers.JdbcDatabaseContainer<? extends T>>
    • resolveDbSpecificProperty

      protected String resolveDbSpecificProperty(String propertyName, org.testcontainers.containers.JdbcDatabaseContainer<?> container)
      Given the started container, resolves properties which are specific to a particular JDBC implementation.
      Parameters:
      propertyName - the property to resolve
      container - the started container
      Returns:
      the resolved property, or null if not resolvable
    • configureContainer

      protected void configureContainer(T container, Map<String,Object> properties, Map<String,Object> testResourcesConfig)
      Overrides:
      configureContainer in class AbstractTestContainersProvider<T extends org.testcontainers.containers.JdbcDatabaseContainer<? extends T>>
    • isDatasourceExpression

      protected static boolean isDatasourceExpression(String expression)
    • datasourceNameFrom

      protected static String datasourceNameFrom(String expression)
    • datasourcePropertyFrom

      protected static String datasourcePropertyFrom(String expression)
    • datasourceExpressionOf

      protected static String datasourceExpressionOf(String datasource, String property)