WebTestClient polish and minor refactoring

This commit is contained in:
Rossen Stoyanchev
2017-02-19 20:00:19 -05:00
parent d924538211
commit 20be40bf64
9 changed files with 420 additions and 468 deletions

View File

@@ -17,7 +17,6 @@
package org.springframework.test.web.reactive.server;
import java.net.URI;
import java.util.concurrent.atomic.AtomicReference;
import org.junit.Test;
import reactor.core.publisher.Mono;
@@ -35,35 +34,32 @@ import org.springframework.web.reactive.function.client.ExchangeFunctions;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
/**
* Unit tests for {@link WiretapConnector}.
* Unit tests for {@link WebTestClientConnector}.
*
* @author Rossen Stoyanchev
*/
public class WiretapConnectorTests {
public class WebTestClientConnectorTests {
@Test
public void listener() throws Exception {
public void captureAndClaim() throws Exception {
ClientHttpRequest request = new MockClientHttpRequest(HttpMethod.GET, "/test");
ClientHttpResponse response = new MockClientHttpResponse(HttpStatus.OK);
ClientHttpConnector connector = (method, uri, fn) -> fn.apply(request).then(Mono.just(response));
AtomicReference<WiretapConnector.Info> infoRef = new AtomicReference<>();
WiretapConnector wiretapConnector = new WiretapConnector(connector);
wiretapConnector.addListener(infoRef::set);
ClientRequest clientRequest = ClientRequest.method(HttpMethod.GET, URI.create("/test"))
.header(WebTestClientConnector.REQUEST_ID_HEADER_NAME, "1").build();
ExchangeFunction exchangeFn = ExchangeFunctions.create(wiretapConnector);
ClientRequest clientRequest = ClientRequest.method(HttpMethod.GET, URI.create("/test")).build();
exchangeFn.exchange(clientRequest).blockMillis(0);
WebTestClientConnector webTestClientConnector = new WebTestClientConnector(connector);
ExchangeFunction function = ExchangeFunctions.create(webTestClientConnector);
function.exchange(clientRequest).blockMillis(0);
WiretapConnector.Info info = infoRef.get();
assertNotNull(info);
assertEquals(HttpMethod.GET, info.getMethod());
assertEquals("/test", info.getUrl().toString());
assertSame(response, info.getResponse());
ClientHttpRequest actual = webTestClientConnector.claimRequest("1");
assertNotNull(actual);
assertEquals(HttpMethod.GET, actual.getMethod());
assertEquals("/test", actual.getURI().toString());
}
}

View File

@@ -66,7 +66,7 @@ public class ResponseEntityTests {
this.client.get().uri("/persons/John")
.exchange()
.expectStatus().isOk()
.expectHeader().contentTypeEquals(MediaType.APPLICATION_JSON_UTF8)
.expectHeader().contentType(MediaType.APPLICATION_JSON_UTF8)
.expectBody(Person.class).value().isEqualTo(new Person("John"));
}
@@ -79,7 +79,7 @@ public class ResponseEntityTests {
this.client.get().uri("/persons")
.exchange()
.expectStatus().isOk()
.expectHeader().contentTypeEquals(MediaType.APPLICATION_JSON_UTF8)
.expectHeader().contentType(MediaType.APPLICATION_JSON_UTF8)
.expectBody(Person.class).list().isEqualTo(expected);
}
@@ -106,7 +106,7 @@ public class ResponseEntityTests {
.accept(TEXT_EVENT_STREAM)
.exchange()
.expectStatus().isOk()
.expectHeader().contentTypeEquals(TEXT_EVENT_STREAM)
.expectHeader().contentType(TEXT_EVENT_STREAM)
.expectBody(Person.class)
.returnResult();