From f404629a4f76fdf86cf9f87f57b7b5a1dff6bec1 Mon Sep 17 00:00:00 2001 From: erabii Date: Tue, 25 Apr 2023 15:07:06 +0300 Subject: [PATCH] K8s discovery tests clean up (#1321) --- ...DiscoveryClientAutoConfigurationTests.java | 24 +++++++---------- ...nfigClientBootstrapConfigurationTests.java | 27 ++++++++----------- ...DiscoveryClientAutoConfigurationTests.java | 24 +++++++---------- 3 files changed, 31 insertions(+), 44 deletions(-) diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java index 3061c5d8..f3405ac9 100644 --- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java +++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java @@ -24,10 +24,9 @@ import io.kubernetes.client.openapi.models.V1EndpointsListBuilder; import io.kubernetes.client.openapi.models.V1ListMetaBuilder; import io.kubernetes.client.openapi.models.V1ServiceListBuilder; import io.kubernetes.client.util.ClientBuilder; -import org.junit.Test; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -36,7 +35,6 @@ import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClient; import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider; import org.springframework.context.annotation.Bean; -import org.springframework.test.context.junit4.SpringRunner; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.get; @@ -46,30 +44,29 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.discovery.cacheLoadingTimeoutSeconds=5", "spring.cloud.config.enabled=false", "spring.cloud.kubernetes.discovery.waitCacheReady=false" }) -public class KubernetesDiscoveryClientAutoConfigurationTests { +class KubernetesDiscoveryClientAutoConfigurationTests { - @Autowired(required = false) + @Autowired private DiscoveryClient discoveryClient; - public static WireMockServer wireMockServer; + private static WireMockServer wireMockServer; @AfterAll - public static void after() { + static void after() { wireMockServer.stop(); } @AfterEach - public void afterEach() { + void afterEach() { WireMock.reset(); } @Test - public void kubernetesDiscoveryClientCreated() { + void kubernetesDiscoveryClientCreated() { assertThat(this.discoveryClient).isNotNull().isInstanceOf(CompositeDiscoveryClient.class); CompositeDiscoveryClient composite = (CompositeDiscoveryClient) this.discoveryClient; @@ -81,14 +78,14 @@ public class KubernetesDiscoveryClientAutoConfigurationTests { protected static class TestConfig { @Bean - public KubernetesNamespaceProvider kubernetesNamespaceProvider() { + KubernetesNamespaceProvider kubernetesNamespaceProvider() { KubernetesNamespaceProvider provider = mock(KubernetesNamespaceProvider.class); when(provider.getNamespace()).thenReturn("test"); return provider; } @Bean - public ApiClient apiClient() { + ApiClient apiClient() { wireMockServer = new WireMockServer(options().dynamicPort()); wireMockServer.start(); WireMock.configureFor(wireMockServer.port()); @@ -98,8 +95,7 @@ public class KubernetesDiscoveryClientAutoConfigurationTests { stubFor(get("/api/v1/namespaces/test/services?resourceVersion=0&watch=false") .willReturn(aResponse().withStatus(200).withBody(new JSON().serialize(new V1ServiceListBuilder() .withMetadata(new V1ListMetaBuilder().withResourceVersion("0").build()).build())))); - ApiClient apiClient = new ClientBuilder().setBasePath(wireMockServer.baseUrl()).build(); - return apiClient; + return new ClientBuilder().setBasePath(wireMockServer.baseUrl()).build(); } } diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java index 3228927e..312f396f 100644 --- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java +++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java @@ -21,10 +21,10 @@ import java.util.Collections; import io.kubernetes.client.openapi.ApiClient; import io.kubernetes.client.openapi.JSON; import okhttp3.OkHttpClient; -import org.junit.After; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.test.util.TestPropertyValues; import org.springframework.cloud.client.DefaultServiceInstance; @@ -39,24 +39,19 @@ import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import static junit.framework.TestCase.assertEquals; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -@Configuration(proxyBeanMethods = false) -@ConditionalOnProperty("spring.cloud.config.discovery.enabled") -@Import({ KubernetesClientAutoConfiguration.class, KubernetesInformerDiscoveryClientAutoConfiguration.class }) public class KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests { private AnnotationConfigApplicationContext context; - @After - public void close() { + @AfterEach + void close() { if (this.context != null) { if (this.context.getParent() != null) { ((AnnotationConfigApplicationContext) this.context.getParent()).close(); @@ -66,16 +61,16 @@ public class KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests { } @Test - public void onWhenRequested() throws Exception { + void onWhenRequested() { setup("server.port=7000", "spring.cloud.config.discovery.enabled=true", "spring.cloud.kubernetes.discovery.enabled:true", "spring.application.name:test", "spring.cloud.config.discovery.service-id:configserver"); - assertEquals(1, this.context.getParent().getBeanNamesForType(DiscoveryClient.class).length); + Assertions.assertEquals(1, this.context.getParent().getBeanNamesForType(DiscoveryClient.class).length); DiscoveryClient client = this.context.getParent().getBean(DiscoveryClient.class); verify(client, atLeast(2)).getInstances("configserver"); ConfigClientProperties locator = this.context.getBean(ConfigClientProperties.class); - assertEquals("http://fake:8888/", locator.getUri()[0]); + Assertions.assertEquals("http://fake:8888/", locator.getUri()[0]); } private void setup(String... env) { @@ -97,7 +92,7 @@ public class KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests { protected static class EnvironmentKnobbler { @Bean - public ApiClient apiClient() { + ApiClient apiClient() { ApiClient apiClient = mock(ApiClient.class); when(apiClient.getJSON()).thenReturn(new JSON()); when(apiClient.getHttpClient()).thenReturn(new OkHttpClient.Builder().build()); @@ -105,14 +100,14 @@ public class KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests { } @Bean - public KubernetesNamespaceProvider kubernetesNamespaceProvider() { + KubernetesNamespaceProvider kubernetesNamespaceProvider() { KubernetesNamespaceProvider provider = mock(KubernetesNamespaceProvider.class); when(provider.getNamespace()).thenReturn("test"); return provider; } @Bean - public KubernetesInformerDiscoveryClient kubernetesInformerDiscoveryClient() { + KubernetesInformerDiscoveryClient kubernetesInformerDiscoveryClient() { KubernetesInformerDiscoveryClient client = mock(KubernetesInformerDiscoveryClient.class); ServiceInstance instance = new DefaultServiceInstance("configserver1", "configserver", "fake", 8888, false); given(client.getInstances("configserver")).willReturn(Collections.singletonList(instance)); diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests.java index 5e87f7e1..a22d101b 100644 --- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests.java +++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests.java @@ -24,10 +24,9 @@ import io.kubernetes.client.openapi.models.V1EndpointsListBuilder; import io.kubernetes.client.openapi.models.V1ListMetaBuilder; import io.kubernetes.client.openapi.models.V1ServiceListBuilder; import io.kubernetes.client.util.ClientBuilder; -import org.junit.Test; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -36,7 +35,6 @@ import org.springframework.cloud.client.discovery.ReactiveDiscoveryClient; import org.springframework.cloud.client.discovery.composite.reactive.ReactiveCompositeDiscoveryClient; import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider; import org.springframework.context.annotation.Bean; -import org.springframework.test.context.junit4.SpringRunner; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.get; @@ -49,30 +47,29 @@ import static org.mockito.Mockito.when; /** * @author Ryan Baxter */ -@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.discovery.cacheLoadingTimeoutSeconds=5", "spring.cloud.config.enabled=false", "spring.cloud.kubernetes.discovery.waitCacheReady=false", "spring.main.web-application-type=reactive" }) -public class KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests { +class KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests { - @Autowired(required = false) + @Autowired private ReactiveDiscoveryClient discoveryClient; - public static WireMockServer wireMockServer; + private static WireMockServer wireMockServer; @AfterAll - public static void after() { + static void after() { wireMockServer.stop(); } @AfterEach - public void afterEach() { + void afterEach() { WireMock.reset(); } @Test - public void kubernetesDiscoveryClientCreated() { + void kubernetesDiscoveryClientCreated() { assertThat(this.discoveryClient).isNotNull().isInstanceOf(ReactiveCompositeDiscoveryClient.class); ReactiveCompositeDiscoveryClient composite = (ReactiveCompositeDiscoveryClient) this.discoveryClient; @@ -84,7 +81,7 @@ public class KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests { protected static class TestConfig { @Bean - public ApiClient apiClient() { + ApiClient apiClient() { wireMockServer = new WireMockServer(options().dynamicPort()); wireMockServer.start(); WireMock.configureFor(wireMockServer.port()); @@ -94,12 +91,11 @@ public class KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests { stubFor(get("/api/v1/namespaces/test/services?resourceVersion=0&watch=false") .willReturn(aResponse().withStatus(200).withBody(new JSON().serialize(new V1ServiceListBuilder() .withMetadata(new V1ListMetaBuilder().withResourceVersion("0").build()).build())))); - ApiClient apiClient = new ClientBuilder().setBasePath(wireMockServer.baseUrl()).build(); - return apiClient; + return new ClientBuilder().setBasePath(wireMockServer.baseUrl()).build(); } @Bean - public KubernetesNamespaceProvider kubernetesNamespaceProvider() { + KubernetesNamespaceProvider kubernetesNamespaceProvider() { KubernetesNamespaceProvider provider = mock(KubernetesNamespaceProvider.class); when(provider.getNamespace()).thenReturn("test"); return provider;