From 06572b010125b19a049fc8e2f71fd78df2dc1ce1 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Mon, 8 Jan 2018 10:10:50 +0100 Subject: [PATCH] Polish --- .../mongo/MongoAutoConfigurationTests.java | 66 +++++-------- .../MongoReactiveAutoConfigurationTests.java | 95 +++++++------------ 2 files changed, 61 insertions(+), 100 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoAutoConfigurationTests.java index d3f84d7208..08a3095d5a 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoAutoConfigurationTests.java @@ -20,12 +20,10 @@ import javax.net.SocketFactory; import com.mongodb.MongoClient; import com.mongodb.MongoClientOptions; -import org.junit.After; import org.junit.Test; -import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -40,58 +38,44 @@ import static org.mockito.Mockito.mock; */ public class MongoAutoConfigurationTests { - private AnnotationConfigApplicationContext context; - - @After - public void close() { - if (this.context != null) { - this.context.close(); - } - } + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class)); @Test public void clientExists() { - this.context = new AnnotationConfigApplicationContext( - PropertyPlaceholderAutoConfiguration.class, MongoAutoConfiguration.class); - assertThat(this.context.getBeanNamesForType(MongoClient.class)).hasSize(1); + this.contextRunner.run((context) -> + assertThat(context).hasSingleBean(MongoClient.class)); } @Test public void optionsAdded() { - this.context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("spring.data.mongodb.host:localhost").applyTo(this.context); - this.context.register(OptionsConfig.class, - PropertyPlaceholderAutoConfiguration.class, MongoAutoConfiguration.class); - this.context.refresh(); - assertThat(this.context.getBean(MongoClient.class).getMongoClientOptions() - .getSocketTimeout()).isEqualTo(300); + this.contextRunner.withPropertyValues("spring.data.mongodb.host:localhost") + .withUserConfiguration(OptionsConfig.class).run((context) -> + assertThat(context.getBean(MongoClient.class).getMongoClientOptions() + .getSocketTimeout()).isEqualTo(300)); } @Test public void optionsAddedButNoHost() { - this.context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("spring.data.mongodb.uri:mongodb://localhost/test") - .applyTo(this.context); - this.context.register(OptionsConfig.class, - PropertyPlaceholderAutoConfiguration.class, MongoAutoConfiguration.class); - this.context.refresh(); - assertThat(this.context.getBean(MongoClient.class).getMongoClientOptions() - .getSocketTimeout()).isEqualTo(300); + this.contextRunner + .withPropertyValues("spring.data.mongodb.uri:mongodb://localhost/test") + .withUserConfiguration(OptionsConfig.class).run((context) -> + assertThat(context.getBean(MongoClient.class).getMongoClientOptions() + .getSocketTimeout()).isEqualTo(300)); } @Test public void optionsSslConfig() { - this.context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("spring.data.mongodb.uri:mongodb://localhost/test") - .applyTo(this.context); - this.context.register(SslOptionsConfig.class, - PropertyPlaceholderAutoConfiguration.class, MongoAutoConfiguration.class); - this.context.refresh(); - MongoClient mongo = this.context.getBean(MongoClient.class); - MongoClientOptions options = mongo.getMongoClientOptions(); - assertThat(options.isSslEnabled()).isTrue(); - assertThat(options.getSocketFactory()) - .isSameAs(this.context.getBean("mySocketFactory")); + this.contextRunner + .withPropertyValues("spring.data.mongodb.uri:mongodb://localhost/test") + .withUserConfiguration(SslOptionsConfig.class).run((context) -> { + assertThat(context).hasSingleBean(MongoClient.class); + MongoClient mongo = context.getBean(MongoClient.class); + MongoClientOptions options = mongo.getMongoClientOptions(); + assertThat(options.isSslEnabled()).isTrue(); + assertThat(options.getSocketFactory()) + .isSameAs(context.getBean("mySocketFactory")); + }); } @Configuration diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoReactiveAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoReactiveAutoConfigurationTests.java index cacf312377..aadf017639 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoReactiveAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoReactiveAutoConfigurationTests.java @@ -24,12 +24,10 @@ import com.mongodb.connection.SocketSettings; import com.mongodb.connection.StreamFactory; import com.mongodb.connection.StreamFactoryFactory; import com.mongodb.reactivestreams.client.MongoClient; -import org.junit.After; import org.junit.Test; -import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; -import org.springframework.boot.test.util.TestPropertyValues; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -42,83 +40,62 @@ import static org.mockito.Mockito.mock; * Tests for {@link MongoReactiveAutoConfiguration}. * * @author Mark Paluch + * @author Stephane Nicoll */ public class MongoReactiveAutoConfigurationTests { - private AnnotationConfigApplicationContext context; - - @After - public void close() { - if (this.context != null) { - this.context.close(); - } - } + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of( + MongoReactiveAutoConfiguration.class)); @Test public void clientExists() { - this.context = new AnnotationConfigApplicationContext( - PropertyPlaceholderAutoConfiguration.class, - MongoReactiveAutoConfiguration.class); - assertThat(this.context.getBeanNamesForType(MongoClient.class).length) - .isEqualTo(1); + this.contextRunner.run((context) -> + assertThat(context).hasSingleBean(MongoClient.class)); } @Test public void optionsAdded() { - this.context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("spring.data.mongodb.host:localhost").applyTo(this.context); - this.context.register(OptionsConfig.class, - PropertyPlaceholderAutoConfiguration.class, - MongoReactiveAutoConfiguration.class); - this.context.refresh(); - assertThat(this.context.getBean(MongoClient.class).getSettings() - .getSocketSettings().getReadTimeout(TimeUnit.SECONDS)).isEqualTo(300); + this.contextRunner.withPropertyValues("spring.data.mongodb.host:localhost") + .withUserConfiguration(OptionsConfig.class).run((context) -> + assertThat(context.getBean(MongoClient.class).getSettings() + .getSocketSettings().getReadTimeout(TimeUnit.SECONDS)) + .isEqualTo(300)); } @Test public void optionsAddedButNoHost() { - this.context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("spring.data.mongodb.uri:mongodb://localhost/test") - .applyTo(this.context); - this.context.register(OptionsConfig.class, - PropertyPlaceholderAutoConfiguration.class, - MongoReactiveAutoConfiguration.class); - this.context.refresh(); - assertThat( - this.context.getBean(MongoClient.class).getSettings().getReadPreference()) - .isEqualTo(ReadPreference.nearest()); + this.contextRunner + .withPropertyValues("spring.data.mongodb.uri:mongodb://localhost/test") + .withUserConfiguration(OptionsConfig.class).run((context) -> + assertThat(context.getBean(MongoClient.class).getSettings() + .getReadPreference()).isEqualTo(ReadPreference.nearest())); } @Test public void optionsSslConfig() { - this.context = new AnnotationConfigApplicationContext(); - TestPropertyValues.of("spring.data.mongodb.uri:mongodb://localhost/test") - .applyTo(this.context); - this.context.register(SslOptionsConfig.class, - PropertyPlaceholderAutoConfiguration.class, - MongoReactiveAutoConfiguration.class); - this.context.refresh(); - MongoClient mongo = this.context.getBean(MongoClient.class); - MongoClientSettings settings = mongo.getSettings(); - assertThat(settings.getApplicationName()).isEqualTo("test-config"); - assertThat(settings.getStreamFactoryFactory()) - .isSameAs(this.context.getBean("myStreamFactoryFactory")); + this.contextRunner + .withPropertyValues("spring.data.mongodb.uri:mongodb://localhost/test") + .withUserConfiguration(SslOptionsConfig.class).run((context) -> { + assertThat(context).hasSingleBean(MongoClient.class); + MongoClient mongo = context.getBean(MongoClient.class); + MongoClientSettings settings = mongo.getSettings(); + assertThat(settings.getApplicationName()).isEqualTo("test-config"); + assertThat(settings.getStreamFactoryFactory()) + .isSameAs(context.getBean("myStreamFactoryFactory")); + }); } @Test public void customizerOverridesAutoConfig() { - this.context = new AnnotationConfigApplicationContext(); - TestPropertyValues - .of("spring.data.mongodb.uri:mongodb://localhost/test?appname=auto-config") - .applyTo(this.context); - this.context.register(PropertyPlaceholderAutoConfiguration.class, - MongoReactiveAutoConfiguration.class, SimpleCustomizerConfig.class); - this.context.refresh(); - assertThat(this.context.getBeanNamesForType(MongoClient.class).length) - .isEqualTo(1); - MongoClient client = this.context.getBean(MongoClient.class); - assertThat(client.getSettings().getApplicationName()) - .isEqualTo("overridden-name"); + this.contextRunner + .withPropertyValues("spring.data.mongodb.uri:mongodb://localhost/test?appname=auto-config") + .withUserConfiguration(SimpleCustomizerConfig.class).run((context) -> { + assertThat(context).hasSingleBean(MongoClient.class); + MongoClient client = context.getBean(MongoClient.class); + assertThat(client.getSettings().getApplicationName()) + .isEqualTo("overridden-name"); + }); } @Configuration