From b9efd591e51290dbf11739ada17cdf872a2d5437 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Sat, 11 Jan 2025 10:19:08 -0800 Subject: [PATCH] Polish "Prevent redis pool to initialize in unit test" See gh-43774 --- .../RedisAutoConfigurationJedisTests.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationJedisTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationJedisTests.java index b1667d94a07..f66f5fe5af1 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationJedisTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationJedisTests.java @@ -152,15 +152,16 @@ class RedisAutoConfigurationJedisTests { @Test void testRedisConfigurationWithPool() { this.contextRunner - .withPropertyValues("spring.data.redis.host:foo", "spring.data.redis.jedis.pool.min-idle:0", + .withPropertyValues("spring.data.redis.host:foo", "spring.data.redis.jedis.pool.min-idle:1", "spring.data.redis.jedis.pool.max-idle:4", "spring.data.redis.jedis.pool.max-active:16", "spring.data.redis.jedis.pool.max-wait:2000", "spring.data.redis.jedis.pool.time-between-eviction-runs:30000") + .withUserConfiguration(JedisDisableStartupConfiguration.class) .run((context) -> { JedisConnectionFactory cf = context.getBean(JedisConnectionFactory.class); assertThat(cf.getHostName()).isEqualTo("foo"); assertThat(cf.getPoolConfig()).satisfies((poolConfig) -> { - assertThat(poolConfig.getMinIdle()).isEqualTo(0); + assertThat(poolConfig.getMinIdle()).isOne(); assertThat(poolConfig.getMaxIdle()).isEqualTo(4); assertThat(poolConfig.getMaxTotal()).isEqualTo(16); assertThat(poolConfig.getMaxWaitDuration()).isEqualTo(Duration.ofSeconds(2)); @@ -362,4 +363,25 @@ class RedisAutoConfigurationJedisTests { } + @Configuration(proxyBeanMethods = false) + static class JedisDisableStartupConfiguration { + + @Bean + static BeanPostProcessor jedisDisableStartup() { + return new BeanPostProcessor() { + + @Override + public Object postProcessBeforeInitialization(Object bean, String beanName) { + if (bean instanceof JedisConnectionFactory jedisConnectionFactory) { + jedisConnectionFactory.setEarlyStartup(false); + jedisConnectionFactory.setAutoStartup(false); + } + return bean; + } + + }; + } + + } + }