Add handler for unknown status codes
See gh-31202
This commit is contained in:
committed by
rstoyanchev
parent
9c5dcad0e5
commit
d54a694f5a
@@ -672,6 +672,40 @@ class WebClientIntegrationTests {
|
||||
});
|
||||
}
|
||||
|
||||
@ParameterizedWebClientTest
|
||||
void retrieve929CustomUnknownStatus(ClientHttpConnector connector) {
|
||||
startServer(connector);
|
||||
|
||||
int errorStatus = 929;
|
||||
assertThat(HttpStatus.resolve(errorStatus)).isNull();
|
||||
String errorMessage = "Something went wrong";
|
||||
prepareResponse(response -> response.setResponseCode(errorStatus)
|
||||
.setHeader("Content-Type", "text/plain").setBody(errorMessage));
|
||||
|
||||
Mono<String> result = this.webClient.get()
|
||||
.uri("/unknownPage")
|
||||
.retrieve()
|
||||
.bodyToMono(String.class);
|
||||
|
||||
StepVerifier.create(result)
|
||||
.expectErrorSatisfies(throwable -> {
|
||||
assertThat(throwable).isInstanceOf(UnknownHttpStatusCodeException.class);
|
||||
UnknownHttpStatusCodeException ex = (UnknownHttpStatusCodeException) throwable;
|
||||
assertThat(ex.getMessage()).isEqualTo(("Unknown status code ["+errorStatus+"]"));
|
||||
assertThat(ex.getStatusCode().value()).isEqualTo(errorStatus);
|
||||
assertThat(ex.getStatusText()).isEmpty();
|
||||
assertThat(ex.getHeaders().getContentType()).isEqualTo(MediaType.TEXT_PLAIN);
|
||||
assertThat(ex.getResponseBodyAsString()).isEqualTo(errorMessage);
|
||||
})
|
||||
.verify(Duration.ofSeconds(3));
|
||||
|
||||
expectRequestCount(1);
|
||||
expectRequest(request -> {
|
||||
assertThat(request.getHeader(HttpHeaders.ACCEPT)).isEqualTo("*/*");
|
||||
assertThat(request.getPath()).isEqualTo("/unknownPage");
|
||||
});
|
||||
}
|
||||
|
||||
@ParameterizedWebClientTest
|
||||
void postPojoAsJson(ClientHttpConnector connector) {
|
||||
startServer(connector);
|
||||
|
||||
Reference in New Issue
Block a user