Commit 06572b01 authored by Stephane Nicoll's avatar Stephane Nicoll

Polish

parent f527c4b8
......@@ -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);
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(this.context.getBean("mySocketFactory"));
.isSameAs(context.getBean("mySocketFactory"));
});
}
@Configuration
......
......@@ -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);
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(this.context.getBean("myStreamFactoryFactory"));
.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);
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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment