K8s discovery tests clean up (#1321)
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user