Skip to content

Commit 734a430

Browse files
Makes autoconfig tests use ApplicationContextRunner (spring-attic#481)
Fixes spring-attic#313
1 parent 3e0b6b9 commit 734a430

File tree

5 files changed

+167
-253
lines changed

5 files changed

+167
-253
lines changed

spring-cloud-gcp-autoconfigure/src/test/java/org/springframework/cloud/gcp/autoconfigure/config/GcpConfigBootstrapConfigurationTest.java

+23-34
Original file line numberDiff line numberDiff line change
@@ -16,58 +16,47 @@
1616

1717
package org.springframework.cloud.gcp.autoconfigure.config;
1818

19-
import org.junit.After;
2019
import org.junit.Test;
2120

22-
import org.springframework.boot.test.util.TestPropertyValues;
23-
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
21+
import org.springframework.boot.autoconfigure.AutoConfigurations;
22+
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2423

25-
import static org.junit.Assert.assertEquals;
26-
import static org.junit.Assert.assertFalse;
24+
import static org.assertj.core.api.Assertions.assertThat;
2725

2826
/**
2927
* @author Jisha Abubaker
28+
* @author João André Martins
3029
*/
3130
public class GcpConfigBootstrapConfigurationTest {
32-
private AnnotationConfigApplicationContext context;
3331

34-
@After
35-
public void closeContext() {
36-
if (this.context != null) {
37-
this.context.close();
38-
}
39-
}
32+
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
33+
.withConfiguration(AutoConfigurations.of(GcpConfigBootstrapConfiguration.class));
4034

4135
@Test
4236
public void testConfigurationValueDefaultsAreAsExpected() {
43-
loadEnvironment();
44-
GcpConfigProperties config = this.context.getBean(GcpConfigProperties.class);
45-
assertEquals(config.getName(), null);
46-
assertEquals(config.getProfile(), "default");
47-
assertEquals(config.getTimeoutMillis(), 60000);
48-
assertEquals(config.isEnabled(), false);
37+
this.contextRunner.run(context -> {
38+
GcpConfigProperties config = context.getBean(GcpConfigProperties.class);
39+
assertThat(config.getName()).isNull();
40+
assertThat(config.getProfile()).isEqualTo("default");
41+
assertThat(config.getTimeoutMillis()).isEqualTo(60000);
42+
assertThat(config.isEnabled()).isFalse();
43+
});
4944
}
5045

5146
@Test
5247
public void testConfigurationValuesAreCorrectlyLoaded() {
53-
loadEnvironment("spring.cloud.gcp.config.name=myapp",
48+
this.contextRunner.withPropertyValues("spring.cloud.gcp.config.name=myapp",
5449
"spring.cloud.gcp.config.profile=prod",
5550
"spring.cloud.gcp.config.timeoutMillis=120000",
5651
"spring.cloud.gcp.config.enabled=false",
57-
"spring.cloud.gcp.config.project-id=pariah");
58-
GcpConfigProperties config = this.context.getBean(GcpConfigProperties.class);
59-
assertEquals(config.getName(), "myapp");
60-
assertEquals(config.getProfile(), "prod");
61-
assertEquals(config.getTimeoutMillis(), 120000);
62-
assertFalse(config.isEnabled());
63-
assertEquals(config.getProjectId(), "pariah");
64-
}
65-
66-
private void loadEnvironment(String... environment) {
67-
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
68-
TestPropertyValues.of(environment).applyTo(context);
69-
context.register(GcpConfigBootstrapConfiguration.class);
70-
context.refresh();
71-
this.context = context;
52+
"spring.cloud.gcp.config.project-id=pariah")
53+
.run(context -> {
54+
GcpConfigProperties config = context.getBean(GcpConfigProperties.class);
55+
assertThat(config.getName()).isEqualTo("myapp");
56+
assertThat(config.getProfile()).isEqualTo("prod");
57+
assertThat(config.getTimeoutMillis()).isEqualTo(120000);
58+
assertThat(config.isEnabled()).isFalse();
59+
assertThat(config.getProjectId()).isEqualTo("pariah");
60+
});
7261
}
7362
}

spring-cloud-gcp-autoconfigure/src/test/java/org/springframework/cloud/gcp/autoconfigure/core/GcpContextAutoConfigurationTests.java

+16-39
Original file line numberDiff line numberDiff line change
@@ -16,63 +16,40 @@
1616

1717
package org.springframework.cloud.gcp.autoconfigure.core;
1818

19-
import com.google.api.gax.core.CredentialsProvider;
20-
import com.google.auth.Credentials;
21-
import org.junit.After;
2219
import org.junit.Test;
2320

24-
import org.springframework.boot.test.util.TestPropertyValues;
21+
import org.springframework.boot.autoconfigure.AutoConfigurations;
22+
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2523
import org.springframework.cloud.gcp.core.DefaultGcpProjectIdProvider;
2624
import org.springframework.cloud.gcp.core.GcpProjectIdProvider;
27-
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
28-
import org.springframework.context.annotation.Bean;
29-
import org.springframework.context.annotation.Configuration;
3025

26+
import static org.assertj.core.api.Assertions.assertThat;
3127
import static org.junit.Assert.assertEquals;
32-
import static org.junit.Assert.assertTrue;
33-
import static org.mockito.Mockito.mock;
3428

3529
/**
3630
* @author João André Martins
3731
*/
38-
@Configuration
3932
public class GcpContextAutoConfigurationTests {
4033

41-
private AnnotationConfigApplicationContext context;
42-
43-
@After
44-
public void closeContext() {
45-
if (this.context != null) {
46-
this.context.close();
47-
}
48-
}
34+
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
35+
.withConfiguration(AutoConfigurations.of(GcpContextAutoConfiguration.class));
4936

5037
@Test
5138
public void testGetProjectIdProvider_withGcpProperties() {
52-
loadEnvironment("spring.cloud.gcp.projectId=test-project");
53-
GcpProjectIdProvider provider = this.context.getBean(GcpProjectIdProvider.class);
54-
55-
assertEquals("test-project", provider.getProjectId());
39+
this.contextRunner.withPropertyValues("spring.cloud.gcp.projectId=tonberry")
40+
.run(context -> {
41+
GcpProjectIdProvider projectIdProvider =
42+
context.getBean(GcpProjectIdProvider.class);
43+
assertEquals("tonberry", projectIdProvider.getProjectId());
44+
});
5645
}
5746

5847
@Test
5948
public void testGetProjectIdProvider_withoutGcpProperties() {
60-
loadEnvironment();
61-
assertTrue(this.context.getBean(GcpProjectIdProvider.class)
62-
instanceof DefaultGcpProjectIdProvider);
63-
}
64-
65-
private void loadEnvironment(String... environment) {
66-
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
67-
context.register(GcpContextAutoConfiguration.class);
68-
context.register(this.getClass());
69-
TestPropertyValues.of(environment).applyTo(context);
70-
context.refresh();
71-
this.context = context;
72-
}
73-
74-
@Bean
75-
public CredentialsProvider googleCredentials() {
76-
return () -> mock(Credentials.class);
49+
this.contextRunner.run(context -> {
50+
GcpProjectIdProvider projectIdProvider =
51+
context.getBean(GcpProjectIdProvider.class);
52+
assertThat(projectIdProvider).isInstanceOf(DefaultGcpProjectIdProvider.class);
53+
});
7754
}
7855
}

spring-cloud-gcp-autoconfigure/src/test/java/org/springframework/cloud/gcp/autoconfigure/logging/StackdriverLoggingAutoConfigurationTests.java

+61-82
Original file line numberDiff line numberDiff line change
@@ -19,120 +19,99 @@
1919
import java.util.List;
2020

2121
import org.junit.Test;
22-
import org.junit.runner.RunWith;
2322

24-
import org.springframework.beans.factory.annotation.Autowired;
25-
import org.springframework.boot.test.context.SpringBootTest;
23+
import org.springframework.boot.autoconfigure.AutoConfigurations;
24+
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
2625
import org.springframework.cloud.gcp.logging.CompositeTraceIdExtractor;
2726
import org.springframework.cloud.gcp.logging.TraceIdExtractor;
2827
import org.springframework.cloud.gcp.logging.TraceIdLoggingWebMvcInterceptor;
2928
import org.springframework.cloud.gcp.logging.XCloudTraceIdExtractor;
3029
import org.springframework.cloud.gcp.logging.ZipkinTraceIdExtractor;
31-
import org.springframework.test.context.TestPropertySource;
32-
import org.springframework.test.context.junit4.SpringRunner;
3330

34-
import static org.hamcrest.Matchers.is;
35-
import static org.junit.Assert.assertEquals;
36-
import static org.junit.Assert.assertThat;
37-
import static org.junit.Assert.assertTrue;
31+
import static org.assertj.core.api.Assertions.assertThat;
3832

3933
/**
4034
* @author Mike Eltsufin
35+
* @author João André Martins
4136
*/
42-
@RunWith(SpringRunner.class)
43-
@SpringBootTest(classes = { StackdriverLoggingAutoConfiguration.class },
44-
properties = {
45-
"debug",
46-
"spring.cloud.gcp.config.enabled=false"
47-
},
48-
webEnvironment = SpringBootTest.WebEnvironment.MOCK)
49-
public abstract class StackdriverLoggingAutoConfigurationTests {
50-
51-
@Autowired
52-
private Object[] interceptors;
53-
54-
public abstract void test();
55-
56-
public int countTraceIdInterceptors() {
57-
int count = 0;
58-
for (int i = 0; i < this.interceptors.length; i++) {
59-
if (this.interceptors[i] instanceof TraceIdLoggingWebMvcInterceptor) {
60-
count++;
61-
}
62-
}
63-
return count;
37+
public class StackdriverLoggingAutoConfigurationTests {
38+
39+
private WebApplicationContextRunner contextRunner =
40+
new WebApplicationContextRunner()
41+
.withConfiguration(
42+
AutoConfigurations.of(StackdriverLoggingAutoConfiguration.class));
43+
44+
@Test
45+
public void testDisabledConfiguration() {
46+
this.contextRunner.withPropertyValues("spring.cloud.gcp.logging.enabled=false")
47+
.run(context -> {
48+
assertThat(context.getBeansOfType(TraceIdLoggingWebMvcInterceptor.class).size())
49+
.isEqualTo(0);
50+
});
51+
}
52+
53+
@Test
54+
public void testRegularConfiguration() {
55+
this.contextRunner.run(context -> {
56+
assertThat(context.getBeansOfType(TraceIdLoggingWebMvcInterceptor.class).size())
57+
.isEqualTo(1);
58+
});
6459
}
6560

6661
@Test
6762
public void testGetTraceIdExtractorsDefault() {
68-
StackdriverLoggingProperties propertires = new StackdriverLoggingProperties();
69-
propertires.setTraceIdExtractor(null);
70-
List<TraceIdExtractor> extractors = ((CompositeTraceIdExtractor) new StackdriverLoggingAutoConfiguration()
71-
.traceIdExtractor(propertires)).getExtractors();
72-
73-
assertEquals(2, extractors.size());
74-
assertTrue(extractors.get(0) instanceof XCloudTraceIdExtractor);
75-
assertTrue(extractors.get(1) instanceof ZipkinTraceIdExtractor);
63+
StackdriverLoggingProperties properties = new StackdriverLoggingProperties();
64+
properties.setTraceIdExtractor(null);
65+
List<TraceIdExtractor> extractors =
66+
((CompositeTraceIdExtractor) new StackdriverLoggingAutoConfiguration()
67+
.traceIdExtractor(properties)).getExtractors();
68+
69+
assertThat(extractors.size()).isEqualTo(2);
70+
assertThat(extractors.get(0)).isInstanceOf(XCloudTraceIdExtractor.class);
71+
assertThat(extractors.get(1)).isInstanceOf(ZipkinTraceIdExtractor.class);
7672
}
7773

7874
@Test
7975
public void testGetTraceIdExtractorsPrioritizeXCloudTrace() {
80-
StackdriverLoggingProperties propertires = new StackdriverLoggingProperties();
81-
propertires.setTraceIdExtractor(TraceIdExtractorType.XCLOUD_ZIPKIN);
82-
List<TraceIdExtractor> extractors = ((CompositeTraceIdExtractor) new StackdriverLoggingAutoConfiguration()
83-
.traceIdExtractor(propertires)).getExtractors();
84-
85-
assertEquals(2, extractors.size());
86-
assertTrue(extractors.get(0) instanceof XCloudTraceIdExtractor);
87-
assertTrue(extractors.get(1) instanceof ZipkinTraceIdExtractor);
76+
StackdriverLoggingProperties properties = new StackdriverLoggingProperties();
77+
properties.setTraceIdExtractor(TraceIdExtractorType.XCLOUD_ZIPKIN);
78+
List<TraceIdExtractor> extractors =
79+
((CompositeTraceIdExtractor) new StackdriverLoggingAutoConfiguration()
80+
.traceIdExtractor(properties)).getExtractors();
81+
82+
assertThat(extractors.size()).isEqualTo(2);
83+
assertThat(extractors.get(0)).isInstanceOf(XCloudTraceIdExtractor.class);
84+
assertThat(extractors.get(1)).isInstanceOf(ZipkinTraceIdExtractor.class);
8885
}
8986

9087
@Test
9188
public void testGetTraceIdExtractorsPrioritizeZipkinTrace() {
92-
StackdriverLoggingProperties propertires = new StackdriverLoggingProperties();
93-
propertires.setTraceIdExtractor(TraceIdExtractorType.ZIPKIN_XCLOUD);
94-
List<TraceIdExtractor> extractors = ((CompositeTraceIdExtractor) new StackdriverLoggingAutoConfiguration()
95-
.traceIdExtractor(propertires)).getExtractors();
96-
97-
assertEquals(2, extractors.size());
98-
assertTrue(extractors.get(0) instanceof ZipkinTraceIdExtractor);
99-
assertTrue(extractors.get(1) instanceof XCloudTraceIdExtractor);
89+
StackdriverLoggingProperties properties = new StackdriverLoggingProperties();
90+
properties.setTraceIdExtractor(TraceIdExtractorType.ZIPKIN_XCLOUD);
91+
List<TraceIdExtractor> extractors =
92+
((CompositeTraceIdExtractor) new StackdriverLoggingAutoConfiguration()
93+
.traceIdExtractor(properties)).getExtractors();
94+
95+
assertThat(extractors.size()).isEqualTo(2);
96+
assertThat(extractors.get(0)).isInstanceOf(ZipkinTraceIdExtractor.class);
97+
assertThat(extractors.get(1)).isInstanceOf(XCloudTraceIdExtractor.class);
10098
}
10199

102100
@Test
103101
public void testGetTraceIdExtractorsOnlyXCloud() {
104-
StackdriverLoggingProperties propertires = new StackdriverLoggingProperties();
105-
propertires.setTraceIdExtractor(TraceIdExtractorType.XCLOUD);
102+
StackdriverLoggingProperties properties = new StackdriverLoggingProperties();
103+
properties.setTraceIdExtractor(TraceIdExtractorType.XCLOUD);
106104

107-
assertTrue(new StackdriverLoggingAutoConfiguration()
108-
.traceIdExtractor(propertires) instanceof XCloudTraceIdExtractor);
105+
assertThat(new StackdriverLoggingAutoConfiguration().traceIdExtractor(properties))
106+
.isInstanceOf(XCloudTraceIdExtractor.class);
109107
}
110108

111109
@Test
112110
public void testGetTraceIdExtractorsOnlyZipkin() {
113-
StackdriverLoggingProperties propertires = new StackdriverLoggingProperties();
114-
propertires.setTraceIdExtractor(TraceIdExtractorType.ZIPKIN);
115-
116-
assertTrue(new StackdriverLoggingAutoConfiguration()
117-
.traceIdExtractor(propertires) instanceof ZipkinTraceIdExtractor);
118-
}
119-
120-
@TestPropertySource(properties = { "spring.cloud.gcp.logging.enabled=false" })
121-
public static class StackdriverLoggingAutoConfigurationDisabledTests
122-
extends StackdriverLoggingAutoConfigurationTests {
123-
124-
@Test
125-
public void test() {
126-
assertThat(countTraceIdInterceptors(), is(0));
127-
}
128-
}
129-
130-
public static class StackdriverLoggingAutoConfigurationDefaultTests
131-
extends StackdriverLoggingAutoConfigurationTests {
111+
StackdriverLoggingProperties properties = new StackdriverLoggingProperties();
112+
properties.setTraceIdExtractor(TraceIdExtractorType.ZIPKIN);
132113

133-
@Test
134-
public void test() {
135-
assertThat(countTraceIdInterceptors(), is(1));
136-
}
114+
assertThat(new StackdriverLoggingAutoConfiguration().traceIdExtractor(properties))
115+
.isInstanceOf(ZipkinTraceIdExtractor.class);
137116
}
138117
}

0 commit comments

Comments
 (0)