Class GenericTestContainerProvider
java.lang.Object
io.micronaut.testresources.testcontainers.GenericTestContainerProvider
- All Implemented Interfaces:
io.micronaut.core.order.Ordered
,TestResourcesResolver
,ToggableTestResourcesResolver
A generic test containers provider. This provider is special in the sense
that it requires user provided configuration in order to spawn containers.
Therefore, the application configuration must contain entries under the
"test-resources.containers" property prefix.
A generic container is represented with a name, a container image, and
exposes a number of ports.
For example, imagine that a service requires an SMTP server to work
property. Then it is likely that some configuration property needs to
point to the server port. If that property is
smtp.port
, then it is
possible to expose a test container which will resolve that property using
the following configuration:
test-resources: containers: fakesmtp: image-name: ghusta/fakesmtp:2.0 hostnames: - smtp.host exposed-ports: - smtp.port: 25The mapped port from test containers will then be automatically be assigned to the
smtp.port
property, and the host name of the running
test container will automatically be assigned to the smtp.host
property.-
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 TypeMethodDescriptionReturns a display name for a test resources resolver, used for debugging purposes.getName()
int
getOrder()
getResolvableProperties
(Map<String, Collection<String>> propertyEntries, Map<String, Object> testResourcesConfig) Returns the list of properties that this resolver is able to support.boolean
Resolves the given property.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, getRequiredProperties, getRequiredPropertyEntries
-
Constructor Details
-
GenericTestContainerProvider
public GenericTestContainerProvider()
-
-
Method Details
-
getDisplayName
Description copied from interface:TestResourcesResolver
Returns a display name for a test resources resolver, used for debugging purposes.- Specified by:
getDisplayName
in interfaceTestResourcesResolver
- Specified by:
getDisplayName
in interfaceToggableTestResourcesResolver
- Returns:
- the display name
-
getName
- Specified by:
getName
in interfaceToggableTestResourcesResolver
-
getOrder
public int getOrder()- Specified by:
getOrder
in interfaceio.micronaut.core.order.Ordered
-
isEnabled
- Specified by:
isEnabled
in interfaceToggableTestResourcesResolver
-
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.- Specified by:
getResolvableProperties
in interfaceTestResourcesResolver
- Parameters:
propertyEntries
- the property entriestestResourcesConfig
- the test resources configuration- Returns:
- the list of properties
-
resolve
public Optional<String> resolve(String propertyName, Map<String, Object> properties, Map<String, Object> testResourcesConfig) Description copied from interface:TestResourcesResolver
Resolves the given property.- Specified by:
resolve
in interfaceTestResourcesResolver
- Parameters:
propertyName
- the property to resolveproperties
- the resolved required propertiestestResourcesConfig
- the test resources configuration- Returns:
- the resolved property or empty if not found
-