fixed and improved reactive tests not getting verified
This commit is contained in:
parent
384b89d3ea
commit
f8ca77bc71
@ -1,7 +1,6 @@
|
|||||||
package com.baeldung.web.client;
|
package com.baeldung.web.client;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
@ -42,7 +41,6 @@ import com.baeldung.web.reactive.client.Foo;
|
|||||||
import com.baeldung.web.reactive.client.WebClientApplication;
|
import com.baeldung.web.reactive.client.WebClientApplication;
|
||||||
|
|
||||||
import io.netty.channel.ChannelOption;
|
import io.netty.channel.ChannelOption;
|
||||||
import io.netty.channel.ConnectTimeoutException;
|
|
||||||
import io.netty.handler.timeout.ReadTimeoutHandler;
|
import io.netty.handler.timeout.ReadTimeoutHandler;
|
||||||
import io.netty.handler.timeout.WriteTimeoutHandler;
|
import io.netty.handler.timeout.WriteTimeoutHandler;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
@ -129,40 +127,45 @@ public class WebClientIntegrationTest {
|
|||||||
assertThat(responseHandler.statusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
|
assertThat(responseHandler.statusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
|
||||||
return responseHandler.bodyToMono(ref);
|
return responseHandler.bodyToMono(ref);
|
||||||
});
|
});
|
||||||
|
Mono<String> responsePostOverridenBaseUri = bodySpecOverridenBaseUri.retrieve()
|
||||||
|
.bodyToMono(String.class);
|
||||||
|
|
||||||
// response assertions
|
// response assertions
|
||||||
StepVerifier.create(responsePostString)
|
StepVerifier.create(responsePostString)
|
||||||
.expectNext("processed-bodyValue");
|
.expectNext("processed-bodyValue")
|
||||||
|
.verifyComplete();
|
||||||
StepVerifier.create(responsePostMultipart)
|
StepVerifier.create(responsePostMultipart)
|
||||||
.expectNext("processed-multipartValue1-multipartValue2");
|
.expectNext("processed-multipartValue1-multipartValue2")
|
||||||
|
.verifyComplete();
|
||||||
StepVerifier.create(responsePostWithBody1)
|
StepVerifier.create(responsePostWithBody1)
|
||||||
.expectNext("processed-bodyValue");
|
.expectNext("processed-bodyValue")
|
||||||
|
.verifyComplete();
|
||||||
StepVerifier.create(responsePostWithBody2)
|
StepVerifier.create(responsePostWithBody2)
|
||||||
.expectNext("processed-bodyValue");
|
.expectNext("processed-bodyValue")
|
||||||
|
.verifyComplete();
|
||||||
StepVerifier.create(responsePostWithBody3)
|
StepVerifier.create(responsePostWithBody3)
|
||||||
.expectNext("processed-bodyValue");
|
.expectNext("processed-bodyValue")
|
||||||
|
.verifyComplete();
|
||||||
StepVerifier.create(responseGet)
|
StepVerifier.create(responseGet)
|
||||||
.expectNextMatches(nextMap -> nextMap.get("field")
|
.expectNextMatches(nextMap -> nextMap.get("field")
|
||||||
.equals("value"));
|
.equals("value"))
|
||||||
|
.verifyComplete();
|
||||||
StepVerifier.create(responsePostFoo)
|
StepVerifier.create(responsePostFoo)
|
||||||
.expectNext("processedFoo-fooName");
|
.expectNext("processedFoo-fooName")
|
||||||
|
.verifyComplete();
|
||||||
StepVerifier.create(responsePostWithNoBody)
|
StepVerifier.create(responsePostWithNoBody)
|
||||||
.expectNextMatches(nextMap -> nextMap.get("error")
|
.expectNextMatches(nextMap -> nextMap.get("error")
|
||||||
.equals("Bad Request"));
|
.equals("Bad Request"))
|
||||||
|
.verifyComplete();
|
||||||
// assert sending plain `new Object()` as request body
|
|
||||||
assertThrows(CodecException.class, () -> {
|
|
||||||
headerSpecInserterObject.exchangeToMono(response -> response.bodyToMono(String.class))
|
|
||||||
.block();
|
|
||||||
});
|
|
||||||
// assert sending request overriding base uri
|
// assert sending request overriding base uri
|
||||||
Exception exception = assertThrows(WebClientRequestException.class, () -> {
|
StepVerifier.create(responsePostOverridenBaseUri)
|
||||||
bodySpecOverridenBaseUri.retrieve()
|
.expectErrorMatches(ex -> WebClientRequestException.class.isAssignableFrom(ex.getClass()) && ex.getMessage()
|
||||||
.bodyToMono(String.class)
|
.contains("Connection refused"))
|
||||||
.block();
|
.verify();
|
||||||
});
|
// assert error plain `new Object()` as request body
|
||||||
assertThat(exception.getMessage()).contains("Connection refused");
|
StepVerifier.create(headerSpecInserterObject.exchangeToMono(response -> response.bodyToMono(String.class)))
|
||||||
|
.expectError(CodecException.class)
|
||||||
|
.verify();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -181,12 +184,11 @@ public class WebClientIntegrationTest {
|
|||||||
RequestHeadersSpec<?> headerSpecInserterCompleteSuscriber = timeoutClient.post()
|
RequestHeadersSpec<?> headerSpecInserterCompleteSuscriber = timeoutClient.post()
|
||||||
.uri("/resource")
|
.uri("/resource")
|
||||||
.body(inserterCompleteSuscriber);
|
.body(inserterCompleteSuscriber);
|
||||||
WebClientRequestException exception = assertThrows(WebClientRequestException.class, () -> {
|
|
||||||
headerSpecInserterCompleteSuscriber.retrieve()
|
StepVerifier.create(headerSpecInserterCompleteSuscriber.retrieve()
|
||||||
.bodyToMono(String.class)
|
.bodyToMono(String.class))
|
||||||
.block();
|
.expectTimeout(Duration.ofMillis(2000))
|
||||||
});
|
.verify();
|
||||||
assertThat(exception.getCause()).isInstanceOf(ConnectTimeoutException.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private RequestBodyUriSpec createDefaultPostRequest() {
|
private RequestBodyUriSpec createDefaultPostRequest() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user