From e51f2bdf07b41498fa1001c782a9dd9b7aeffe08 Mon Sep 17 00:00:00 2001 From: Robert McNees Date: Fri, 17 Sep 2021 14:13:50 -0400 Subject: [PATCH] Changes for redis and docker test to run --- .../GatewayRedisAutoConfigurationTests.java | 24 ------- ...itionRepositoryEnabledByPropertyTests.java | 70 +++++++++++++++++++ 2 files changed, 70 insertions(+), 24 deletions(-) create mode 100644 spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/config/GatewayRedisRouteDefinitionRepositoryEnabledByPropertyTests.java diff --git a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/config/GatewayRedisAutoConfigurationTests.java b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/config/GatewayRedisAutoConfigurationTests.java index d9d88da0..a3a1b6ce 100644 --- a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/config/GatewayRedisAutoConfigurationTests.java +++ b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/config/GatewayRedisAutoConfigurationTests.java @@ -18,8 +18,6 @@ package org.springframework.cloud.gateway.config; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.junit.jupiter.Container; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; @@ -113,26 +111,4 @@ public class GatewayRedisAutoConfigurationTests { } - /** - * @author Dennis Menge - */ - @Nested - @SpringBootTest(classes = GatewayRedisAutoConfigurationTests.Config.class, - properties = "spring.cloud.gateway.redis-route-definition-repository.enabled=true") - @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) - class RedisRouteDefinitionRepositoryEnabledByProperty { - - @Container - public GenericContainer redis = new GenericContainer<>("redis:5.0.9-alpine").withExposedPorts(6379); - - @Autowired(required = false) - private RedisRouteDefinitionRepository redisRouteDefinitionRepository; - - @Test - public void redisRouteDefinitionRepository() { - assertThat(redisRouteDefinitionRepository).isNotNull(); - } - - } - } diff --git a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/config/GatewayRedisRouteDefinitionRepositoryEnabledByPropertyTests.java b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/config/GatewayRedisRouteDefinitionRepositoryEnabledByPropertyTests.java new file mode 100644 index 00000000..47d51c04 --- /dev/null +++ b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/config/GatewayRedisRouteDefinitionRepositoryEnabledByPropertyTests.java @@ -0,0 +1,70 @@ +/* + * Copyright 2013-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.gateway.config; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.util.TestPropertyValues; +import org.springframework.cloud.gateway.route.RedisRouteDefinitionRepository; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ContextConfiguration; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest(classes = GatewayRedisAutoConfigurationTests.Config.class, + properties = "spring.cloud.gateway.redis-route-definition-repository.enabled=true") +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) +@Testcontainers +@ContextConfiguration( + initializers = GatewayRedisRouteDefinitionRepositoryEnabledByPropertyTests.RedisDbInitializer.class) +public class GatewayRedisRouteDefinitionRepositoryEnabledByPropertyTests { + + @Container + public static GenericContainer redis = new GenericContainer<>("redis:5.0.9-alpine").withExposedPorts(6379); + + @Autowired(required = false) + private RedisRouteDefinitionRepository redisRouteDefinitionRepository; + + @BeforeAll + public static void startRedisContainer() { + redis.start(); + } + + @Test + public void redisRouteDefinitionRepository() { + assertThat(redisRouteDefinitionRepository).isNotNull(); + } + + public static class RedisDbInitializer implements ApplicationContextInitializer { + + @Override + public void initialize(ConfigurableApplicationContext configurableApplicationContext) { + TestPropertyValues values = TestPropertyValues.of("spring.redis.port=" + redis.getFirstMappedPort()); + values.applyTo(configurableApplicationContext); + } + + } + +}