Polish support for Testcontainers Redis
- Add support for RedisStackContainer - Update the docs Closes gh-41450
This commit is contained in:
@@ -87,7 +87,7 @@ The following service connection factories are provided in the `spring-boot-test
|
|||||||
| Containers of type `RabbitMQContainer`
|
| Containers of type `RabbitMQContainer`
|
||||||
|
|
||||||
| `RedisConnectionDetails`
|
| `RedisConnectionDetails`
|
||||||
| Containers named "redis", "redis/redis-stack" or "redis/redis-stack-server"
|
| Containers of type `com.redis.testcontainers.RedisContainer` or `com.redis.testcontainers.RedisStackContainer`, or containers named "redis", "redis/redis-stack" or "redis/redis-stack-server"
|
||||||
|
|
||||||
| `ZipkinConnectionDetails`
|
| `ZipkinConnectionDetails`
|
||||||
| Containers named "openzipkin/zipkin"
|
| Containers named "openzipkin/zipkin"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package org.springframework.boot.testcontainers.service.connection.redis;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.redis.testcontainers.RedisContainer;
|
import com.redis.testcontainers.RedisContainer;
|
||||||
|
import com.redis.testcontainers.RedisStackContainer;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails;
|
import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails;
|
||||||
@@ -32,7 +33,7 @@ import org.springframework.core.annotation.MergedAnnotation;
|
|||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test for {@link RedisContainerConnectionDetailsFactory} when using a custom contain
|
* Test for {@link RedisContainerConnectionDetailsFactory} when using a custom container
|
||||||
* without "redis" as the name.
|
* without "redis" as the name.
|
||||||
*
|
*
|
||||||
* @author Phillip Webb
|
* @author Phillip Webb
|
||||||
@@ -50,4 +51,15 @@ class CustomRedisContainerConnectionDetailsFactoryTests {
|
|||||||
assertThat(connectionDetails.get(RedisConnectionDetails.class)).isNotNull();
|
assertThat(connectionDetails.get(RedisConnectionDetails.class)).isNotNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void getConnectionDetailsWhenRedisStackContainerWithCustomName() {
|
||||||
|
ConnectionDetailsFactories factories = new ConnectionDetailsFactories();
|
||||||
|
MergedAnnotation<ServiceConnection> annotation = MergedAnnotation.of(ServiceConnection.class,
|
||||||
|
Map.of("value", ""));
|
||||||
|
ContainerConnectionSource<RedisStackContainer> source = TestContainerConnectionSource.create("test", null,
|
||||||
|
RedisStackContainer.class, "mycustomimage", annotation, null);
|
||||||
|
Map<Class<?>, ConnectionDetails> connectionDetails = factories.getConnectionDetails(source, true);
|
||||||
|
assertThat(connectionDetails.get(RedisConnectionDetails.class)).isNotNull();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package org.springframework.boot.testcontainers.service.connection.redis;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.redis.testcontainers.RedisContainer;
|
import com.redis.testcontainers.RedisContainer;
|
||||||
|
import com.redis.testcontainers.RedisStackContainer;
|
||||||
import org.testcontainers.containers.Container;
|
import org.testcontainers.containers.Container;
|
||||||
import org.testcontainers.containers.GenericContainer;
|
import org.testcontainers.containers.GenericContainer;
|
||||||
|
|
||||||
@@ -53,7 +54,8 @@ class RedisContainerConnectionDetailsFactory
|
|||||||
protected boolean sourceAccepts(ContainerConnectionSource<Container<?>> source, Class<?> requiredContainerType,
|
protected boolean sourceAccepts(ContainerConnectionSource<Container<?>> source, Class<?> requiredContainerType,
|
||||||
Class<?> requiredConnectionDetailsType) {
|
Class<?> requiredConnectionDetailsType) {
|
||||||
return super.sourceAccepts(source, requiredContainerType, requiredConnectionDetailsType)
|
return super.sourceAccepts(source, requiredContainerType, requiredConnectionDetailsType)
|
||||||
|| source.accepts(ANY_CONNECTION_NAME, RedisContainer.class, requiredConnectionDetailsType);
|
|| source.accepts(ANY_CONNECTION_NAME, RedisContainer.class, requiredConnectionDetailsType)
|
||||||
|
|| source.accepts(ANY_CONNECTION_NAME, RedisStackContainer.class, requiredConnectionDetailsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user