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
,OracleFreeTestResourceProvider
,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, 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, isEnabled
-
Field Details
-
PREFIX
- See Also:
-
-
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
-