Skip to content

Commit f7ba5f1

Browse files
committed
Polish support for Testcontainers Redis
- Add support for RedisStackContainer - Update the docs Closes gh-41450
1 parent 7deb74a commit f7ba5f1

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ The following service connection factories are provided in the `spring-boot-test
8787
| Containers of type `RabbitMQContainer`
8888

8989
| `RedisConnectionDetails`
90-
| Containers named "redis", "redis/redis-stack" or "redis/redis-stack-server"
90+
| Containers of type `com.redis.testcontainers.RedisContainer` or `com.redis.testcontainers.RedisStackContainer`, or containers named "redis", "redis/redis-stack" or "redis/redis-stack-server"
9191

9292
| `ZipkinConnectionDetails`
9393
| Containers named "openzipkin/zipkin"

spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/redis/CustomRedisContainerConnectionDetailsFactoryTests.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.Map;
2020

2121
import com.redis.testcontainers.RedisContainer;
22+
import com.redis.testcontainers.RedisStackContainer;
2223
import org.junit.jupiter.api.Test;
2324

2425
import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails;
@@ -32,7 +33,7 @@
3233
import static org.assertj.core.api.Assertions.assertThat;
3334

3435
/**
35-
* Test for {@link RedisContainerConnectionDetailsFactory} when using a custom contain
36+
* Test for {@link RedisContainerConnectionDetailsFactory} when using a custom container
3637
* without "redis" as the name.
3738
*
3839
* @author Phillip Webb
@@ -50,4 +51,15 @@ void getConnectionDetailsWhenRedisContainerWithCustomName() {
5051
assertThat(connectionDetails.get(RedisConnectionDetails.class)).isNotNull();
5152
}
5253

54+
@Test
55+
void getConnectionDetailsWhenRedisStackContainerWithCustomName() {
56+
ConnectionDetailsFactories factories = new ConnectionDetailsFactories();
57+
MergedAnnotation<ServiceConnection> annotation = MergedAnnotation.of(ServiceConnection.class,
58+
Map.of("value", ""));
59+
ContainerConnectionSource<RedisStackContainer> source = TestContainerConnectionSource.create("test", null,
60+
RedisStackContainer.class, "mycustomimage", annotation, null);
61+
Map<Class<?>, ConnectionDetails> connectionDetails = factories.getConnectionDetails(source, true);
62+
assertThat(connectionDetails.get(RedisConnectionDetails.class)).isNotNull();
63+
}
64+
5365
}

spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/redis/RedisContainerConnectionDetailsFactory.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.List;
2020

2121
import com.redis.testcontainers.RedisContainer;
22+
import com.redis.testcontainers.RedisStackContainer;
2223
import org.testcontainers.containers.Container;
2324
import org.testcontainers.containers.GenericContainer;
2425

@@ -53,7 +54,8 @@ class RedisContainerConnectionDetailsFactory
5354
protected boolean sourceAccepts(ContainerConnectionSource<Container<?>> source, Class<?> requiredContainerType,
5455
Class<?> requiredConnectionDetailsType) {
5556
return super.sourceAccepts(source, requiredContainerType, requiredConnectionDetailsType)
56-
|| source.accepts(ANY_CONNECTION_NAME, RedisContainer.class, requiredConnectionDetailsType);
57+
|| source.accepts(ANY_CONNECTION_NAME, RedisContainer.class, requiredConnectionDetailsType)
58+
|| source.accepts(ANY_CONNECTION_NAME, RedisStackContainer.class, requiredConnectionDetailsType);
5759
}
5860

5961
@Override

0 commit comments

Comments
 (0)