Skip to content

Commit 263da15

Browse files
committed
WebTestClient can be configured with connector
Issue: SPR-16168
1 parent 1a246c0 commit 263da15

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

spring-test/src/main/java/org/springframework/test/web/reactive/server/DefaultWebTestClientBuilder.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,20 +52,28 @@ class DefaultWebTestClientBuilder implements WebTestClient.Builder {
5252
private Duration responseTimeout;
5353

5454

55+
/** Connect to server via Reactor Netty */
5556
DefaultWebTestClientBuilder() {
56-
this(null, null, new ReactorClientHttpConnector(), null);
57+
this(new ReactorClientHttpConnector());
5758
}
5859

60+
/** Connect to server through the given connector */
61+
DefaultWebTestClientBuilder(ClientHttpConnector connector) {
62+
this(null, null, connector, null);
63+
}
64+
65+
/** Connect to given mock server with mock request and response */
5966
DefaultWebTestClientBuilder(WebHttpHandlerBuilder httpHandlerBuilder) {
6067
this(null, httpHandlerBuilder, null, null);
6168
}
6269

70+
/** Copy constructor */
6371
DefaultWebTestClientBuilder(DefaultWebTestClientBuilder other) {
6472
this(other.webClientBuilder.clone(), other.httpHandlerBuilder, other.connector,
6573
other.responseTimeout);
6674
}
6775

68-
DefaultWebTestClientBuilder(@Nullable WebClient.Builder webClientBuilder,
76+
private DefaultWebTestClientBuilder(@Nullable WebClient.Builder webClientBuilder,
6977
@Nullable WebHttpHandlerBuilder httpHandlerBuilder, @Nullable ClientHttpConnector connector,
7078
@Nullable Duration responseTimeout) {
7179

spring-test/src/main/java/org/springframework/test/web/reactive/server/WebTestClient.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springframework.http.HttpHeaders;
3434
import org.springframework.http.HttpMethod;
3535
import org.springframework.http.MediaType;
36+
import org.springframework.http.client.reactive.ClientHttpConnector;
3637
import org.springframework.http.client.reactive.ClientHttpRequest;
3738
import org.springframework.http.codec.ServerCodecConfigurer;
3839
import org.springframework.util.MultiValueMap;
@@ -216,7 +217,8 @@ static MockServerSpec<?> bindToWebHandler(WebHandler webHandler) {
216217
}
217218

218219
/**
219-
* This server setup option allows you to connect to a running server.
220+
* This server setup option allows you to connect to a running server via
221+
* Reactor Netty.
220222
* <p><pre class="code">
221223
* WebTestClient client = WebTestClient.bindToServer()
222224
* .baseUrl("http://localhost:8080")
@@ -228,6 +230,20 @@ static Builder bindToServer() {
228230
return new DefaultWebTestClientBuilder();
229231
}
230232

233+
/**
234+
* A variant of {@link #bindToServer()} with a pre-configured connector.
235+
* <p><pre class="code">
236+
* WebTestClient client = WebTestClient.bindToServer()
237+
* .baseUrl("http://localhost:8080")
238+
* .build();
239+
* </pre>
240+
* @return chained API to customize client config
241+
* @since 5.0.2
242+
*/
243+
static Builder bindToServer(ClientHttpConnector connector) {
244+
return new DefaultWebTestClientBuilder(connector);
245+
}
246+
231247

232248
/**
233249
* Base specification for setting up tests without a server.

0 commit comments

Comments
 (0)