diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc index abbe71ae7a89..5781b86b96a0 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc @@ -87,7 +87,7 @@ The following service connection factories are provided in the `spring-boot-test | Containers of type `RabbitMQContainer` | `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` | Containers named "openzipkin/zipkin" diff --git a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java index af2d09016d4e..5d8dc04158fe 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java +++ b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java @@ -19,6 +19,7 @@ import java.util.Map; import com.redis.testcontainers.RedisContainer; +import com.redis.testcontainers.RedisStackContainer; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; @@ -32,7 +33,7 @@ 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. * * @author Phillip Webb @@ -50,4 +51,15 @@ void getConnectionDetailsWhenRedisContainerWithCustomName() { assertThat(connectionDetails.get(RedisConnectionDetails.class)).isNotNull(); } + @Test + void getConnectionDetailsWhenRedisStackContainerWithCustomName() { + ConnectionDetailsFactories factories = new ConnectionDetailsFactories(); + MergedAnnotation annotation = MergedAnnotation.of(ServiceConnection.class, + Map.of("value", "")); + ContainerConnectionSource source = TestContainerConnectionSource.create("test", null, + RedisStackContainer.class, "mycustomimage", annotation, null); + Map, ConnectionDetails> connectionDetails = factories.getConnectionDetails(source, true); + assertThat(connectionDetails.get(RedisConnectionDetails.class)).isNotNull(); + } + } diff --git a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactory.java index 9048b65f19cd..134824058dc2 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactory.java @@ -19,6 +19,7 @@ import java.util.List; import com.redis.testcontainers.RedisContainer; +import com.redis.testcontainers.RedisStackContainer; import org.testcontainers.containers.Container; import org.testcontainers.containers.GenericContainer; @@ -53,7 +54,8 @@ class RedisContainerConnectionDetailsFactory protected boolean sourceAccepts(ContainerConnectionSource> source, Class requiredContainerType, Class 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