Package io.micronaut.testresources.jdbc
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.
-
Field Summary
Fields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Fields inherited from interface io.micronaut.testresources.core.TestResourcesResolver
TEST_RESOURCES_PROPERTY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
configureContainer
(T container, Map<String, Object> properties, Map<String, Object> testResourcesConfig) protected static String
datasourceExpressionOf
(String datasource, String property) protected static String
datasourceNameFrom
(String expression) protected static String
datasourcePropertyFrom
(String expression) Returns the list of db-types supported by this provider.getRequiredProperties
(String expression) 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.getResolvableProperties
(Map<String, Collection<String>> propertyEntries, Map<String, Object> testResourcesConfig) Returns the list of properties that this resolver is able to support.protected static boolean
isDatasourceExpression
(String expression) protected String
resolveDbSpecificProperty
(String propertyName, org.testcontainers.containers.JdbcDatabaseContainer<?> container) Given the started container, resolves properties which are specific to a particular JDBC implementation.resolveProperty
(String expression, T container) protected boolean
shouldAnswer
(String propertyName, Map<String, Object> requestedProperties, Map<String, Object> testResourcesConfig) Determines if this resolver can resolve the requested property.Methods inherited from class io.micronaut.testresources.testcontainers.AbstractTestContainersProvider
createContainer, getDefaultImageName, getName, getOrder, getSimpleName, isEnabled, resolve, resolveWithoutContainer, stringOrNull
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.micronaut.testresources.core.TestResourcesResolver
getId
Methods inherited from interface io.micronaut.testresources.core.ToggableTestResourcesResolver
getDisplayName
-
Constructor Details
-
AbstractJdbcTestResourceProvider
public AbstractJdbcTestResourceProvider()
-
-
Method Details
-
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 callingTestResourcesResolver.getRequiredPropertyEntries()
and values are those property entries resolved.- Parameters:
propertyEntries
- the property entriestestResourcesConfig
- the test resources configuration- Returns:
- the list of properties
-
getRequiredPropertyEntries
-
getRequiredProperties
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 classAbstractTestContainersProvider<T extends org.testcontainers.containers.JdbcDatabaseContainer<? extends T>>
- Parameters:
propertyName
- the property to resolverequestedProperties
- the resolved propertiestestResourcesConfig
- the test resources configuration- Returns:
- if this resolver should answer
-
resolveProperty
- Specified by:
resolveProperty
in classAbstractTestContainersProvider<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 resolvecontainer
- 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 classAbstractTestContainersProvider<T extends org.testcontainers.containers.JdbcDatabaseContainer<? extends T>>
-
isDatasourceExpression
-
datasourceNameFrom
-
datasourcePropertyFrom
-
datasourceExpressionOf
-