Skip to content

Commit bb11abe

Browse files
committed
Merge branch '2.5.x'
Closes gh-27923
2 parents ee074d3 + 70b2b33 commit bb11abe

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/elasticsearch/ReactiveElasticsearchRestClientAutoConfigurationTests.java

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616

1717
package org.springframework.boot.autoconfigure.data.elasticsearch;
1818

19+
import java.net.InetSocketAddress;
20+
import java.time.Duration;
21+
import java.util.List;
22+
23+
import org.assertj.core.api.InstanceOfAssertFactories;
1924
import org.junit.jupiter.api.Test;
2025

2126
import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -24,6 +29,9 @@
2429
import org.springframework.context.annotation.Configuration;
2530
import org.springframework.data.elasticsearch.client.ClientConfiguration;
2631
import org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient;
32+
import org.springframework.http.HttpHeaders;
33+
import org.springframework.http.codec.CodecConfigurer.DefaultCodecConfig;
34+
import org.springframework.web.reactive.function.client.WebClient;
2735

2836
import static org.assertj.core.api.Assertions.assertThat;
2937
import static org.mockito.Mockito.mock;
@@ -57,6 +65,86 @@ void configureWhenCustomClientConfig() {
5765
.hasSingleBean(ClientConfiguration.class).hasBean("customClientConfiguration"));
5866
}
5967

68+
@Test
69+
void whenEndpointIsCustomizedThenClientConfigurationHasCustomEndpoint() {
70+
this.contextRunner.withPropertyValues("spring.data.elasticsearch.client.reactive.endpoints=localhost:9876")
71+
.run((context) -> {
72+
List<InetSocketAddress> endpoints = context.getBean(ClientConfiguration.class).getEndpoints();
73+
assertThat(endpoints).hasSize(1);
74+
assertThat(endpoints.get(0).getHostString()).isEqualTo("localhost");
75+
assertThat(endpoints.get(0).getPort()).isEqualTo(9876);
76+
});
77+
}
78+
79+
@Test
80+
void whenMultipleEndpointsAreConfiguredThenClientConfigurationHasMultipleEndpoints() {
81+
this.contextRunner
82+
.withPropertyValues("spring.data.elasticsearch.client.reactive.endpoints=localhost:9876,localhost:8765")
83+
.run((context) -> {
84+
List<InetSocketAddress> endpoints = context.getBean(ClientConfiguration.class).getEndpoints();
85+
assertThat(endpoints).hasSize(2);
86+
assertThat(endpoints.get(0).getHostString()).isEqualTo("localhost");
87+
assertThat(endpoints.get(0).getPort()).isEqualTo(9876);
88+
assertThat(endpoints.get(1).getHostString()).isEqualTo("localhost");
89+
assertThat(endpoints.get(1).getPort()).isEqualTo(8765);
90+
});
91+
}
92+
93+
@Test
94+
void whenConfiguredToUseSslThenClientConfigurationUsesSsl() {
95+
this.contextRunner.withPropertyValues("spring.data.elasticsearch.client.reactive.use-ssl=true")
96+
.run((context) -> assertThat(context.getBean(ClientConfiguration.class).useSsl()).isTrue());
97+
}
98+
99+
@Test
100+
void whenSocketTimeoutIsNotConfiguredThenClientConfigurationUsesDefault() {
101+
this.contextRunner.run((context) -> assertThat(context.getBean(ClientConfiguration.class).getSocketTimeout())
102+
.isEqualTo(Duration.ofSeconds(5)));
103+
}
104+
105+
@Test
106+
void whenConnectionTimeoutIsNotConfiguredThenClientConfigurationUsesDefault() {
107+
this.contextRunner.run((context) -> assertThat(context.getBean(ClientConfiguration.class).getConnectTimeout())
108+
.isEqualTo(Duration.ofSeconds(10)));
109+
}
110+
111+
@Test
112+
void whenSocketTimeoutIsConfiguredThenClientConfigurationHasCustomSocketTimeout() {
113+
this.contextRunner.withPropertyValues("spring.data.elasticsearch.client.reactive.socket-timeout=2s")
114+
.run((context) -> assertThat(context.getBean(ClientConfiguration.class).getSocketTimeout())
115+
.isEqualTo(Duration.ofSeconds(2)));
116+
}
117+
118+
@Test
119+
void whenConnectionTimeoutIsConfiguredThenClientConfigurationHasCustomConnectTimeout() {
120+
this.contextRunner.withPropertyValues("spring.data.elasticsearch.client.reactive.connection-timeout=2s")
121+
.run((context) -> assertThat(context.getBean(ClientConfiguration.class).getConnectTimeout())
122+
.isEqualTo(Duration.ofSeconds(2)));
123+
}
124+
125+
@Test
126+
void whenCredentialsAreConfiguredThenClientConfigurationHasDefaultAuthorizationHeader() {
127+
this.contextRunner
128+
.withPropertyValues("spring.data.elasticsearch.client.reactive.username=alice",
129+
"spring.data.elasticsearch.client.reactive.password=secret")
130+
.run((context) -> assertThat(
131+
context.getBean(ClientConfiguration.class).getDefaultHeaders().get(HttpHeaders.AUTHORIZATION))
132+
.containsExactly("Basic YWxpY2U6c2VjcmV0"));
133+
}
134+
135+
@Test
136+
void whenMaxInMemorySizeIsConfiguredThenUnderlyingWebClientHasCustomMaxInMemorySize() {
137+
this.contextRunner.withPropertyValues("spring.data.elasticsearch.client.reactive.max-in-memory-size=1MB")
138+
.run((context) -> {
139+
WebClient client = context.getBean(ClientConfiguration.class).getWebClientConfigurer()
140+
.apply(WebClient.create());
141+
assertThat(client).extracting("exchangeFunction").extracting("strategies")
142+
.extracting("codecConfigurer").extracting("defaultCodecs")
143+
.asInstanceOf(InstanceOfAssertFactories.type(DefaultCodecConfig.class))
144+
.extracting(DefaultCodecConfig::maxInMemorySize).isEqualTo(1024 * 1024);
145+
});
146+
}
147+
60148
@Configuration(proxyBeanMethods = false)
61149
static class CustomClientConfiguration {
62150

0 commit comments

Comments
 (0)