Correct package for MockServerWebExchange

Discovered late, but not too late. MockServerWebExchange is now in the
proper package matching to the location of ServerWebExchange.
This commit is contained in:
Rossen Stoyanchev 2017-09-29 17:03:23 -04:00
parent 223e27d53d
commit 48c41049b1
90 changed files with 770 additions and 585 deletions

View File

@ -23,6 +23,7 @@ import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Optional;
import org.reactivestreams.Publisher;
@ -45,10 +46,7 @@ import org.springframework.web.util.UriComponentsBuilder;
/**
* Mock extension of {@link AbstractServerHttpRequest} for use in tests without
* an actual server.
*
* <p>Use the static builder methods in this class to create an instance possibly
* further creating a {@link MockServerWebExchange} via {@link #toExchange()}.
* an actual server. Use the static methods to obtain a builder.
*
* @author Rossen Stoyanchev
* @since 5.0
@ -108,13 +106,6 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
throw new IllegalStateException("This is a mock. No running server, no native request.");
}
/**
* Shortcut to wrap the request with a {@code MockServerWebExchange}.
*/
public MockServerWebExchange toExchange() {
return new MockServerWebExchange(this);
}
// Static builder methods
@ -266,6 +257,13 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
*/
B acceptCharset(Charset... acceptableCharsets);
/**
* Set the list of acceptable {@linkplain Locale locales}, as specified
* by the {@code Accept-Languages} header.
* @param acceptableLocales the acceptable locales
*/
B acceptLanguageAsLocales(Locale... acceptableLocales);
/**
* Set the value of the {@code If-Modified-Since} header.
* <p>The date should be specified as the number of milliseconds since
@ -304,11 +302,6 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
*/
MockServerHttpRequest build();
/**
* Shortcut for:<br>
* {@code build().toExchange()}
*/
MockServerWebExchange toExchange();
}
/**
@ -357,6 +350,7 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
private static final DataBufferFactory BUFFER_FACTORY = new DefaultDataBufferFactory();
private final HttpMethod method;
private final URI url;
@ -371,6 +365,7 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
@Nullable
private InetSocketAddress remoteAddress;
public DefaultBodyBuilder(HttpMethod method, URI url) {
this.method = method;
this.url = url;
@ -426,6 +421,12 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
return this;
}
@Override
public BodyBuilder acceptLanguageAsLocales(Locale... acceptableLocales) {
this.headers.setAcceptLanguageAsLocales(Arrays.asList(acceptableLocales));
return this;
}
@Override
public BodyBuilder contentLength(long contentLength) {
this.headers.setContentLength(contentLength);
@ -467,11 +468,6 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
return body(Flux.empty());
}
@Override
public MockServerWebExchange toExchange() {
return build().toExchange();
}
@Override
public MockServerHttpRequest body(String body) {
return body(Flux.just(BUFFER_FACTORY.wrap(body.getBytes(getCharset()))));

View File

@ -13,32 +13,30 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.mock.http.server.reactive;
package org.springframework.mock.web.server;
import org.springframework.http.codec.ServerCodecConfigurer;
import org.springframework.web.server.ServerWebExchangeDecorator;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.MockServerHttpResponse;
import org.springframework.web.server.adapter.DefaultServerWebExchange;
import org.springframework.web.server.i18n.AcceptHeaderLocaleContextResolver;
import org.springframework.web.server.session.DefaultWebSessionManager;
/**
* {@code ServerWebExchange} for use in tests.
* Variant of {@link DefaultServerWebExchange} for use in tests with
* {@link MockServerHttpRequest} and {@link MockServerHttpResponse}.
*
* <p>Effectively a wrapper around {@link DefaultServerWebExchange} plugged in
* with {@link MockServerHttpRequest} and {@link MockServerHttpResponse}.
*
* <p>Typically used via {@link MockServerHttpRequest#toExchange()}.
* <p>See static factory methods to create an instance.
*
* @author Rossen Stoyanchev
* @since 5.0
*/
public class MockServerWebExchange extends ServerWebExchangeDecorator {
public final class MockServerWebExchange extends DefaultServerWebExchange {
public MockServerWebExchange(MockServerHttpRequest request) {
super(new DefaultServerWebExchange(
request, new MockServerHttpResponse(), new DefaultWebSessionManager(),
ServerCodecConfigurer.create(), new AcceptHeaderLocaleContextResolver()));
private MockServerWebExchange(MockServerHttpRequest request) {
super(request, new MockServerHttpResponse(), new DefaultWebSessionManager(),
ServerCodecConfigurer.create(), new AcceptHeaderLocaleContextResolver());
}
@ -47,4 +45,14 @@ public class MockServerWebExchange extends ServerWebExchangeDecorator {
return (MockServerHttpResponse) super.getResponse();
}
/**
* Create a {@link MockServerWebExchange} from the given request.
* @param request the request to use.
* @return the exchange
*/
public static MockServerWebExchange from(MockServerHttpRequest request) {
return new MockServerWebExchange(request);
}
}

View File

@ -0,0 +1,9 @@
/**
* Mock implementations of Spring's reactive server web API abtsractions.
*/
@NonNullApi
@NonNullFields
package org.springframework.mock.web.server;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -96,7 +96,8 @@ public class DefaultServerWebExchange implements ServerWebExchange {
public DefaultServerWebExchange(ServerHttpRequest request, ServerHttpResponse response,
WebSessionManager sessionManager, ServerCodecConfigurer codecConfigurer, LocaleContextResolver localeContextResolver) {
WebSessionManager sessionManager, ServerCodecConfigurer codecConfigurer,
LocaleContextResolver localeContextResolver) {
Assert.notNull(request, "'request' is required");
Assert.notNull(response, "'response' is required");

View File

@ -38,6 +38,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.HttpRange;
import org.springframework.http.MediaType;
import org.springframework.http.server.reactive.AbstractServerHttpRequest;
import org.springframework.lang.Nullable;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MimeType;
import org.springframework.util.MultiValueMap;
@ -45,10 +46,7 @@ import org.springframework.web.util.UriComponentsBuilder;
/**
* Mock extension of {@link AbstractServerHttpRequest} for use in tests without
* an actual server.
*
* <p>Use the static builder methods in this class to create an instance possibly
* further creating a {@link MockServerWebExchange} via {@link #toExchange()}.
* an actual server. Use the static methods to obtain a builder.
*
* @author Rossen Stoyanchev
* @since 5.0
@ -59,15 +57,15 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
private final MultiValueMap<String, HttpCookie> cookies;
@Nullable
private final InetSocketAddress remoteAddress;
private final Flux<DataBuffer> body;
private MockServerHttpRequest(HttpMethod httpMethod, URI uri, String contextPath,
private MockServerHttpRequest(HttpMethod httpMethod, URI uri, @Nullable String contextPath,
HttpHeaders headers, MultiValueMap<String, HttpCookie> cookies,
InetSocketAddress remoteAddress,
Publisher<? extends DataBuffer> body) {
@Nullable InetSocketAddress remoteAddress, Publisher<? extends DataBuffer> body) {
super(uri, contextPath, headers);
this.httpMethod = httpMethod;
@ -88,6 +86,7 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
}
@Override
@Nullable
public InetSocketAddress getRemoteAddress() {
return this.remoteAddress;
}
@ -108,14 +107,6 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
}
/**
* Shortcut to wrap the request with a {@code MockServerWebExchange}.
*/
public MockServerWebExchange toExchange() {
return new MockServerWebExchange(this);
}
// Static builder methods
/**
@ -311,11 +302,6 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
*/
MockServerHttpRequest build();
/**
* Shortcut for:<br>
* {@code build().toExchange()}
*/
MockServerWebExchange toExchange();
}
/**
@ -369,12 +355,14 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
private final URI url;
@Nullable
private String contextPath;
private final HttpHeaders headers = new HttpHeaders();
private final MultiValueMap<String, HttpCookie> cookies = new LinkedMultiValueMap<>();
@Nullable
private InetSocketAddress remoteAddress;
@ -480,11 +468,6 @@ public class MockServerHttpRequest extends AbstractServerHttpRequest {
return body(Flux.empty());
}
@Override
public MockServerWebExchange toExchange() {
return build().toExchange();
}
@Override
public MockServerHttpRequest body(String body) {
return body(Flux.just(BUFFER_FACTORY.wrap(body.getBytes(getCharset()))));

View File

@ -0,0 +1,9 @@
// For @NonNull annotations on implementation classes
@NonNullApi
@NonNullFields
package org.springframework.mock.http.server.reactive.test;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -13,32 +13,30 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.mock.http.server.reactive.test;
package org.springframework.mock.web.test.server;
import org.springframework.http.codec.ServerCodecConfigurer;
import org.springframework.web.server.ServerWebExchangeDecorator;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerHttpResponse;
import org.springframework.web.server.adapter.DefaultServerWebExchange;
import org.springframework.web.server.i18n.AcceptHeaderLocaleContextResolver;
import org.springframework.web.server.session.DefaultWebSessionManager;
/**
* {@code ServerWebExchange} for use in tests.
* Variant of {@link DefaultServerWebExchange} for use in tests with
* {@link MockServerHttpRequest} and {@link MockServerHttpResponse}.
*
* <p>Effectively a wrapper around {@link DefaultServerWebExchange} plugged in
* with {@link MockServerHttpRequest} and {@link MockServerHttpResponse}.
*
* <p>Typically used via {@link MockServerHttpRequest#toExchange()}.
* <p>See static factory methods to create an instance.
*
* @author Rossen Stoyanchev
* @since 5.0
*/
public class MockServerWebExchange extends ServerWebExchangeDecorator {
public final class MockServerWebExchange extends DefaultServerWebExchange {
public MockServerWebExchange(MockServerHttpRequest request) {
super(new DefaultServerWebExchange(
request, new MockServerHttpResponse(), new DefaultWebSessionManager(),
ServerCodecConfigurer.create(), new AcceptHeaderLocaleContextResolver()));
private MockServerWebExchange(MockServerHttpRequest request) {
super(request, new MockServerHttpResponse(), new DefaultWebSessionManager(),
ServerCodecConfigurer.create(), new AcceptHeaderLocaleContextResolver());
}
@ -47,4 +45,14 @@ public class MockServerWebExchange extends ServerWebExchangeDecorator {
return (MockServerHttpResponse) super.getResponse();
}
/**
* Create a {@link MockServerWebExchange} from the given request.
* @param request the request to use.
* @return the exchange
*/
public static MockServerWebExchange from(MockServerHttpRequest request) {
return new MockServerWebExchange(request);
}
}

View File

@ -0,0 +1,9 @@
// For @NonNull annotations on implementation classes
@NonNullApi
@NonNullFields
package org.springframework.mock.web.test.server;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -34,6 +34,7 @@ import org.springframework.http.codec.multipart.FilePart;
import org.springframework.http.codec.multipart.MultipartHttpMessageWriter;
import org.springframework.mock.http.client.reactive.test.MockClientHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.tests.sample.beans.ITestBean;
import org.springframework.tests.sample.beans.TestBean;
import org.springframework.util.LinkedMultiValueMap;
@ -181,7 +182,7 @@ public class WebExchangeDataBinderTests {
public void testBindingWithQueryParams() throws Exception {
String url = "/path?spouse=someValue&spouse.name=test";
MockServerHttpRequest request = MockServerHttpRequest.post(url).build();
this.binder.bind(request.toExchange()).block(Duration.ofSeconds(5));
this.binder.bind(MockServerWebExchange.from(request)).block(Duration.ofSeconds(5));
assertNotNull(this.testBean.getSpouse());
assertEquals("test", this.testBean.getSpouse().getName());
@ -223,11 +224,11 @@ public class WebExchangeDataBinderTests {
forClassWithGenerics(MultiValueMap.class, String.class, String.class),
MediaType.APPLICATION_FORM_URLENCODED, request, Collections.emptyMap()).block();
return MockServerHttpRequest
return MockServerWebExchange.from(
MockServerHttpRequest
.post("/")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.body(request.getBody())
.toExchange();
.body(request.getBody()));
}
private ServerWebExchange exchangeMultipart(MultiValueMap<String, ?> multipartData) {
@ -237,11 +238,10 @@ public class WebExchangeDataBinderTests {
new MultipartHttpMessageWriter().write(Mono.just(multipartData), forClass(MultiValueMap.class),
MediaType.MULTIPART_FORM_DATA, request, Collections.emptyMap()).block();
return MockServerHttpRequest
return MockServerWebExchange.from(MockServerHttpRequest
.post("/")
.contentType(request.getHeaders().getContentType())
.body(request.getBody())
.toExchange();
.body(request.getBody()));
}

View File

@ -1,24 +1,46 @@
/*
* Copyright 2002-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.web.cors.reactive;
import java.io.IOException;
import java.util.Arrays;
import javax.servlet.ServletException;
import org.junit.Before;
import org.junit.Test;
import reactor.core.publisher.Mono;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.server.WebFilterChain;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.springframework.http.HttpHeaders.*;
import static org.springframework.http.HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS;
import static org.springframework.http.HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN;
import static org.springframework.http.HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS;
import static org.springframework.http.HttpHeaders.ACCESS_CONTROL_MAX_AGE;
import static org.springframework.http.HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS;
import static org.springframework.http.HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD;
import static org.springframework.http.HttpHeaders.HOST;
import static org.springframework.http.HttpHeaders.ORIGIN;
/**
* Unit tests for {@link CorsWebFilter}.
@ -50,19 +72,19 @@ public class CorsWebFilterTests {
.header(ORIGIN, "http://domain2.com")
.header("header2", "foo")
.build();
MockServerWebExchange exchange = new MockServerWebExchange(request);
WebFilterChain filterChain = (filterExchange) -> {
try {
assertEquals("http://domain2.com", filterExchange.getResponse().getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN));
assertEquals("header3, header4", filterExchange.getResponse().getHeaders().getFirst(ACCESS_CONTROL_EXPOSE_HEADERS));
HttpHeaders headers = filterExchange.getResponse().getHeaders();
assertEquals("http://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN));
assertEquals("header3, header4", headers.getFirst(ACCESS_CONTROL_EXPOSE_HEADERS));
} catch (AssertionError ex) {
return Mono.error(ex);
}
return Mono.empty();
};
filter.filter(exchange, filterChain);
filter.filter(MockServerWebExchange.from(request), filterChain);
}
@Test
@ -74,9 +96,10 @@ public class CorsWebFilterTests {
.header(ORIGIN, "http://domain2.com")
.header("header2", "foo")
.build();
MockServerWebExchange exchange = new MockServerWebExchange(request);
MockServerWebExchange exchange = MockServerWebExchange.from(request);
WebFilterChain filterChain = (filterExchange) -> Mono.error(new AssertionError("Invalid requests must not be forwarded to the filter chain"));
WebFilterChain filterChain = (filterExchange) -> Mono.error(
new AssertionError("Invalid requests must not be forwarded to the filter chain"));
filter.filter(exchange, filterChain);
assertNull(exchange.getResponse().getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN));
@ -92,15 +115,17 @@ public class CorsWebFilterTests {
.header(ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.GET.name())
.header(ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2")
.build();
MockServerWebExchange exchange = new MockServerWebExchange(request);
MockServerWebExchange exchange = MockServerWebExchange.from(request);
WebFilterChain filterChain = (filterExchange) -> Mono.error(new AssertionError("Preflight requests must not be forwarded to the filter chain"));
WebFilterChain filterChain = (filterExchange) -> Mono.error(
new AssertionError("Preflight requests must not be forwarded to the filter chain"));
filter.filter(exchange, filterChain);
assertEquals("http://domain2.com", exchange.getResponse().getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN));
assertEquals("header1, header2", exchange.getResponse().getHeaders().getFirst(ACCESS_CONTROL_ALLOW_HEADERS));
assertEquals("header3, header4", exchange.getResponse().getHeaders().getFirst(ACCESS_CONTROL_EXPOSE_HEADERS));
assertEquals(123L, Long.parseLong(exchange.getResponse().getHeaders().getFirst(ACCESS_CONTROL_MAX_AGE)));
HttpHeaders headers = exchange.getResponse().getHeaders();
assertEquals("http://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN));
assertEquals("header1, header2", headers.getFirst(ACCESS_CONTROL_ALLOW_HEADERS));
assertEquals("header3, header4", headers.getFirst(ACCESS_CONTROL_EXPOSE_HEADERS));
assertEquals(123L, Long.parseLong(headers.getFirst(ACCESS_CONTROL_MAX_AGE)));
}
@Test
@ -113,9 +138,11 @@ public class CorsWebFilterTests {
.header(ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.DELETE.name())
.header(ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2")
.build();
MockServerWebExchange exchange = new MockServerWebExchange(request);
MockServerWebExchange exchange = MockServerWebExchange.from(request);
WebFilterChain filterChain = (filterExchange) -> Mono.error(
new AssertionError("Preflight requests must not be forwarded to the filter chain"));
WebFilterChain filterChain = (filterExchange) -> Mono.error(new AssertionError("Preflight requests must not be forwarded to the filter chain"));
filter.filter(exchange, filterChain);
assertNull(exchange.getResponse().getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN));

View File

@ -24,6 +24,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.server.ServerWebExchange;
@ -151,7 +152,8 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestAllOriginsAllowed() throws Exception {
ServerWebExchange exchange = preFlightRequest().header(ACCESS_CONTROL_REQUEST_METHOD, "GET").toExchange();
MockServerHttpRequest request = preFlightRequest().header(ACCESS_CONTROL_REQUEST_METHOD, "GET").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
this.conf.addAllowedOrigin("*");
this.processor.process(this.conf, exchange);
@ -161,7 +163,8 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestWrongAllowedMethod() throws Exception {
ServerWebExchange exchange = preFlightRequest().header(ACCESS_CONTROL_REQUEST_METHOD, "DELETE").toExchange();
MockServerHttpRequest request = preFlightRequest().header(ACCESS_CONTROL_REQUEST_METHOD, "DELETE").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
this.conf.addAllowedOrigin("*");
this.processor.process(this.conf, exchange);
@ -170,7 +173,8 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestMatchedAllowedMethod() throws Exception {
ServerWebExchange exchange = preFlightRequest().header(ACCESS_CONTROL_REQUEST_METHOD, "GET").toExchange();
MockServerHttpRequest request = preFlightRequest().header(ACCESS_CONTROL_REQUEST_METHOD, "GET").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
this.conf.addAllowedOrigin("*");
this.processor.process(this.conf, exchange);
@ -181,7 +185,7 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestTestWithOriginButWithoutOtherHeaders() throws Exception {
ServerWebExchange exchange = preFlightRequest().toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(preFlightRequest().build());
this.processor.process(this.conf, exchange);
ServerHttpResponse response = exchange.getResponse();
@ -191,7 +195,8 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestWithoutRequestMethod() throws Exception {
ServerWebExchange exchange = preFlightRequest().header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1").toExchange();
MockServerHttpRequest request = preFlightRequest().header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
this.processor.process(this.conf, exchange);
ServerHttpResponse response = exchange.getResponse();
@ -201,10 +206,10 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestWithRequestAndMethodHeaderButNoConfig() throws Exception {
ServerWebExchange exchange = preFlightRequest()
ServerWebExchange exchange = MockServerWebExchange.from(preFlightRequest()
.header(ACCESS_CONTROL_REQUEST_METHOD, "GET")
.header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1")
.toExchange();
.build());
this.processor.process(this.conf, exchange);
@ -215,10 +220,10 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestValidRequestAndConfig() throws Exception {
ServerWebExchange exchange = preFlightRequest()
ServerWebExchange exchange = MockServerWebExchange.from(preFlightRequest()
.header(ACCESS_CONTROL_REQUEST_METHOD, "GET")
.header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1")
.toExchange();
.build());
this.conf.addAllowedOrigin("*");
this.conf.addAllowedMethod("GET");
@ -239,10 +244,10 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestCredentials() throws Exception {
ServerWebExchange exchange = preFlightRequest()
ServerWebExchange exchange = MockServerWebExchange.from(preFlightRequest()
.header(ACCESS_CONTROL_REQUEST_METHOD, "GET")
.header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1")
.toExchange();
.build());
this.conf.addAllowedOrigin("http://domain1.com");
this.conf.addAllowedOrigin("http://domain2.com");
@ -262,10 +267,10 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestCredentialsWithOriginWildcard() throws Exception {
ServerWebExchange exchange = preFlightRequest()
ServerWebExchange exchange = MockServerWebExchange.from(preFlightRequest()
.header(ACCESS_CONTROL_REQUEST_METHOD, "GET")
.header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1")
.toExchange();
.build());
this.conf.addAllowedOrigin("http://domain1.com");
this.conf.addAllowedOrigin("*");
@ -283,10 +288,10 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestAllowedHeaders() throws Exception {
ServerWebExchange exchange = preFlightRequest()
ServerWebExchange exchange = MockServerWebExchange.from(preFlightRequest()
.header(ACCESS_CONTROL_REQUEST_METHOD, "GET")
.header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1, Header2")
.toExchange();
.build());
this.conf.addAllowedHeader("Header1");
this.conf.addAllowedHeader("Header2");
@ -306,10 +311,10 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestAllowsAllHeaders() throws Exception {
ServerWebExchange exchange = preFlightRequest()
ServerWebExchange exchange = MockServerWebExchange.from(preFlightRequest()
.header(ACCESS_CONTROL_REQUEST_METHOD, "GET")
.header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1, Header2")
.toExchange();
.build());
this.conf.addAllowedHeader("*");
this.conf.addAllowedOrigin("http://domain2.com");
@ -327,10 +332,10 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestWithEmptyHeaders() throws Exception {
ServerWebExchange exchange = preFlightRequest()
ServerWebExchange exchange = MockServerWebExchange.from(preFlightRequest()
.header(ACCESS_CONTROL_REQUEST_METHOD, "GET")
.header(ACCESS_CONTROL_REQUEST_HEADERS, "")
.toExchange();
.build());
this.conf.addAllowedHeader("*");
this.conf.addAllowedOrigin("http://domain2.com");
@ -345,7 +350,8 @@ public class DefaultCorsProcessorTests {
@Test
public void preflightRequestWithNullConfig() throws Exception {
ServerWebExchange exchange = preFlightRequest().header(ACCESS_CONTROL_REQUEST_METHOD, "GET").toExchange();
MockServerHttpRequest request = preFlightRequest().header(ACCESS_CONTROL_REQUEST_METHOD, "GET").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
this.conf.addAllowedOrigin("*");
this.processor.process(null, exchange);
@ -356,7 +362,7 @@ public class DefaultCorsProcessorTests {
private ServerWebExchange actualRequest() {
return corsRequest(HttpMethod.GET).toExchange();
return MockServerWebExchange.from(corsRequest(HttpMethod.GET).build());
}
private MockServerHttpRequest.BaseBuilder<?> preFlightRequest() {

View File

@ -19,8 +19,8 @@ package org.springframework.web.cors.reactive;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.util.pattern.PathPatternParser;
import static org.junit.Assert.assertEquals;
@ -40,7 +40,7 @@ public class UrlBasedCorsConfigurationSourceTests {
@Test
public void empty() {
ServerWebExchange exchange = MockServerHttpRequest.get("/bar/test.html").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/bar/test.html").build());
assertNull(this.configSource.getCorsConfiguration(exchange));
}
@ -49,10 +49,10 @@ public class UrlBasedCorsConfigurationSourceTests {
CorsConfiguration config = new CorsConfiguration();
this.configSource.registerCorsConfiguration("/bar/**", config);
ServerWebExchange exchange = MockServerHttpRequest.get("/foo/test.html").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/foo/test.html").build());
assertNull(this.configSource.getCorsConfiguration(exchange));
exchange = MockServerHttpRequest.get("/bar/test.html").toExchange();
exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/bar/test.html").build());
assertEquals(config, this.configSource.getCorsConfiguration(exchange));
}

View File

@ -25,7 +25,7 @@ import reactor.core.publisher.Mono;
import org.springframework.http.HttpHeaders;
import org.springframework.lang.Nullable;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilterChain;
@ -43,13 +43,13 @@ public class ForwardedHeaderFilterTests {
@Test
public void removeOnly() {
MockServerWebExchange exchange = MockServerHttpRequest.get("/")
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/")
.header("Forwarded", "for=192.0.2.60;proto=http;by=203.0.113.43")
.header("X-Forwarded-Host", "example.com")
.header("X-Forwarded-Port", "8080")
.header("X-Forwarded-Proto", "http")
.header("X-Forwarded-Prefix", "prefix")
.toExchange();
.build());
this.filter.setRemoveOnly(true);
this.filter.filter(exchange, this.filterChain).block(Duration.ZERO);
@ -65,11 +65,11 @@ public class ForwardedHeaderFilterTests {
@Test
public void xForwardedRequest() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("http://example.com/path")
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://example.com/path")
.header("X-Forwarded-Host", "84.198.58.199")
.header("X-Forwarded-Port", "443")
.header("X-Forwarded-Proto", "https")
.toExchange();
.build());
this.filter.filter(exchange, this.filterChain).block(Duration.ZERO);
@ -79,10 +79,10 @@ public class ForwardedHeaderFilterTests {
@Test
public void forwardedRequest() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("http://example.com/path")
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://example.com/path")
.header("Forwarded", "host=84.198.58.199;proto=https")
.toExchange();
.build());
this.filter.filter(exchange, this.filterChain).block(Duration.ZERO);
@ -92,9 +92,9 @@ public class ForwardedHeaderFilterTests {
@Test
public void requestUriWithForwardedPrefix() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("http://example.com/path")
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://example.com/path")
.header("X-Forwarded-Prefix", "/prefix")
.toExchange();
.build());
this.filter.filter(exchange, this.filterChain).block(Duration.ZERO);
@ -104,9 +104,9 @@ public class ForwardedHeaderFilterTests {
@Test
public void requestUriWithForwardedPrefixTrailingSlash() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("http://example.com/path")
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://example.com/path")
.header("X-Forwarded-Prefix", "/prefix/")
.toExchange();
.build());
this.filter.filter(exchange, this.filterChain).block(Duration.ZERO);

View File

@ -27,7 +27,7 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilterChain;
@ -84,10 +84,10 @@ public class HiddenHttpMethodFilterTests {
@Test
public void filterWithHttpPut() {
ServerWebExchange exchange = MockServerHttpRequest.put("/")
ServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.put("/")
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE)
.body("_method=DELETE")
.toExchange();
.body("_method=DELETE"));
this.filter.filter(exchange, this.filterChain).block(Duration.ZERO);
assertEquals(HttpMethod.PUT, this.filterChain.getHttpMethod());
@ -96,10 +96,10 @@ public class HiddenHttpMethodFilterTests {
private Mono<Void> postForm(String body) {
MockServerWebExchange exchange = MockServerHttpRequest.post("/")
MockServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.post("/")
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE)
.body(body)
.toExchange();
.body(body));
return this.filter.filter(exchange, this.filterChain);
}

View File

@ -34,7 +34,7 @@ import org.junit.runners.Parameterized.Parameters;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@ -79,7 +79,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
@Test
public void checkNotModifiedNon2xxStatus() {
MockServerWebExchange exchange = get("/").ifModifiedSince(this.currentDate.toEpochMilli()).toExchange();
MockServerHttpRequest request = get("/").ifModifiedSince(this.currentDate.toEpochMilli()).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
exchange.getResponse().setStatusCode(HttpStatus.NOT_MODIFIED);
assertFalse(exchange.checkNotModified(this.currentDate));
@ -90,7 +91,7 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
@Test // SPR-14559
public void checkNotModifiedInvalidIfNoneMatchHeader() {
String eTag = "\"etagvalue\"";
MockServerWebExchange exchange = get("/").ifNoneMatch("missingquotes").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").ifNoneMatch("missingquotes").build());
assertFalse(exchange.checkNotModified(eTag));
assertNull(exchange.getResponse().getStatusCode());
assertEquals(eTag, exchange.getResponse().getHeaders().getETag());
@ -98,7 +99,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
@Test
public void checkNotModifiedHeaderAlreadySet() {
MockServerWebExchange exchange = get("/").ifModifiedSince(currentDate.toEpochMilli()).toExchange();
MockServerHttpRequest request = get("/").ifModifiedSince(currentDate.toEpochMilli()).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
exchange.getResponse().getHeaders().add("Last-Modified", CURRENT_TIME);
assertTrue(exchange.checkNotModified(currentDate));
@ -109,7 +111,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
@Test
public void checkNotModifiedTimestamp() throws Exception {
MockServerWebExchange exchange = get("/").ifModifiedSince(currentDate.toEpochMilli()).toExchange();
MockServerHttpRequest request = get("/").ifModifiedSince(currentDate.toEpochMilli()).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertTrue(exchange.checkNotModified(currentDate));
@ -120,7 +123,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
@Test
public void checkModifiedTimestamp() {
Instant oneMinuteAgo = currentDate.minusSeconds(60);
MockServerWebExchange exchange = get("/").ifModifiedSince(oneMinuteAgo.toEpochMilli()).toExchange();
MockServerHttpRequest request = get("/").ifModifiedSince(oneMinuteAgo.toEpochMilli()).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertFalse(exchange.checkNotModified(currentDate));
@ -131,7 +135,7 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
@Test
public void checkNotModifiedETag() {
String eTag = "\"Foo\"";
MockServerWebExchange exchange = get("/").ifNoneMatch(eTag).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").ifNoneMatch(eTag).build());
assertTrue(exchange.checkNotModified(eTag));
@ -142,7 +146,7 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
@Test
public void checkNotModifiedETagWithSeparatorChars() {
String eTag = "\"Foo, Bar\"";
MockServerWebExchange exchange = get("/").ifNoneMatch(eTag).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").ifNoneMatch(eTag).build());
assertTrue(exchange.checkNotModified(eTag));
@ -155,7 +159,7 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkModifiedETag() {
String currentETag = "\"Foo\"";
String oldEtag = "Bar";
MockServerWebExchange exchange = get("/").ifNoneMatch(oldEtag).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").ifNoneMatch(oldEtag).build());
assertFalse(exchange.checkNotModified(currentETag));
@ -167,7 +171,7 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkNotModifiedUnpaddedETag() {
String eTag = "Foo";
String paddedEtag = String.format("\"%s\"", eTag);
MockServerWebExchange exchange = get("/").ifNoneMatch(paddedEtag).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").ifNoneMatch(paddedEtag).build());
assertTrue(exchange.checkNotModified(eTag));
@ -179,7 +183,7 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkModifiedUnpaddedETag() {
String currentETag = "Foo";
String oldEtag = "Bar";
MockServerWebExchange exchange = get("/").ifNoneMatch(oldEtag).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").ifNoneMatch(oldEtag).build());
assertFalse(exchange.checkNotModified(currentETag));
@ -190,7 +194,7 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
@Test
public void checkNotModifiedWildcardIsIgnored() {
String eTag = "\"Foo\"";
MockServerWebExchange exchange = get("/").ifNoneMatch("*").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").ifNoneMatch("*").build());
assertFalse(exchange.checkNotModified(eTag));
assertNull(exchange.getResponse().getStatusCode());
@ -201,7 +205,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkNotModifiedETagAndTimestamp() {
String eTag = "\"Foo\"";
long time = currentDate.toEpochMilli();
MockServerWebExchange exchange = get("/").ifNoneMatch(eTag).ifModifiedSince(time).toExchange();
MockServerHttpRequest request = get("/").ifNoneMatch(eTag).ifModifiedSince(time).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertTrue(exchange.checkNotModified(eTag, currentDate));
@ -215,10 +220,10 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkNotModifiedETagAndModifiedTimestamp() {
String eTag = "\"Foo\"";
Instant oneMinuteAgo = currentDate.minusSeconds(60);
MockServerWebExchange exchange = get("/")
MockServerWebExchange exchange = MockServerWebExchange.from(get("/")
.ifNoneMatch(eTag)
.ifModifiedSince(oneMinuteAgo.toEpochMilli())
.toExchange();
.build());
assertTrue(exchange.checkNotModified(eTag, currentDate));
@ -232,7 +237,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
String currentETag = "\"Foo\"";
String oldEtag = "\"Bar\"";
long time = currentDate.toEpochMilli();
MockServerWebExchange exchange = get("/").ifNoneMatch(oldEtag).ifModifiedSince(time).toExchange();
MockServerHttpRequest request = get("/").ifNoneMatch(oldEtag).ifModifiedSince(time).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertFalse(exchange.checkNotModified(currentETag, currentDate));
@ -245,7 +251,7 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkNotModifiedETagWeakStrong() {
String eTag = "\"Foo\"";
String weakEtag = String.format("W/%s", eTag);
MockServerWebExchange exchange = get("/").ifNoneMatch(eTag).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").ifNoneMatch(eTag).build());
assertTrue(exchange.checkNotModified(weakEtag));
@ -256,7 +262,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
@Test
public void checkNotModifiedETagStrongWeak() {
String eTag = "\"Foo\"";
MockServerWebExchange exchange = get("/").ifNoneMatch(String.format("W/%s", eTag)).toExchange();
MockServerHttpRequest request = get("/").ifNoneMatch(String.format("W/%s", eTag)).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertTrue(exchange.checkNotModified(eTag));
@ -268,7 +275,7 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkNotModifiedMultipleETags() {
String eTag = "\"Bar\"";
String multipleETags = String.format("\"Foo\", %s", eTag);
MockServerWebExchange exchange = get("/").ifNoneMatch(multipleETags).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").ifNoneMatch(multipleETags).build());
assertTrue(exchange.checkNotModified(eTag));
@ -280,7 +287,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkNotModifiedTimestampWithLengthPart() throws Exception {
long epochTime = dateFormat.parse(CURRENT_TIME).getTime();
String header = "Wed, 09 Apr 2014 09:57:42 GMT; length=13774";
MockServerWebExchange exchange = get("/").header("If-Modified-Since", header).toExchange();
MockServerHttpRequest request = get("/").header("If-Modified-Since", header).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertTrue(exchange.checkNotModified(Instant.ofEpochMilli(epochTime)));
@ -292,7 +300,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkModifiedTimestampWithLengthPart() throws Exception {
long epochTime = dateFormat.parse(CURRENT_TIME).getTime();
String header = "Tue, 08 Apr 2014 09:57:42 GMT; length=13774";
MockServerWebExchange exchange = get("/").header("If-Modified-Since", header).toExchange();
MockServerHttpRequest request = get("/").header("If-Modified-Since", header).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertFalse(exchange.checkNotModified(Instant.ofEpochMilli(epochTime)));
@ -304,7 +313,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkNotModifiedTimestampConditionalPut() throws Exception {
Instant oneMinuteAgo = currentDate.minusSeconds(60);
long millis = currentDate.toEpochMilli();
MockServerWebExchange exchange = MockServerHttpRequest.put("/").ifUnmodifiedSince(millis).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.put("/").ifUnmodifiedSince(millis).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertFalse(exchange.checkNotModified(oneMinuteAgo));
assertNull(exchange.getResponse().getStatusCode());
@ -315,7 +325,8 @@ public class DefaultServerWebExchangeCheckNotModifiedTests {
public void checkNotModifiedTimestampConditionalPutConflict() throws Exception {
Instant oneMinuteAgo = currentDate.minusSeconds(60);
long millis = oneMinuteAgo.toEpochMilli();
MockServerWebExchange exchange = MockServerHttpRequest.put("/").ifUnmodifiedSince(millis).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.put("/").ifUnmodifiedSince(millis).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertTrue(exchange.checkNotModified(currentDate));
assertEquals(412, exchange.getResponse().getStatusCode().value());

View File

@ -20,7 +20,7 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import static org.junit.Assert.*;
@ -32,10 +32,11 @@ public class ServerWebExchangeTests {
private ServerWebExchange exchange;
@Before
public void createExchange() {
MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com").build();
this.exchange = new MockServerWebExchange(request);
this.exchange = MockServerWebExchange.from(request);
}
@Test

View File

@ -24,6 +24,7 @@ import reactor.test.StepVerifier;
import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebExceptionHandler;
import org.springframework.web.server.WebHandler;
@ -38,10 +39,11 @@ import static org.junit.Assert.assertNull;
*/
public class ExceptionHandlingWebHandlerTests {
private final ServerWebExchange exchange = MockServerHttpRequest.get("http://localhost:8080").toExchange();
private final WebHandler targetHandler = new StubWebHandler(new IllegalStateException("boo"));
private final ServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("http://localhost:8080").build());
@Test
public void handleErrorSignal() throws Exception {

View File

@ -28,6 +28,7 @@ import reactor.core.publisher.Mono;
import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerHttpResponse;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebExceptionHandler;
import org.springframework.web.server.WebFilter;
@ -57,7 +58,7 @@ public class FilteringWebHandlerTests {
StubWebHandler targetHandler = new StubWebHandler();
new FilteringWebHandler(targetHandler, Arrays.asList(filter1, filter2, filter3))
.handle(MockServerHttpRequest.get("/").toExchange())
.handle(MockServerWebExchange.from(MockServerHttpRequest.get("/").build()))
.block(Duration.ZERO);
assertTrue(filter1.invoked());
@ -72,7 +73,7 @@ public class FilteringWebHandlerTests {
StubWebHandler targetHandler = new StubWebHandler();
new FilteringWebHandler(targetHandler, Collections.emptyList())
.handle(MockServerHttpRequest.get("/").toExchange())
.handle(MockServerWebExchange.from(MockServerHttpRequest.get("/").build()))
.block(Duration.ZERO);
assertTrue(targetHandler.invoked());
@ -87,7 +88,7 @@ public class FilteringWebHandlerTests {
StubWebHandler targetHandler = new StubWebHandler();
new FilteringWebHandler(targetHandler, Arrays.asList(filter1, filter2, filter3))
.handle(MockServerHttpRequest.get("/").toExchange())
.handle(MockServerWebExchange.from(MockServerHttpRequest.get("/").build()))
.block(Duration.ZERO);
assertTrue(filter1.invoked());
@ -103,7 +104,7 @@ public class FilteringWebHandlerTests {
StubWebHandler targetHandler = new StubWebHandler();
new FilteringWebHandler(targetHandler, Collections.singletonList(filter))
.handle(MockServerHttpRequest.get("/").toExchange())
.handle(MockServerWebExchange.from(MockServerHttpRequest.get("/").build()))
.block(Duration.ofSeconds(5));
assertTrue(filter.invoked());

View File

@ -24,7 +24,7 @@ import reactor.test.StepVerifier;
import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ResponseStatusException;
import static org.junit.Assert.assertEquals;
@ -39,7 +39,8 @@ public class ResponseStatusExceptionHandlerTests {
private final ResponseStatusExceptionHandler handler = new ResponseStatusExceptionHandler();
private final MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
private final MockServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/").build());
@Test

View File

@ -23,7 +23,7 @@ import java.util.Locale;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import static java.util.Locale.*;
@ -62,34 +62,27 @@ public class AcceptHeaderLocaleContextResolverTests {
this.resolver.setSupportedLocales(Arrays.asList(US, JAPAN));
this.resolver.setDefaultLocale(JAPAN);
MockServerWebExchange exchange = new MockServerWebExchange(MockServerHttpRequest
.get("/")
.acceptLanguageAsLocales(KOREA)
.build());
MockServerHttpRequest request = MockServerHttpRequest.get("/").acceptLanguageAsLocales(KOREA).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertEquals(JAPAN, this.resolver.resolveLocaleContext(exchange).getLocale());
}
@Test
public void defaultLocale() throws Exception {
this.resolver.setDefaultLocale(JAPANESE);
MockServerWebExchange exchange = new MockServerWebExchange(MockServerHttpRequest
.get("/")
.build());
MockServerHttpRequest request = MockServerHttpRequest.get("/").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
assertEquals(JAPANESE, this.resolver.resolveLocaleContext(exchange).getLocale());
exchange = new MockServerWebExchange(MockServerHttpRequest
.get("/")
.acceptLanguageAsLocales(US)
.build());
request = MockServerHttpRequest.get("/").acceptLanguageAsLocales(US).build();
exchange = MockServerWebExchange.from(request);
assertEquals(US, this.resolver.resolveLocaleContext(exchange).getLocale());
}
private ServerWebExchange exchange(Locale... locales) {
return new MockServerWebExchange(MockServerHttpRequest
.get("")
.acceptLanguageAsLocales(locales)
.build());
MockServerHttpRequest request = MockServerHttpRequest.get("").acceptLanguageAsLocales(locales).build();
return MockServerWebExchange.from(request);
}
}

View File

@ -9,7 +9,7 @@ import org.junit.Test;
import org.springframework.context.i18n.TimeZoneAwareLocaleContext;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import static java.util.Locale.CANADA;
@ -55,10 +55,8 @@ public class FixedLocaleContextResolverTests {
}
private ServerWebExchange exchange(Locale... locales) {
return new MockServerWebExchange(MockServerHttpRequest
.get("")
.acceptLanguageAsLocales(locales)
.build());
MockServerHttpRequest request = MockServerHttpRequest.get("").acceptLanguageAsLocales(locales).build();
return MockServerWebExchange.from(request);
}
}

View File

@ -18,6 +18,7 @@ package org.springframework.web.server.session;
import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import java.util.Arrays;
@ -40,7 +41,7 @@ public class HeaderWebSessionIdResolverTests {
@Before
public void setUp() {
this.idResolver = new HeaderWebSessionIdResolver();
this.exchange = MockServerHttpRequest.get("/path").toExchange();
this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path").build());
}
@Test
@ -121,9 +122,9 @@ public class HeaderWebSessionIdResolverTests {
@Test
public void resolveSessionIdsWhenIdThenIdFound() {
String id = "123";
this.exchange = MockServerHttpRequest.get("/path")
this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path")
.header(HeaderWebSessionIdResolver.DEFAULT_HEADER_NAME, id)
.toExchange();
.build());
List<String> ids = this.idResolver.resolveSessionIds(this.exchange);
@ -134,9 +135,10 @@ public class HeaderWebSessionIdResolverTests {
public void resolveSessionIdsWhenMultipleIdsThenIdsFound() {
String id1 = "123";
String id2 = "abc";
this.exchange = MockServerHttpRequest.get("/path")
this.exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/path")
.header(HeaderWebSessionIdResolver.DEFAULT_HEADER_NAME, id1, id2)
.toExchange();
.build());
List<String> ids = this.idResolver.resolveSessionIds(this.exchange);

View File

@ -33,6 +33,7 @@ import org.springframework.core.codec.CharSequenceEncoder;
import org.springframework.http.HttpStatus;
import org.springframework.http.codec.EncoderHttpMessageWriter;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -51,8 +52,10 @@ import org.springframework.web.server.handler.ExceptionHandlingWebHandler;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.startsWith;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.*;
import static org.springframework.http.MediaType.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThat;
import static org.springframework.http.MediaType.APPLICATION_JSON;
/**
* Test the effect of exceptions at different stages of request processing by
@ -79,7 +82,8 @@ public class DispatcherHandlerErrorTests {
@Test
public void noHandler() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/does-not-exist").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/does-not-exist").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Void> publisher = this.dispatcherHandler.handle(exchange);
StepVerifier.create(publisher)
@ -92,7 +96,8 @@ public class DispatcherHandlerErrorTests {
@Test
public void controllerReturnsMonoError() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/error-signal").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/error-signal").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Void> publisher = this.dispatcherHandler.handle(exchange);
StepVerifier.create(publisher)
@ -102,7 +107,8 @@ public class DispatcherHandlerErrorTests {
@Test
public void controllerThrowsException() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/raise-exception").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/raise-exception").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Void> publisher = this.dispatcherHandler.handle(exchange);
StepVerifier.create(publisher)
@ -112,7 +118,8 @@ public class DispatcherHandlerErrorTests {
@Test
public void unknownReturnType() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/unknown-return-type").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/unknown-return-type").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Void> publisher = this.dispatcherHandler.handle(exchange);
StepVerifier.create(publisher)
@ -125,9 +132,8 @@ public class DispatcherHandlerErrorTests {
@Test
public void responseBodyMessageConversionError() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.post("/request-body")
.accept(APPLICATION_JSON).body("body")
.toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.post("/request-body").accept(APPLICATION_JSON).body("body"));
Mono<Void> publisher = this.dispatcherHandler.handle(exchange);
@ -138,9 +144,8 @@ public class DispatcherHandlerErrorTests {
@Test
public void requestBodyError() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.post("/request-body")
.body(Mono.error(EXCEPTION))
.toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.post("/request-body").body(Mono.error(EXCEPTION)));
Mono<Void> publisher = this.dispatcherHandler.handle(exchange);
@ -151,7 +156,8 @@ public class DispatcherHandlerErrorTests {
@Test
public void webExceptionHandler() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/unknown-argument-type").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/unknown-argument-type").build());
List<WebExceptionHandler> handlers = Collections.singletonList(new ServerError500ExceptionHandler());
WebHandler webHandler = new ExceptionHandlingWebHandler(this.dispatcherHandler, handlers);

View File

@ -28,7 +28,7 @@ import org.springframework.core.Ordered;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.core.io.buffer.DefaultDataBufferFactory;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.method.ResolvableMethod;
import org.springframework.web.server.ServerWebExchange;
@ -67,7 +67,7 @@ public class DispatcherHandlerTests {
DispatcherHandler dispatcherHandler = new DispatcherHandler(context);
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
dispatcherHandler.handle(exchange).block(Duration.ofSeconds(0));
assertEquals("1", exchange.getResponse().getBodyAsString().block(Duration.ofSeconds(5)));
}

View File

@ -22,6 +22,7 @@ import org.junit.Test;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.NotAcceptableStatusException;
import org.springframework.web.server.ServerWebExchange;
@ -46,8 +47,8 @@ public class HeaderContentTypeResolverTests {
@Test
public void resolveMediaTypes() throws Exception {
String header = "text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c";
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("accept", header).toExchange();
List<MediaType> mediaTypes = this.resolver.resolveMediaTypes(exchange);
MockServerHttpRequest request = MockServerHttpRequest.get("/").header("accept", header).build();
List<MediaType> mediaTypes = this.resolver.resolveMediaTypes(MockServerWebExchange.from(request));
assertEquals(4, mediaTypes.size());
assertEquals("text/html", mediaTypes.get(0).toString());
@ -59,8 +60,8 @@ public class HeaderContentTypeResolverTests {
@Test(expected = NotAcceptableStatusException.class)
public void resolveMediaTypesParseError() throws Exception {
String header = "textplain; q=0.5";
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("accept", header).toExchange();
this.resolver.resolveMediaTypes(exchange);
MockServerHttpRequest request = MockServerHttpRequest.get("/").header("accept", header).build();
this.resolver.resolveMediaTypes(MockServerWebExchange.from(request));
}
}

View File

@ -23,7 +23,7 @@ import org.junit.Test;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.NotAcceptableStatusException;
import org.springframework.web.server.ServerWebExchange;
@ -38,7 +38,8 @@ public class ParameterContentTypeResolverTests {
@Test
public void noKey() throws Exception {
ParameterContentTypeResolver resolver = new ParameterContentTypeResolver(Collections.emptyMap());
List<MediaType> mediaTypes = resolver.resolveMediaTypes(MockServerHttpRequest.get("/").toExchange());
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
List<MediaType> mediaTypes = resolver.resolveMediaTypes(exchange);
assertEquals(0, mediaTypes.size());
}
@ -86,7 +87,7 @@ public class ParameterContentTypeResolverTests {
}
private MockServerWebExchange createExchange(String format) {
return MockServerHttpRequest.get("/path?format=" + format).toExchange();
return MockServerWebExchange.from(MockServerHttpRequest.get("/path?format=" + format).build());
}
}

View File

@ -22,7 +22,7 @@ import org.junit.Test;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import static org.junit.Assert.assertEquals;
@ -36,7 +36,8 @@ public class RequestedContentTypeResolverBuilderTests {
public void defaultSettings() throws Exception {
RequestedContentTypeResolver resolver = new RequestedContentTypeResolverBuilder().build();
ServerWebExchange exchange = MockServerHttpRequest.get("/flower").accept(MediaType.IMAGE_GIF).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/flower").accept(MediaType.IMAGE_GIF).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
List<MediaType> mediaTypes = resolver.resolveMediaTypes(exchange);
assertEquals(Collections.singletonList(MediaType.IMAGE_GIF), mediaTypes);
@ -49,7 +50,8 @@ public class RequestedContentTypeResolverBuilderTests {
builder.parameterResolver().mediaType("json", MediaType.APPLICATION_JSON);
RequestedContentTypeResolver resolver = builder.build();
ServerWebExchange exchange = MockServerHttpRequest.get("/flower?format=json").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/flower?format=json").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
List<MediaType> mediaTypes = resolver.resolveMediaTypes(exchange);
assertEquals(Collections.singletonList(MediaType.APPLICATION_JSON), mediaTypes);
@ -62,8 +64,8 @@ public class RequestedContentTypeResolverBuilderTests {
builder.parameterResolver().mediaType("json", MediaType.APPLICATION_JSON).parameterName("s");
RequestedContentTypeResolver resolver = builder.build();
ServerWebExchange exchange = MockServerHttpRequest.get("/flower?s=json").toExchange();
List<MediaType> mediaTypes = resolver.resolveMediaTypes(exchange);
MockServerHttpRequest request = MockServerHttpRequest.get("/flower?s=json").build();
List<MediaType> mediaTypes = resolver.resolveMediaTypes(MockServerWebExchange.from(request));
assertEquals(Collections.singletonList(MediaType.APPLICATION_JSON), mediaTypes);
}
@ -75,8 +77,8 @@ public class RequestedContentTypeResolverBuilderTests {
builder.fixedResolver(MediaType.APPLICATION_JSON);
RequestedContentTypeResolver resolver = builder.build();
ServerWebExchange exchange = MockServerHttpRequest.get("/").accept(MediaType.ALL).toExchange();
List<MediaType> mediaTypes = resolver.resolveMediaTypes(exchange);
MockServerHttpRequest request = MockServerHttpRequest.get("/").accept(MediaType.ALL).build();
List<MediaType> mediaTypes = resolver.resolveMediaTypes(MockServerWebExchange.from(request));
assertEquals(Collections.singletonList(MediaType.APPLICATION_JSON), mediaTypes);
}
@ -88,11 +90,11 @@ public class RequestedContentTypeResolverBuilderTests {
builder.resolver(new FixedContentTypeResolver(MediaType.APPLICATION_JSON));
RequestedContentTypeResolver resolver = builder.build();
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
List<MediaType> mediaTypes = resolver.resolveMediaTypes(exchange);
assertEquals(Collections.singletonList(MediaType.APPLICATION_JSON), mediaTypes);
exchange = MockServerHttpRequest.get("/").accept(MediaType.ALL).toExchange();
exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").accept(MediaType.ALL).build());
mediaTypes = resolver.resolveMediaTypes(exchange);
assertEquals(Collections.singletonList(MediaType.APPLICATION_JSON), mediaTypes);
}

View File

@ -33,7 +33,7 @@ import org.springframework.core.io.buffer.support.DataBufferTestUtils;
import org.springframework.http.CacheControl;
import org.springframework.http.server.PathContainer;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.reactive.HandlerMapping;
import org.springframework.web.reactive.handler.SimpleUrlHandlerMapping;
import org.springframework.web.reactive.resource.AppCacheManifestTransformer;
@ -81,7 +81,7 @@ public class ResourceHandlerRegistryTests {
@Test
public void mapPathToLocation() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
exchange.getAttributes().put(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE,
PathContainer.parsePath("/testStylesheet.css"));

View File

@ -41,6 +41,7 @@ import org.springframework.http.codec.ServerCodecConfigurer;
import org.springframework.http.codec.json.Jackson2JsonEncoder;
import org.springframework.http.codec.xml.Jaxb2XmlDecoder;
import org.springframework.http.codec.xml.Jaxb2XmlEncoder;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.MimeType;
import org.springframework.util.MimeTypeUtils;
import org.springframework.util.MultiValueMap;
@ -104,7 +105,7 @@ public class WebFluxConfigurationSupportTests {
RequestedContentTypeResolver resolver = context.getBean(name, RequestedContentTypeResolver.class);
assertSame(resolver, mapping.getContentTypeResolver());
ServerWebExchange exchange = get("/path").accept(MediaType.APPLICATION_JSON).toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/path").accept(MediaType.APPLICATION_JSON).build());
assertEquals(Collections.singletonList(MediaType.APPLICATION_JSON), resolver.resolveMediaTypes(exchange));
}

View File

@ -43,7 +43,7 @@ import org.springframework.http.codec.EncoderHttpMessageWriter;
import org.springframework.http.codec.HttpMessageWriter;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.reactive.function.BodyInserter;
import org.springframework.web.reactive.result.view.ViewResolver;
@ -191,17 +191,18 @@ public class DefaultEntityResponseBuilderTests {
Mono<EntityResponse<Publisher<String>>> result = EntityResponse.fromPublisher(publisher, String.class).build();
MockServerWebExchange exchange = MockServerHttpRequest.get("http://localhost").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("http://localhost").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
ServerResponse.Context context = new ServerResponse.Context() {
@Override
public List<HttpMessageWriter<?>> messageWriters() {
return Collections.<HttpMessageWriter<?>>singletonList(new EncoderHttpMessageWriter<>(CharSequenceEncoder.allMimeTypes()));
return Collections.singletonList(new EncoderHttpMessageWriter<>(CharSequenceEncoder.allMimeTypes()));
}
@Override
public List<ViewResolver> viewResolvers() {
return Collections.<ViewResolver>emptyList();
return Collections.emptyList();
}
};
StepVerifier.create(result)

View File

@ -29,7 +29,7 @@ import reactor.test.StepVerifier;
import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.reactive.result.view.View;
import org.springframework.web.reactive.result.view.ViewResolver;
@ -108,7 +108,8 @@ public class DefaultRenderingResponseTests {
Map<String, Object> model = Collections.singletonMap("foo", "bar");
Mono<RenderingResponse> result = RenderingResponse.create("view").modelAttributes(model).build();
MockServerWebExchange exchange = MockServerHttpRequest.get("http://localhost").toExchange();
MockServerHttpRequest build = MockServerHttpRequest.get("http://localhost").build();
MockServerWebExchange exchange = MockServerWebExchange.from(build);
ViewResolver viewResolver = mock(ViewResolver.class);
View view = mock(View.class);
when(viewResolver.resolveViewName("view", Locale.ENGLISH)).thenReturn(Mono.just(view));

View File

@ -46,12 +46,12 @@ import org.springframework.http.MediaType;
import org.springframework.http.codec.DecoderHttpMessageReader;
import org.springframework.http.codec.HttpMessageReader;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.server.UnsupportedMediaTypeStatusException;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.springframework.web.reactive.function.BodyExtractors.toMono;
/**
@ -72,7 +72,7 @@ public class DefaultServerRequestTests {
public void method() throws Exception {
HttpMethod method = HttpMethod.HEAD;
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(method, "http://example.com").build();
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
assertEquals(method, request.method());
}
@ -82,7 +82,7 @@ public class DefaultServerRequestTests {
URI uri = URI.create("https://example.com");
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, uri).build();
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
assertEquals(uri, request.uri());
}
@ -91,7 +91,7 @@ public class DefaultServerRequestTests {
public void uriBuilder() throws Exception {
URI uri = new URI("http", "localhost", "/path", "a=1", null);
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, uri).build();
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
URI result = request.uriBuilder().build();
@ -105,7 +105,7 @@ public class DefaultServerRequestTests {
@Test
public void attribute() throws Exception {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com").build();
MockServerWebExchange exchange = new MockServerWebExchange(mockRequest);
MockServerWebExchange exchange = MockServerWebExchange.from(mockRequest);
exchange.getAttributes().put("foo", "bar");
DefaultServerRequest request = new DefaultServerRequest(exchange, messageReaders);
@ -116,7 +116,7 @@ public class DefaultServerRequestTests {
@Test
public void queryParams() throws Exception {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo=bar").build();
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
assertEquals(Optional.of("bar"), request.queryParam("foo"));
}
@ -124,7 +124,7 @@ public class DefaultServerRequestTests {
@Test
public void emptyQueryParam() throws Exception {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo").build();
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
assertEquals(Optional.of(""), request.queryParam("foo"));
}
@ -132,7 +132,7 @@ public class DefaultServerRequestTests {
@Test
public void absentQueryParam() throws Exception {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo").build();
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
assertEquals(Optional.empty(), request.queryParam("bar"));
}
@ -140,7 +140,7 @@ public class DefaultServerRequestTests {
@Test
public void pathVariable() throws Exception {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com").build();
MockServerWebExchange exchange = new MockServerWebExchange(mockRequest);
MockServerWebExchange exchange = MockServerWebExchange.from(mockRequest);
Map<String, String> pathVariables = Collections.singletonMap("foo", "bar");
exchange.getAttributes().put(RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE, pathVariables);
@ -153,7 +153,7 @@ public class DefaultServerRequestTests {
@Test(expected = IllegalArgumentException.class)
public void pathVariableNotFound() throws Exception {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com").build();
MockServerWebExchange exchange = new MockServerWebExchange(mockRequest);
MockServerWebExchange exchange = MockServerWebExchange.from(mockRequest);
Map<String, String> pathVariables = Collections.singletonMap("foo", "bar");
exchange.getAttributes().put(RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE, pathVariables);
@ -165,7 +165,7 @@ public class DefaultServerRequestTests {
@Test
public void pathVariables() throws Exception {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com").build();
MockServerWebExchange exchange = new MockServerWebExchange(mockRequest);
MockServerWebExchange exchange = MockServerWebExchange.from(mockRequest);
Map<String, String> pathVariables = Collections.singletonMap("foo", "bar");
exchange.getAttributes().put(RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE, pathVariables);
@ -193,7 +193,7 @@ public class DefaultServerRequestTests {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo=bar").
headers(httpHeaders).build();
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
ServerRequest.Headers headers = request.headers();
assertEquals(accept, headers.accept());
@ -208,7 +208,7 @@ public class DefaultServerRequestTests {
HttpCookie cookie = new HttpCookie("foo", "bar");
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com").
cookie(cookie).build();
MockServerWebExchange exchange = new MockServerWebExchange(mockRequest);
MockServerWebExchange exchange = MockServerWebExchange.from(mockRequest);
DefaultServerRequest request = new DefaultServerRequest(exchange, messageReaders);
@ -231,7 +231,7 @@ public class DefaultServerRequestTests {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo=bar").
headers(httpHeaders).body(body);
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
Mono<String> resultMono = request.body(toMono(String.class));
assertEquals("foo", resultMono.block());
@ -248,7 +248,7 @@ public class DefaultServerRequestTests {
httpHeaders.setContentType(MediaType.TEXT_PLAIN);
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo=bar").
headers(httpHeaders).body(body);
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
Mono<String> resultMono = request.bodyToMono(String.class);
assertEquals("foo", resultMono.block());
@ -265,7 +265,7 @@ public class DefaultServerRequestTests {
httpHeaders.setContentType(MediaType.TEXT_PLAIN);
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo=bar").
headers(httpHeaders).body(body);
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
ParameterizedTypeReference<String> typeReference = new ParameterizedTypeReference<String>() {};
Mono<String> resultMono = request.bodyToMono(typeReference);
@ -283,7 +283,7 @@ public class DefaultServerRequestTests {
httpHeaders.setContentType(MediaType.TEXT_PLAIN);
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo=bar").
headers(httpHeaders).body(body);
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
Flux<String> resultFlux = request.bodyToFlux(String.class);
assertEquals(Collections.singletonList("foo"), resultFlux.collectList().block());
@ -300,7 +300,7 @@ public class DefaultServerRequestTests {
httpHeaders.setContentType(MediaType.TEXT_PLAIN);
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo=bar").
headers(httpHeaders).body(body);
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
ParameterizedTypeReference<String> typeReference = new ParameterizedTypeReference<String>() {};
Flux<String> resultFlux = request.bodyToFlux(typeReference);
@ -319,7 +319,7 @@ public class DefaultServerRequestTests {
MockServerHttpRequest mockRequest = MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo=bar").
headers(httpHeaders).body(body);
this.messageReaders = Collections.emptyList();
DefaultServerRequest request = new DefaultServerRequest(mockRequest.toExchange(), messageReaders);
DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders);
Flux<String> resultFlux = request.bodyToFlux(String.class);
StepVerifier.create(resultFlux)

View File

@ -34,10 +34,12 @@ import org.springframework.http.MediaType;
import org.springframework.http.codec.HttpMessageWriter;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.reactive.result.view.ViewResolver;
import static org.junit.Assert.*;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* @author Arjen Poutsma
@ -71,7 +73,7 @@ public class ResourceHandlerFunctionTests {
@Test
public void get() throws IOException {
MockServerWebExchange exchange = MockServerHttpRequest.get("http://localhost").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://localhost").build());
MockServerHttpResponse mockResponse = exchange.getResponse();
ServerRequest request = new DefaultServerRequest(exchange, HandlerStrategies.withDefaults().messageReaders());
@ -107,7 +109,7 @@ public class ResourceHandlerFunctionTests {
@Test
public void head() throws IOException {
MockServerWebExchange exchange = MockServerHttpRequest.head("http://localhost").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.head("http://localhost").build());
MockServerHttpResponse mockResponse = exchange.getResponse();
ServerRequest request = new DefaultServerRequest(exchange, HandlerStrategies.withDefaults().messageReaders());
@ -132,7 +134,7 @@ public class ResourceHandlerFunctionTests {
@Test
public void options() {
MockServerWebExchange exchange = MockServerHttpRequest.options("http://localhost").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.options("http://localhost").build());
MockServerHttpResponse mockResponse = exchange.getResponse();
ServerRequest request = new DefaultServerRequest(exchange, HandlerStrategies.withDefaults().messageReaders());

View File

@ -30,7 +30,7 @@ import org.springframework.http.codec.DecoderHttpMessageReader;
import org.springframework.http.codec.HttpMessageReader;
import org.springframework.http.codec.ServerCodecConfigurer;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.reactive.config.EnableWebFlux;
import org.springframework.web.reactive.function.server.HandlerFunction;
import org.springframework.web.reactive.function.server.RequestPredicates;
@ -53,9 +53,8 @@ public class RouterFunctionMappingTests {
@Before
public void setUp() {
this.messageReaders =
Collections.singletonList(new DecoderHttpMessageReader<>(new ByteBufferDecoder()));
this.exchange = new MockServerWebExchange(MockServerHttpRequest.get("http://example.com/match").build());
this.messageReaders = Collections.singletonList(new DecoderHttpMessageReader<>(new ByteBufferDecoder()));
this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://example.com/match").build());
codecConfigurer = ServerCodecConfigurer.create();
}

View File

@ -23,6 +23,7 @@ import org.junit.Test;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsConfigurationSource;
import org.springframework.web.server.ServerWebExchange;
@ -132,11 +133,11 @@ public class CorsUrlHandlerMappingTests {
private ServerWebExchange createExchange(HttpMethod method, String path, String origin) {
return MockServerHttpRequest
return MockServerWebExchange.from(MockServerHttpRequest
.method(method, "http://localhost" + path)
.header("Origin", origin)
.header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET")
.toExchange();
.build());
}

View File

@ -26,6 +26,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.http.HttpMethod;
import org.springframework.http.server.PathContainer;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.reactive.HandlerMapping;
import org.springframework.web.server.ServerWebExchange;
@ -98,7 +99,8 @@ public class SimpleUrlHandlerMappingTests {
}
private void testUrl(String url, Object bean, HandlerMapping handlerMapping, String pathWithinMapping) {
ServerWebExchange exchange = MockServerHttpRequest.method(HttpMethod.GET, URI.create(url)).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.method(HttpMethod.GET, URI.create(url)).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
Object actual = handlerMapping.getHandler(exchange).block();
if (bean != null) {
assertNotNull(actual);

View File

@ -30,8 +30,8 @@ import reactor.core.publisher.Mono;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.server.ServerWebExchange;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
@ -79,7 +79,8 @@ public class AppCacheManifestTransformerTests {
@Test
public void noTransformIfExtensionNoMatch() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/static/foobar.file").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/static/foobar.file").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
this.chain = mock(ResourceTransformerChain.class);
Resource resource = mock(Resource.class);
given(resource.getFilename()).willReturn("foobar.file");
@ -91,7 +92,8 @@ public class AppCacheManifestTransformerTests {
@Test
public void syntaxErrorInManifest() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/static/error.appcache").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/static/error.appcache").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
this.chain = mock(ResourceTransformerChain.class);
Resource resource = new ClassPathResource("test/error.appcache", getClass());
given(this.chain.transform(exchange, resource)).willReturn(Mono.just(resource));
@ -102,7 +104,8 @@ public class AppCacheManifestTransformerTests {
@Test
public void transformManifest() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/static/test.appcache").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/static/test.appcache").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
VersionResourceResolver versionResolver = new VersionResourceResolver();
versionResolver.setStrategyMap(Collections.singletonMap("/**", new ContentVersionStrategy()));

View File

@ -29,7 +29,7 @@ import org.springframework.cache.concurrent.ConcurrentMapCache;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@ -71,7 +71,7 @@ public class CachingResourceResolverTests {
public void resolveResourceInternal() {
String file = "bar.css";
Resource expected = new ClassPathResource("test/" + file, getClass());
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
Resource actual = this.chain.resolveResource(exchange, file, this.locations).block(TIMEOUT);
assertEquals(expected, actual);
@ -84,7 +84,7 @@ public class CachingResourceResolverTests {
this.cache.put(CachingResourceResolver.RESOLVED_RESOURCE_CACHE_KEY_PREFIX + "bar.css", expected);
String file = "bar.css";
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
Resource actual = this.chain.resolveResource(exchange, file, this.locations).block(TIMEOUT);
assertSame(expected, actual);
@ -92,7 +92,7 @@ public class CachingResourceResolverTests {
@Test
public void resolveResourceInternalNoMatch() {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
assertNull(this.chain.resolveResource(exchange, "invalid.css", this.locations).block(TIMEOUT));
}
@ -121,8 +121,8 @@ public class CachingResourceResolverTests {
@Test
public void resolveResourceAcceptEncodingInCacheKey() {
String file = "bar.css";
MockServerWebExchange exchange = MockServerHttpRequest.get(file)
.header("Accept-Encoding", "gzip").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get(file)
.header("Accept-Encoding", "gzip").build());
Resource expected = this.chain.resolveResource(exchange, file, this.locations).block(TIMEOUT);
String cacheKey = CachingResourceResolver.RESOLVED_RESOURCE_CACHE_KEY_PREFIX + file + "+encoding=gzip";
@ -133,7 +133,7 @@ public class CachingResourceResolverTests {
@Test
public void resolveResourceNoAcceptEncodingInCacheKey() {
String file = "bar.css";
MockServerWebExchange exchange = MockServerHttpRequest.get(file).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get(file).build());
Resource expected = this.chain.resolveResource(exchange, file, this.locations).block(TIMEOUT);
String cacheKey = CachingResourceResolver.RESOLVED_RESOURCE_CACHE_KEY_PREFIX + file;
@ -149,10 +149,11 @@ public class CachingResourceResolverTests {
this.cache.put(CachingResourceResolver.RESOLVED_RESOURCE_CACHE_KEY_PREFIX + "bar.css+encoding=gzip", gzResource);
String file = "bar.css";
MockServerWebExchange exchange = MockServerHttpRequest.get(file).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get(file).build());
assertSame(resource, this.chain.resolveResource(exchange, file, this.locations).block(TIMEOUT));
exchange = MockServerHttpRequest.get(file).header("Accept-Encoding", "gzip").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get(file).header("Accept-Encoding", "gzip").build();
exchange = MockServerWebExchange.from(request);
assertSame(gzResource, this.chain.resolveResource(exchange, file, this.locations).block(TIMEOUT));
}

View File

@ -33,7 +33,7 @@ import reactor.test.StepVerifier;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.StringUtils;
import static org.junit.Assert.assertEquals;
@ -76,7 +76,8 @@ public class CssLinkResourceTransformerTests {
@Test
public void transform() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/static/main.css").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/static/main.css").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
Resource css = new ClassPathResource("test/main.css", getClass());
String expected = "\n" +
@ -98,7 +99,7 @@ public class CssLinkResourceTransformerTests {
@Test
public void transformNoLinks() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/static/foo.css").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/static/foo.css").build());
Resource expected = new ClassPathResource("test/foo.css", getClass());
StepVerifier.create(this.transformerChain.transform(exchange, expected))
.consumeNextWith(resource -> assertSame(expected, resource))
@ -107,7 +108,7 @@ public class CssLinkResourceTransformerTests {
@Test
public void transformExtLinksNotAllowed() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/static/external.css").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/static/external.css").build());
ResourceResolverChain resolverChain = Mockito.mock(DefaultResourceResolverChain.class);
ResourceTransformerChain transformerChain = new DefaultResourceTransformerChain(resolverChain,
Collections.singletonList(new CssLinkResourceTransformer()));
@ -133,7 +134,7 @@ public class CssLinkResourceTransformerTests {
@Test
public void transformWithNonCssResource() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/static/images/image.png").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/static/images/image.png").build());
Resource expected = new ClassPathResource("test/images/image.png", getClass());
StepVerifier.create(this.transformerChain.transform(exchange, expected))
.expectNext(expected)
@ -142,7 +143,7 @@ public class CssLinkResourceTransformerTests {
@Test
public void transformWithGzippedResource() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/static/main.css").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/static/main.css").build());
Resource original = new ClassPathResource("test/main.css", getClass());
createTempCopy("main.css", "main.css.gz");
GzipResourceResolver.GzippedResource expected = new GzipResourceResolver.GzippedResource(original);

View File

@ -39,7 +39,7 @@ import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.FileCopyUtils;
import static org.junit.Assert.assertEquals;
@ -104,8 +104,8 @@ public class GzipResourceResolverTests {
@Test
public void resolveGzippedFile() throws IOException {
MockServerWebExchange exchange = MockServerHttpRequest.get("")
.header("Accept-Encoding", "gzip").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("")
.header("Accept-Encoding", "gzip").build());
String file = "js/foo.js";
Resource resolved = this.resolver.resolveResource(exchange, file, this.locations).block(TIMEOUT);
@ -120,8 +120,8 @@ public class GzipResourceResolverTests {
@Test
public void resolveFingerprintedGzippedFile() throws IOException {
MockServerWebExchange exchange = MockServerHttpRequest.get("")
.header("Accept-Encoding", "gzip").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("")
.header("Accept-Encoding", "gzip").build());
String file = "foo-e36d2e05253c6c7085a91522ce43a0b4.css";
Resource resolved = this.resolver.resolveResource(exchange, file, this.locations).block(TIMEOUT);
@ -136,8 +136,8 @@ public class GzipResourceResolverTests {
@Test
public void resolveFromCacheWithEncodingVariants() throws IOException {
MockServerWebExchange exchange = MockServerHttpRequest.get("")
.header("Accept-Encoding", "gzip").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("")
.header("Accept-Encoding", "gzip").build());
String file = "js/foo.js";
Resource resolved = this.resolver.resolveResource(exchange, file, this.locations).block(TIMEOUT);
@ -151,7 +151,7 @@ public class GzipResourceResolverTests {
// resolved resource is now cached in CachingResourceResolver
exchange = MockServerHttpRequest.get("/js/foo.js").toExchange();
exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/js/foo.js").build());
resolved = this.resolver.resolveResource(exchange, file, this.locations).block(TIMEOUT);
Resource resource = new ClassPathResource("test/"+file, getClass());

View File

@ -28,7 +28,7 @@ import reactor.core.publisher.Mono;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import static org.junit.Assert.assertEquals;
@ -71,7 +71,8 @@ public class ResourceTransformerSupportTests {
@Test
public void resolveUrlPath() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/resources/main.css").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/resources/main.css").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
String resourcePath = "/resources/bar.css";
Resource css = new ClassPathResource("test/main.css", getClass());
String actual = this.transformer.resolveUrlPath(
@ -84,7 +85,7 @@ public class ResourceTransformerSupportTests {
@Test
public void resolveUrlPathWithRelativePath() throws Exception {
Resource css = new ClassPathResource("test/main.css", getClass());
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
String actual = this.transformer.resolveUrlPath(
"bar.css", exchange, css, this.transformerChain).block(Duration.ofSeconds(5));
@ -94,7 +95,7 @@ public class ResourceTransformerSupportTests {
@Test
public void resolveUrlPathWithRelativePathInParentDirectory() throws Exception {
Resource imagePng = new ClassPathResource("test/images/image.png", getClass());
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
String actual = this.transformer.resolveUrlPath(
"../bar.css", exchange, imagePng, this.transformerChain).block(Duration.ofSeconds(5));

View File

@ -34,9 +34,9 @@ import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.MockServletContext;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.reactive.handler.SimpleUrlHandlerMapping;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.util.pattern.PathPattern;
import static org.junit.Assert.assertEquals;
@ -72,7 +72,7 @@ public class ResourceUrlProviderTests {
@Test
public void getStaticResourceUrl() {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
String uriString = "/resources/foo.css";
String actual = this.urlProvider.getForUriString(uriString, exchange).block(Duration.ofSeconds(5));
assertEquals(uriString, actual);
@ -80,7 +80,7 @@ public class ResourceUrlProviderTests {
@Test // SPR-13374
public void getStaticResourceUrlRequestWithQueryOrHash() {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
String url = "/resources/foo.css?foo=bar&url=http://example.org";
String resolvedUrl = this.urlProvider.getForUriString(url, exchange).block(Duration.ofSeconds(5));
@ -103,7 +103,7 @@ public class ResourceUrlProviderTests {
resolvers.add(new PathResourceResolver());
this.handler.setResourceResolvers(resolvers);
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
String path = "/resources/foo.css";
String url = this.urlProvider.getForUriString(path, exchange).block(Duration.ofSeconds(5));
assertEquals("/resources/foo-e36d2e05253c6c7085a91522ce43a0b4.css", url);
@ -126,7 +126,7 @@ public class ResourceUrlProviderTests {
this.handlerMap.put("/resources/*.css", otherHandler);
this.urlProvider.registerHandlers(this.handlerMap);
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
String path = "/resources/foo.css";
String url = this.urlProvider.getForUriString(path, exchange).block(Duration.ofSeconds(5));
assertEquals("/resources/foo-e36d2e05253c6c7085a91522ce43a0b4.css", url);

View File

@ -47,7 +47,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.server.PathContainer;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.StringUtils;
import org.springframework.web.reactive.HandlerMapping;
import org.springframework.web.server.MethodNotAllowedException;
@ -90,7 +90,7 @@ public class ResourceWebHandlerTests {
@Test
public void getResource() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "foo.css");
this.handler.handle(exchange).block(TIMEOUT);
@ -107,7 +107,7 @@ public class ResourceWebHandlerTests {
@Test
public void getResourceHttpHeader() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.head("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.head("").build());
setPathWithinHandlerMapping(exchange, "foo.css");
this.handler.handle(exchange).block(TIMEOUT);
@ -128,7 +128,7 @@ public class ResourceWebHandlerTests {
@Test
public void getResourceHttpOptions() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.options("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.options("").build());
setPathWithinHandlerMapping(exchange, "foo.css");
this.handler.handle(exchange).block(TIMEOUT);
@ -138,7 +138,7 @@ public class ResourceWebHandlerTests {
@Test
public void getResourceNoCache() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "foo.css");
this.handler.setCacheControl(CacheControl.noStore());
this.handler.handle(exchange).block(TIMEOUT);
@ -158,7 +158,7 @@ public class ResourceWebHandlerTests {
this.handler.setResourceResolvers(Arrays.asList(versionResolver, new PathResourceResolver()));
this.handler.afterPropertiesSet();
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "versionString/foo.css");
this.handler.handle(exchange).block(TIMEOUT);
@ -169,7 +169,7 @@ public class ResourceWebHandlerTests {
@Test
public void getResourceWithHtmlMediaType() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "foo.html");
this.handler.handle(exchange).block(TIMEOUT);
@ -184,7 +184,7 @@ public class ResourceWebHandlerTests {
@Test
public void getResourceFromAlternatePath() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "baz.css");
this.handler.handle(exchange).block(TIMEOUT);
@ -201,21 +201,23 @@ public class ResourceWebHandlerTests {
@Test
public void getResourceFromSubDirectory() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "js/foo.js");
this.handler.handle(exchange).block(TIMEOUT);
assertEquals(MediaType.parseMediaType("application/javascript"), exchange.getResponse().getHeaders().getContentType());
assertEquals(MediaType.parseMediaType("application/javascript"),
exchange.getResponse().getHeaders().getContentType());
assertResponseBody(exchange, "function foo() { console.log(\"hello world\"); }");
}
@Test
public void getResourceFromSubDirectoryOfAlternatePath() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "js/baz.js");
this.handler.handle(exchange).block(TIMEOUT);
assertEquals(MediaType.parseMediaType("application/javascript"), exchange.getResponse().getHeaders().getContentType());
HttpHeaders headers = exchange.getResponse().getHeaders();
assertEquals(MediaType.parseMediaType("application/javascript"), headers.getContentType());
assertResponseBody(exchange, "function foo() { console.log(\"hello world\"); }");
}
@ -226,8 +228,8 @@ public class ResourceWebHandlerTests {
handler.setLocations(paths);
handler.afterPropertiesSet();
MockServerWebExchange exchange = MockServerHttpRequest.get("")
.header("Accept", "application/json,text/plain,*/*").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("")
.header("Accept", "application/json,text/plain,*/*").build());
setPathWithinHandlerMapping(exchange, "foo.html");
handler.handle(exchange).block(TIMEOUT);
@ -268,7 +270,8 @@ public class ResourceWebHandlerTests {
}
private void testInvalidPath(HttpMethod httpMethod, String requestPath, Resource location) throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.method(httpMethod, "").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.method(httpMethod, "").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, requestPath);
this.handler.handle(exchange).block(TIMEOUT);
if (!location.createRelative(requestPath).exists() && !requestPath.contains(":")) {
@ -337,8 +340,8 @@ public class ResourceWebHandlerTests {
@Test
public void notModified() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("")
.ifModifiedSince(resourceLastModified("test/foo.css")).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("")
.ifModifiedSince(resourceLastModified("test/foo.css")).build());
setPathWithinHandlerMapping(exchange, "foo.css");
this.handler.handle(exchange).block(TIMEOUT);
assertEquals(HttpStatus.NOT_MODIFIED, exchange.getResponse().getStatusCode());
@ -347,7 +350,8 @@ public class ResourceWebHandlerTests {
@Test
public void modified() throws Exception {
long timestamp = resourceLastModified("test/foo.css") / 1000 * 1000 - 1;
MockServerWebExchange exchange = MockServerHttpRequest.get("").ifModifiedSince(timestamp).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("").ifModifiedSince(timestamp).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, "foo.css");
this.handler.handle(exchange).block(TIMEOUT);
@ -357,7 +361,7 @@ public class ResourceWebHandlerTests {
@Test
public void directory() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "js/");
this.handler.handle(exchange).block(TIMEOUT);
assertEquals(HttpStatus.NOT_FOUND, exchange.getResponse().getStatusCode());
@ -365,7 +369,7 @@ public class ResourceWebHandlerTests {
@Test
public void directoryInJarFile() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "underscorejs/");
this.handler.handle(exchange).block(TIMEOUT);
@ -375,7 +379,7 @@ public class ResourceWebHandlerTests {
@Test
public void missingResourcePath() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
setPathWithinHandlerMapping(exchange, "");
this.handler.handle(exchange).block(TIMEOUT);
assertEquals(HttpStatus.NOT_FOUND, exchange.getResponse().getStatusCode());
@ -383,13 +387,13 @@ public class ResourceWebHandlerTests {
@Test(expected = IllegalArgumentException.class)
public void noPathWithinHandlerMappingAttribute() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
this.handler.handle(exchange).block(TIMEOUT);
}
@Test(expected = MethodNotAllowedException.class)
public void unsupportedHttpMethod() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.post("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.post("").build());
setPathWithinHandlerMapping(exchange, "foo.css");
this.handler.handle(exchange).block(TIMEOUT);
}
@ -402,7 +406,8 @@ public class ResourceWebHandlerTests {
}
private void resourceNotFound(HttpMethod httpMethod) throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.method(httpMethod, "").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.method(httpMethod, "").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, "not-there.css");
this.handler.handle(exchange).block(TIMEOUT);
assertEquals(HttpStatus.NOT_FOUND, exchange.getResponse().getStatusCode());
@ -410,7 +415,8 @@ public class ResourceWebHandlerTests {
@Test
public void partialContentByteRange() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").header("Range", "bytes=0-1").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("").header("Range", "bytes=0-1").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, "foo.txt");
this.handler.handle(exchange).block(TIMEOUT);
@ -425,7 +431,8 @@ public class ResourceWebHandlerTests {
@Test
public void partialContentByteRangeNoEnd() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").header("range", "bytes=9-").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("").header("range", "bytes=9-").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, "foo.txt");
this.handler.handle(exchange).block(TIMEOUT);
@ -440,7 +447,8 @@ public class ResourceWebHandlerTests {
@Test
public void partialContentByteRangeLargeEnd() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").header("range", "bytes=9-10000").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("").header("range", "bytes=9-10000").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, "foo.txt");
this.handler.handle(exchange).block(TIMEOUT);
@ -455,7 +463,8 @@ public class ResourceWebHandlerTests {
@Test
public void partialContentSuffixRange() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").header("range", "bytes=-1").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("").header("range", "bytes=-1").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, "foo.txt");
this.handler.handle(exchange).block(TIMEOUT);
@ -470,7 +479,8 @@ public class ResourceWebHandlerTests {
@Test
public void partialContentSuffixRangeLargeSuffix() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").header("range", "bytes=-11").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("").header("range", "bytes=-11").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, "foo.txt");
this.handler.handle(exchange).block(TIMEOUT);
@ -485,7 +495,8 @@ public class ResourceWebHandlerTests {
@Test
public void partialContentInvalidRangeHeader() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").header("range", "bytes=foo bar").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("").header("range", "bytes=foo bar").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, "foo.txt");
StepVerifier.create(this.handler.handle(exchange))
@ -499,7 +510,8 @@ public class ResourceWebHandlerTests {
@Test
public void partialContentMultipleByteRanges() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").header("Range", "bytes=0-1, 4-5, 8-9").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("").header("Range", "bytes=0-1, 4-5, 8-9").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
setPathWithinHandlerMapping(exchange, "foo.txt");
this.handler.handle(exchange).block(TIMEOUT);
@ -542,7 +554,7 @@ public class ResourceWebHandlerTests {
@Test // SPR-14005
public void doOverwriteExistingCacheControlHeaders() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
exchange.getResponse().getHeaders().setCacheControl(CacheControl.noStore().getHeaderValue());
setPathWithinHandlerMapping(exchange, "foo.css");
this.handler.handle(exchange).block(TIMEOUT);

View File

@ -30,6 +30,7 @@ import reactor.core.publisher.Mono;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import static org.hamcrest.Matchers.instanceOf;
@ -162,7 +163,8 @@ public class VersionResourceResolverTests {
String version = "version";
String file = "bar.css";
Resource expected = new ClassPathResource("test/" + file, getClass());
ServerWebExchange exchange = MockServerHttpRequest.get("/resources/bar-version.css").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/resources/bar-version.css").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
given(this.chain.resolveResource(exchange, versionFile, this.locations)).willReturn(Mono.empty());
given(this.chain.resolveResource(exchange, file, this.locations)).willReturn(Mono.just(expected));
given(this.versionStrategy.extractVersion(versionFile)).willReturn(version);

View File

@ -26,6 +26,7 @@ import reactor.core.publisher.Mono;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import static java.util.Collections.singletonList;
@ -63,7 +64,7 @@ public class WebJarsResourceResolverTests {
this.locations = singletonList(new ClassPathResource("/META-INF/resources/webjars"));
this.resolver = new WebJarsResourceResolver();
this.chain = mock(ResourceResolverChain.class);
this.exchange = MockServerHttpRequest.get("").toExchange();
this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("").build());
}

View File

@ -25,14 +25,20 @@ import org.junit.Test;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.reactive.HandlerMapping;
import org.springframework.web.reactive.accept.FixedContentTypeResolver;
import org.springframework.web.reactive.accept.HeaderContentTypeResolver;
import org.springframework.web.reactive.accept.RequestedContentTypeResolver;
import static org.junit.Assert.*;
import static org.springframework.http.MediaType.*;
import static org.junit.Assert.assertEquals;
import static org.springframework.http.MediaType.ALL;
import static org.springframework.http.MediaType.APPLICATION_JSON_UTF8;
import static org.springframework.http.MediaType.APPLICATION_OCTET_STREAM;
import static org.springframework.http.MediaType.IMAGE_GIF;
import static org.springframework.http.MediaType.IMAGE_JPEG;
import static org.springframework.http.MediaType.IMAGE_PNG;
import static org.springframework.http.MediaType.TEXT_PLAIN;
/**
* Unit tests for {@link HandlerResultHandlerSupport}.
@ -48,7 +54,7 @@ public class HandlerResultHandlerTests {
public void usesContentTypeResolver() throws Exception {
TestResultHandler resultHandler = new TestResultHandler(new FixedContentTypeResolver(IMAGE_GIF));
List<MediaType> mediaTypes = Arrays.asList(IMAGE_JPEG, IMAGE_GIF, IMAGE_PNG);
MockServerWebExchange exchange = MockServerHttpRequest.get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path").build());
MediaType actual = resultHandler.selectMediaType(exchange, () -> mediaTypes);
assertEquals(IMAGE_GIF, actual);
@ -56,7 +62,7 @@ public class HandlerResultHandlerTests {
@Test
public void producibleMediaTypesRequestAttribute() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path").build());
exchange.getAttributes().put(HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, Collections.singleton(IMAGE_GIF));
List<MediaType> mediaTypes = Arrays.asList(IMAGE_JPEG, IMAGE_GIF, IMAGE_PNG);
@ -67,9 +73,9 @@ public class HandlerResultHandlerTests {
@Test // SPR-9160
public void sortsByQuality() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/path")
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path")
.header("Accept", "text/plain; q=0.5, application/json")
.toExchange();
.build());
List<MediaType> mediaTypes = Arrays.asList(TEXT_PLAIN, APPLICATION_JSON_UTF8);
MediaType actual = this.resultHandler.selectMediaType(exchange, () -> mediaTypes);
@ -81,7 +87,7 @@ public class HandlerResultHandlerTests {
public void charsetFromAcceptHeader() throws Exception {
MediaType text8859 = MediaType.parseMediaType("text/plain;charset=ISO-8859-1");
MediaType textUtf8 = MediaType.parseMediaType("text/plain;charset=UTF-8");
MockServerWebExchange exchange = MockServerHttpRequest.get("/path").accept(text8859).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path").accept(text8859).build());
MediaType actual = this.resultHandler.selectMediaType(exchange, () -> Collections.singletonList(textUtf8));
assertEquals(text8859, actual);
@ -90,7 +96,7 @@ public class HandlerResultHandlerTests {
@Test // SPR-12894
public void noConcreteMediaType() throws Exception {
List<MediaType> producible = Collections.singletonList(ALL);
MockServerWebExchange exchange = MockServerHttpRequest.get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path").build());
MediaType actual = this.resultHandler.selectMediaType(exchange, () -> producible);
assertEquals(APPLICATION_OCTET_STREAM, actual);

View File

@ -20,7 +20,7 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.bind.annotation.RequestMethod;
import static org.junit.Assert.assertEquals;
@ -83,7 +83,8 @@ public class CompositeRequestConditionTests {
@Test
public void match() {
MockServerWebExchange exchange = MockServerHttpRequest.get("/path?param1=paramValue1").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/path?param1=paramValue1").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
RequestCondition<?> condition1 = new RequestMethodsRequestCondition(RequestMethod.GET, RequestMethod.POST);
RequestCondition<?> condition2 = new RequestMethodsRequestCondition(RequestMethod.GET);
@ -97,20 +98,20 @@ public class CompositeRequestConditionTests {
@Test
public void noMatch() {
CompositeRequestCondition cond = new CompositeRequestCondition(this.param1);
assertNull(cond.getMatchingCondition(MockServerHttpRequest.get("/").toExchange()));
assertNull(cond.getMatchingCondition(MockServerWebExchange.from(MockServerHttpRequest.get("/").build())));
}
@Test
public void matchEmpty() {
CompositeRequestCondition empty = new CompositeRequestCondition();
assertSame(empty, empty.getMatchingCondition(MockServerHttpRequest.get("/").toExchange()));
assertSame(empty, empty.getMatchingCondition(MockServerWebExchange.from(MockServerHttpRequest.get("/").build())));
}
@Test
public void compare() {
CompositeRequestCondition cond1 = new CompositeRequestCondition(this.param1);
CompositeRequestCondition cond3 = new CompositeRequestCondition(this.param3);
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
assertEquals(1, cond1.compareTo(cond3, exchange));
assertEquals(-1, cond3.compareTo(cond1, exchange));
@ -120,7 +121,7 @@ public class CompositeRequestConditionTests {
public void compareEmpty() {
CompositeRequestCondition empty = new CompositeRequestCondition();
CompositeRequestCondition notEmpty = new CompositeRequestCondition(this.param1);
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
assertEquals(0, empty.compareTo(empty, exchange));
assertEquals(-1, notEmpty.compareTo(empty, exchange));
@ -131,7 +132,7 @@ public class CompositeRequestConditionTests {
public void compareDifferentLength() {
CompositeRequestCondition cond1 = new CompositeRequestCondition(this.param1);
CompositeRequestCondition cond2 = new CompositeRequestCondition(this.param1, this.header1);
cond1.compareTo(cond2, MockServerHttpRequest.get("/").toExchange());
cond1.compareTo(cond2, MockServerWebExchange.from(MockServerHttpRequest.get("/").build()));
}

View File

@ -23,7 +23,7 @@ import org.junit.Test;
import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.reactive.result.condition.ConsumesRequestCondition.ConsumeMediaTypeExpression;
import static org.junit.Assert.assertEquals;
@ -101,7 +101,7 @@ public class ConsumesRequestConditionTests {
@Test
public void compareToSingle() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
ConsumesRequestCondition condition1 = new ConsumesRequestCondition("text/plain");
ConsumesRequestCondition condition2 = new ConsumesRequestCondition("text/*");
@ -115,7 +115,7 @@ public class ConsumesRequestConditionTests {
@Test
public void compareToMultiple() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
ConsumesRequestCondition condition1 = new ConsumesRequestCondition("*/*", "text/plain");
ConsumesRequestCondition condition2 = new ConsumesRequestCondition("text/*", "text/plain;q=0.7");
@ -188,7 +188,8 @@ public class ConsumesRequestConditionTests {
}
private MockServerWebExchange postExchange(String contentType) {
return MockServerHttpRequest.post("/").header(HttpHeaders.CONTENT_TYPE, contentType).toExchange();
return MockServerWebExchange.from(
MockServerHttpRequest.post("/").header(HttpHeaders.CONTENT_TYPE, contentType).build());
}
}

View File

@ -21,7 +21,7 @@ import java.util.Collection;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@ -47,7 +47,7 @@ public class HeadersRequestConditionTests {
@Test
public void headerPresent() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "").build());
HeadersRequestCondition condition = new HeadersRequestCondition("accept");
assertNotNull(condition.getMatchingCondition(exchange));
@ -55,7 +55,7 @@ public class HeadersRequestConditionTests {
@Test
public void headerPresentNoMatch() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("bar", "").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("bar", "").build());
HeadersRequestCondition condition = new HeadersRequestCondition("foo");
assertNull(condition.getMatchingCondition(exchange));
@ -63,7 +63,7 @@ public class HeadersRequestConditionTests {
@Test
public void headerNotPresent() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
HeadersRequestCondition condition = new HeadersRequestCondition("!accept");
assertNotNull(condition.getMatchingCondition(exchange));
@ -71,7 +71,7 @@ public class HeadersRequestConditionTests {
@Test
public void headerValueMatch() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("foo", "bar").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("foo", "bar").build());
HeadersRequestCondition condition = new HeadersRequestCondition("foo=bar");
assertNotNull(condition.getMatchingCondition(exchange));
@ -79,7 +79,7 @@ public class HeadersRequestConditionTests {
@Test
public void headerValueNoMatch() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("foo", "bazz").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("foo", "bazz").build());
HeadersRequestCondition condition = new HeadersRequestCondition("foo=bar");
assertNull(condition.getMatchingCondition(exchange));
@ -87,7 +87,7 @@ public class HeadersRequestConditionTests {
@Test
public void headerCaseSensitiveValueMatch() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("foo", "bar").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("foo", "bar").build());
HeadersRequestCondition condition = new HeadersRequestCondition("foo=Bar");
assertNull(condition.getMatchingCondition(exchange));
@ -95,7 +95,7 @@ public class HeadersRequestConditionTests {
@Test
public void headerValueMatchNegated() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("foo", "baz").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("foo", "baz").build());
HeadersRequestCondition condition = new HeadersRequestCondition("foo!=bar");
assertNotNull(condition.getMatchingCondition(exchange));
@ -103,7 +103,7 @@ public class HeadersRequestConditionTests {
@Test
public void headerValueNoMatchNegated() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("foo", "bar").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("foo", "bar").build());
HeadersRequestCondition condition = new HeadersRequestCondition("foo!=bar");
assertNull(condition.getMatchingCondition(exchange));
@ -111,7 +111,7 @@ public class HeadersRequestConditionTests {
@Test
public void compareTo() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
HeadersRequestCondition condition1 = new HeadersRequestCondition("foo", "bar", "baz");
HeadersRequestCondition condition2 = new HeadersRequestCondition("foo", "bar");
@ -136,7 +136,7 @@ public class HeadersRequestConditionTests {
@Test
public void getMatchingCondition() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("foo", "bar").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("foo", "bar").build());
HeadersRequestCondition condition = new HeadersRequestCondition("foo");
HeadersRequestCondition result = condition.getMatchingCondition(exchange);

View File

@ -20,7 +20,7 @@ import java.util.Collection;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import static org.junit.Assert.assertEquals;
@ -48,42 +48,42 @@ public class ParamsRequestConditionTests {
@Test
public void paramPresent() throws Exception {
ParamsRequestCondition condition = new ParamsRequestCondition("foo");
assertNotNull(condition.getMatchingCondition(get("/path?foo=").toExchange()));
assertNotNull(condition.getMatchingCondition(MockServerWebExchange.from(get("/path?foo=").build())));
}
@Test // SPR-15831
public void paramPresentNullValue() throws Exception {
ParamsRequestCondition condition = new ParamsRequestCondition("foo");
assertNotNull(condition.getMatchingCondition(get("/path?foo").toExchange()));
assertNotNull(condition.getMatchingCondition(MockServerWebExchange.from(get("/path?foo").build())));
}
@Test
public void paramPresentNoMatch() throws Exception {
ParamsRequestCondition condition = new ParamsRequestCondition("foo");
assertNull(condition.getMatchingCondition(get("/path?bar=").toExchange()));
assertNull(condition.getMatchingCondition(MockServerWebExchange.from(get("/path?bar=").build())));
}
@Test
public void paramNotPresent() throws Exception {
MockServerWebExchange exchange = get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/").build());
assertNotNull(new ParamsRequestCondition("!foo").getMatchingCondition(exchange));
}
@Test
public void paramValueMatch() throws Exception {
ParamsRequestCondition condition = new ParamsRequestCondition("foo=bar");
assertNotNull(condition.getMatchingCondition(get("/path?foo=bar").toExchange()));
assertNotNull(condition.getMatchingCondition(MockServerWebExchange.from(get("/path?foo=bar").build())));
}
@Test
public void paramValueNoMatch() throws Exception {
ParamsRequestCondition condition = new ParamsRequestCondition("foo=bar");
assertNull(condition.getMatchingCondition(get("/path?foo=bazz").toExchange()));
assertNull(condition.getMatchingCondition(MockServerWebExchange.from(get("/path?foo=bazz").build())));
}
@Test
public void compareTo() throws Exception {
ServerWebExchange exchange = get("/").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/").build());
ParamsRequestCondition condition1 = new ParamsRequestCondition("foo", "bar", "baz");
ParamsRequestCondition condition2 = new ParamsRequestCondition("foo", "bar");

View File

@ -22,7 +22,7 @@ import java.util.stream.Collectors;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.util.pattern.PathPattern;
import org.springframework.web.util.pattern.PathPatternParser;
@ -80,7 +80,8 @@ public class PatternsRequestConditionTests {
@Test
public void matchDirectPath() throws Exception {
PatternsRequestCondition condition = createPatternsCondition("/foo");
PatternsRequestCondition match = condition.getMatchingCondition(get("/foo").toExchange());
MockServerWebExchange exchange = MockServerWebExchange.from(get("/foo").build());
PatternsRequestCondition match = condition.getMatchingCondition(exchange);
assertNotNull(match);
}
@ -88,7 +89,8 @@ public class PatternsRequestConditionTests {
@Test
public void matchPattern() throws Exception {
PatternsRequestCondition condition = createPatternsCondition("/foo/*");
PatternsRequestCondition match = condition.getMatchingCondition(get("/foo/bar").toExchange());
MockServerWebExchange exchange = MockServerWebExchange.from(get("/foo/bar").build());
PatternsRequestCondition match = condition.getMatchingCondition(exchange);
assertNotNull(match);
}
@ -96,7 +98,8 @@ public class PatternsRequestConditionTests {
@Test
public void matchSortPatterns() throws Exception {
PatternsRequestCondition condition = createPatternsCondition("/*/*", "/foo/bar", "/foo/*");
PatternsRequestCondition match = condition.getMatchingCondition(get("/foo/bar").toExchange());
MockServerWebExchange exchange = MockServerWebExchange.from(get("/foo/bar").build());
PatternsRequestCondition match = condition.getMatchingCondition(exchange);
PatternsRequestCondition expected = createPatternsCondition("/foo/bar", "/foo/*", "/*/*");
assertEquals(expected, match);
@ -104,7 +107,7 @@ public class PatternsRequestConditionTests {
@Test
public void matchTrailingSlash() throws Exception {
MockServerWebExchange exchange = get("/foo/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/foo/").build());
PatternsRequestCondition condition = createPatternsCondition("/foo");
PatternsRequestCondition match = condition.getMatchingCondition(exchange);
@ -123,7 +126,7 @@ public class PatternsRequestConditionTests {
PathPatternParser parser = new PathPatternParser();
parser.setMatchOptionalTrailingSeparator(false);
condition = new PatternsRequestCondition(parser.parse("/foo"));
match = condition.getMatchingCondition(get("/foo/").toExchange());
match = condition.getMatchingCondition(MockServerWebExchange.from(get("/foo/").build()));
assertNull(match);
}
@ -131,7 +134,8 @@ public class PatternsRequestConditionTests {
@Test
public void matchPatternContainsExtension() throws Exception {
PatternsRequestCondition condition = createPatternsCondition("/foo.jpg");
PatternsRequestCondition match = condition.getMatchingCondition(get("/foo.html").toExchange());
MockServerWebExchange exchange = MockServerWebExchange.from(get("/foo.html").build());
PatternsRequestCondition match = condition.getMatchingCondition(exchange);
assertNull(match);
}
@ -141,7 +145,7 @@ public class PatternsRequestConditionTests {
PatternsRequestCondition c1 = createPatternsCondition("/foo*");
PatternsRequestCondition c2 = createPatternsCondition("/foo*");
assertEquals(0, c1.compareTo(c2, get("/foo").toExchange()));
assertEquals(0, c1.compareTo(c2, MockServerWebExchange.from(get("/foo").build())));
}
@Test
@ -155,7 +159,7 @@ public class PatternsRequestConditionTests {
@Test
public void comparePatternSpecificity() throws Exception {
ServerWebExchange exchange = get("/foo").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/foo").build());
PatternsRequestCondition c1 = createPatternsCondition("/fo*");
PatternsRequestCondition c2 = createPatternsCondition("/foo");
@ -170,7 +174,7 @@ public class PatternsRequestConditionTests {
@Test
public void compareNumberOfMatchingPatterns() throws Exception {
ServerWebExchange exchange = get("/foo.html").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/foo.html").build());
PatternsRequestCondition c1 = createPatternsCondition("/foo.*", "/foo.jpeg");
PatternsRequestCondition c2 = createPatternsCondition("/foo.*", "/foo.html");

View File

@ -22,7 +22,7 @@ import java.util.Collections;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange;
import static org.junit.Assert.assertEquals;
@ -41,7 +41,7 @@ public class ProducesRequestConditionTests {
@Test
public void match() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "text/plain").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "text/plain").build());
ProducesRequestCondition condition = new ProducesRequestCondition("text/plain");
assertNotNull(condition.getMatchingCondition(exchange));
@ -49,7 +49,7 @@ public class ProducesRequestConditionTests {
@Test
public void matchNegated() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "text/plain").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "text/plain").build());
ProducesRequestCondition condition = new ProducesRequestCondition("!text/plain");
assertNull(condition.getMatchingCondition(exchange));
@ -63,7 +63,7 @@ public class ProducesRequestConditionTests {
@Test
public void matchWildcard() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "text/plain").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "text/plain").build());
ProducesRequestCondition condition = new ProducesRequestCondition("text/*");
assertNotNull(condition.getMatchingCondition(exchange));
@ -71,7 +71,7 @@ public class ProducesRequestConditionTests {
@Test
public void matchMultiple() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "text/plain").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "text/plain").build());
ProducesRequestCondition condition = new ProducesRequestCondition("text/plain", "application/xml");
assertNotNull(condition.getMatchingCondition(exchange));
@ -79,7 +79,7 @@ public class ProducesRequestConditionTests {
@Test
public void matchSingle() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "application/xml").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "application/xml").build());
ProducesRequestCondition condition = new ProducesRequestCondition("text/plain");
assertNull(condition.getMatchingCondition(exchange));
@ -87,7 +87,7 @@ public class ProducesRequestConditionTests {
@Test
public void matchParseError() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "bogus").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "bogus").build());
ProducesRequestCondition condition = new ProducesRequestCondition("text/plain");
assertNull(condition.getMatchingCondition(exchange));
@ -95,7 +95,7 @@ public class ProducesRequestConditionTests {
@Test
public void matchParseErrorWithNegation() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "bogus").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "bogus").build());
ProducesRequestCondition condition = new ProducesRequestCondition("!text/plain");
assertNull(condition.getMatchingCondition(exchange));
@ -107,7 +107,7 @@ public class ProducesRequestConditionTests {
ProducesRequestCondition xml = new ProducesRequestCondition("application/xml");
ProducesRequestCondition none = new ProducesRequestCondition();
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "application/xml, text/html").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "application/xml, text/html").build());
assertTrue(html.compareTo(xml, exchange) > 0);
assertTrue(xml.compareTo(html, exchange) < 0);
@ -116,18 +116,21 @@ public class ProducesRequestConditionTests {
assertTrue(html.compareTo(none, exchange) < 0);
assertTrue(none.compareTo(html, exchange) > 0);
exchange = MockServerHttpRequest.get("/").header("Accept", "application/xml, text/*").toExchange();
exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/").header("Accept", "application/xml, text/*").build());
assertTrue(html.compareTo(xml, exchange) > 0);
assertTrue(xml.compareTo(html, exchange) < 0);
exchange = MockServerHttpRequest.get("/").header("Accept", "application/pdf").toExchange();
exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/").header("Accept", "application/pdf").build());
assertTrue(html.compareTo(xml, exchange) == 0);
assertTrue(xml.compareTo(html, exchange) == 0);
// See SPR-7000
exchange = MockServerHttpRequest.get("/").header("Accept", "text/html;q=0.9,application/xml").toExchange();
exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/").header("Accept", "text/html;q=0.9,application/xml").build());
assertTrue(html.compareTo(xml, exchange) > 0);
assertTrue(xml.compareTo(html, exchange) < 0);
@ -135,7 +138,7 @@ public class ProducesRequestConditionTests {
@Test
public void compareToWithSingleExpression() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "text/plain").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "text/plain").build());
ProducesRequestCondition condition1 = new ProducesRequestCondition("text/plain");
ProducesRequestCondition condition2 = new ProducesRequestCondition("text/*");
@ -152,7 +155,7 @@ public class ProducesRequestConditionTests {
ProducesRequestCondition condition1 = new ProducesRequestCondition("*/*", "text/plain");
ProducesRequestCondition condition2 = new ProducesRequestCondition("text/*", "text/plain;q=0.7");
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "text/plain").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "text/plain").build());
int result = condition1.compareTo(condition2, exchange);
assertTrue("Invalid comparison result: " + result, result < 0);
@ -166,7 +169,8 @@ public class ProducesRequestConditionTests {
ProducesRequestCondition condition1 = new ProducesRequestCondition("text/*", "text/plain");
ProducesRequestCondition condition2 = new ProducesRequestCondition("application/*", "application/xml");
ServerWebExchange exchange = get("/").header("Accept", "text/plain", "application/xml").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(
get("/").header("Accept", "text/plain", "application/xml").build());
int result = condition1.compareTo(condition2, exchange);
assertTrue("Invalid comparison result: " + result, result < 0);
@ -174,7 +178,8 @@ public class ProducesRequestConditionTests {
result = condition2.compareTo(condition1, exchange);
assertTrue("Invalid comparison result: " + result, result > 0);
exchange = MockServerHttpRequest.get("/").header("Accept", "application/xml", "text/plain").toExchange();
exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/").header("Accept", "application/xml", "text/plain").build());
result = condition1.compareTo(condition2, exchange);
assertTrue("Invalid comparison result: " + result, result > 0);
@ -187,7 +192,7 @@ public class ProducesRequestConditionTests {
@Test
public void compareToMediaTypeAll() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
ProducesRequestCondition condition1 = new ProducesRequestCondition();
ProducesRequestCondition condition2 = new ProducesRequestCondition("application/json");
@ -203,7 +208,8 @@ public class ProducesRequestConditionTests {
assertTrue(condition1.compareTo(condition2, exchange) < 0);
assertTrue(condition2.compareTo(condition1, exchange) > 0);
exchange = MockServerHttpRequest.get("/").header("Accept", "*/*").toExchange();
exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/").header("Accept", "*/*").build());
condition1 = new ProducesRequestCondition();
condition2 = new ProducesRequestCondition("application/json");
@ -222,7 +228,7 @@ public class ProducesRequestConditionTests {
@Test
public void compareToMediaTypeAllWithParameter() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "*/*;q=0.9").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "*/*;q=0.9").build());
ProducesRequestCondition condition1 = new ProducesRequestCondition();
ProducesRequestCondition condition2 = new ProducesRequestCondition("application/json");
@ -233,7 +239,7 @@ public class ProducesRequestConditionTests {
@Test
public void compareToEqualMatch() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "text/*").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "text/*").build());
ProducesRequestCondition condition1 = new ProducesRequestCondition("text/plain");
ProducesRequestCondition condition2 = new ProducesRequestCondition("text/xhtml");
@ -274,7 +280,7 @@ public class ProducesRequestConditionTests {
@Test
public void getMatchingCondition() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("Accept", "text/plain").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("Accept", "text/plain").build());
ProducesRequestCondition condition = new ProducesRequestCondition("text/plain", "application/xml");

View File

@ -19,7 +19,7 @@ package org.springframework.web.reactive.result.condition;
import org.junit.Test;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.bind.annotation.RequestMethod;
import static org.junit.Assert.assertEquals;
@ -34,7 +34,7 @@ import static org.junit.Assert.assertSame;
*/
public class RequestConditionHolderTests {
private final MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
private final MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
@Test

View File

@ -29,7 +29,7 @@ import org.junit.rules.ExpectedException;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.reactive.result.method.RequestMappingInfo;
import org.springframework.web.server.ServerWebExchange;
@ -87,7 +87,7 @@ public class RequestMappingInfoTests {
@Test
public void matchPatternsCondition() {
MockServerWebExchange exchange = MockServerHttpRequest.get("/foo").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/foo").build());
RequestMappingInfo info = paths("/foo*", "/bar").build();
RequestMappingInfo expected = paths("/foo*").build();
@ -102,7 +102,8 @@ public class RequestMappingInfoTests {
@Test
public void matchParamsCondition() {
ServerWebExchange exchange = MockServerHttpRequest.get("/foo?foo=bar").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/foo?foo=bar").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
RequestMappingInfo info = paths("/foo").params("foo=bar").build();
RequestMappingInfo match = info.getMatchingCondition(exchange);
@ -117,7 +118,8 @@ public class RequestMappingInfoTests {
@Test
public void matchHeadersCondition() {
ServerWebExchange exchange = MockServerHttpRequest.get("/foo").header("foo", "bar").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/foo").header("foo", "bar").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
RequestMappingInfo info = paths("/foo").headers("foo=bar").build();
RequestMappingInfo match = info.getMatchingCondition(exchange);
@ -132,7 +134,8 @@ public class RequestMappingInfoTests {
@Test
public void matchConsumesCondition() {
ServerWebExchange exchange = MockServerHttpRequest.post("/foo").contentType(MediaType.TEXT_PLAIN).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.post("/foo").contentType(MediaType.TEXT_PLAIN).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
RequestMappingInfo info = paths("/foo").consumes("text/plain").build();
RequestMappingInfo match = info.getMatchingCondition(exchange);
@ -147,7 +150,8 @@ public class RequestMappingInfoTests {
@Test
public void matchProducesCondition() {
ServerWebExchange exchange = MockServerHttpRequest.get("/foo").accept(MediaType.TEXT_PLAIN).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/foo").accept(MediaType.TEXT_PLAIN).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
RequestMappingInfo info = paths("/foo").produces("text/plain").build();
RequestMappingInfo match = info.getMatchingCondition(exchange);
@ -162,7 +166,8 @@ public class RequestMappingInfoTests {
@Test
public void matchCustomCondition() {
ServerWebExchange exchange = MockServerHttpRequest.get("/foo?foo=bar").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/foo?foo=bar").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
RequestMappingInfo info = paths("/foo").params("foo=bar").build();
RequestMappingInfo match = info.getMatchingCondition(exchange);
@ -183,7 +188,7 @@ public class RequestMappingInfoTests {
RequestMappingInfo oneMethod = paths().methods(RequestMethod.GET).build();
RequestMappingInfo oneMethodOneParam = paths().methods(RequestMethod.GET).params("foo").build();
ServerWebExchange exchange = MockServerHttpRequest.get("/foo").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/foo").build());
Comparator<RequestMappingInfo> comparator = (info, otherInfo) -> info.compareTo(otherInfo, exchange);
List<RequestMappingInfo> list = asList(none, oneMethod, oneMethodOneParam);
@ -279,10 +284,10 @@ public class RequestMappingInfoTests {
@Test
@Ignore
public void preFlightRequest() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.options("/foo")
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.options("/foo")
.header("Origin", "http://domain.com")
.header(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "POST")
.toExchange();
.build());
RequestMappingInfo info = paths("/foo").methods(RequestMethod.POST).build();
RequestMappingInfo match = info.getMatchingCondition(exchange);

View File

@ -25,6 +25,7 @@ import org.junit.Test;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.server.ServerWebExchange;
@ -138,7 +139,7 @@ public class RequestMethodsRequestConditionTests {
}
private ServerWebExchange getExchange(String method) throws URISyntaxException {
return MockServerHttpRequest.method(HttpMethod.valueOf(method), "/").toExchange();
return MockServerWebExchange.from(MockServerHttpRequest.method(HttpMethod.valueOf(method), "/").build());
}
}

View File

@ -27,6 +27,7 @@ import reactor.test.StepVerifier;
import org.springframework.http.server.PathContainer;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.method.HandlerMethod;
@ -74,7 +75,8 @@ public class HandlerMethodMappingTests {
public void directMatch() throws Exception {
String key = "foo";
this.mapping.registerMapping(key, this.handler, this.method1);
Mono<Object> result = this.mapping.getHandler(MockServerHttpRequest.get(key).toExchange());
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get(key).build());
Mono<Object> result = this.mapping.getHandler(exchange);
assertEquals(this.method1, ((HandlerMethod) result.block()).getMethod());
}
@ -84,7 +86,8 @@ public class HandlerMethodMappingTests {
this.mapping.registerMapping("/fo*", this.handler, this.method1);
this.mapping.registerMapping("/f*", this.handler, this.method2);
Mono<Object> result = this.mapping.getHandler(MockServerHttpRequest.get("/foo").toExchange());
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/foo").build());
Mono<Object> result = this.mapping.getHandler(exchange);
assertEquals(this.method1, ((HandlerMethod) result.block()).getMethod());
}
@ -92,7 +95,8 @@ public class HandlerMethodMappingTests {
public void ambiguousMatch() throws Exception {
this.mapping.registerMapping("/f?o", this.handler, this.method1);
this.mapping.registerMapping("/fo?", this.handler, this.method2);
Mono<Object> result = this.mapping.getHandler(MockServerHttpRequest.get("/foo").toExchange());
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/foo").build());
Mono<Object> result = this.mapping.getHandler(exchange);
StepVerifier.create(result).expectError(IllegalStateException.class).verify();
}
@ -124,12 +128,12 @@ public class HandlerMethodMappingTests {
public void unregisterMapping() throws Exception {
String key = "foo";
this.mapping.registerMapping(key, this.handler, this.method1);
Mono<Object> result = this.mapping.getHandler(MockServerHttpRequest.get(key).toExchange());
Mono<Object> result = this.mapping.getHandler(MockServerWebExchange.from(MockServerHttpRequest.get(key).build()));
assertNotNull(result.block());
this.mapping.unregisterMapping(key);
result = this.mapping.getHandler(MockServerHttpRequest.get(key).toExchange());
result = this.mapping.getHandler(MockServerWebExchange.from(MockServerHttpRequest.get(key).build()));
assertNull(result.block());
assertThat(this.mapping.getMappingRegistry().getMappings().keySet(), Matchers.not(Matchers.contains(key)));

View File

@ -25,7 +25,7 @@ import reactor.test.StepVerifier;
import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.reactive.BindingContext;
import org.springframework.web.reactive.HandlerResult;
@ -46,7 +46,7 @@ import static org.springframework.web.method.ResolvableMethod.*;
public class InvocableHandlerMethodTests {
private final MockServerWebExchange exchange =
MockServerHttpRequest.get("http://localhost:8080/path").toExchange();
MockServerWebExchange.from(MockServerHttpRequest.get("http://localhost:8080/path").build());
@Test

View File

@ -36,6 +36,7 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.stereotype.Controller;
import org.springframework.util.ClassUtils;
import org.springframework.util.MultiValueMap;
@ -63,6 +64,8 @@ import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThat;
import static org.springframework.mock.http.server.reactive.test.MockServerHttpRequest.get;
import static org.springframework.mock.http.server.reactive.test.MockServerHttpRequest.method;
import static org.springframework.mock.http.server.reactive.test.MockServerHttpRequest.post;
import static org.springframework.mock.http.server.reactive.test.MockServerHttpRequest.put;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.HEAD;
import static org.springframework.web.bind.annotation.RequestMethod.OPTIONS;
@ -95,7 +98,7 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void getHandlerDirectMatch() throws Exception {
Method expected = on(TestController.class).annot(getMapping("/foo").params()).resolveMethod();
ServerWebExchange exchange = get("/foo").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/foo").build());
HandlerMethod hm = (HandlerMethod) this.handlerMapping.getHandler(exchange).block();
assertEquals(expected, hm.getMethod());
@ -104,7 +107,7 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void getHandlerGlobMatch() throws Exception {
Method expected = on(TestController.class).annot(requestMapping("/ba*").method(GET, HEAD)).resolveMethod();
ServerWebExchange exchange = get("/bar").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/bar").build());
HandlerMethod hm = (HandlerMethod) this.handlerMapping.getHandler(exchange).block();
assertEquals(expected, hm.getMethod());
@ -113,11 +116,11 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void getHandlerEmptyPathMatch() throws Exception {
Method expected = on(TestController.class).annot(requestMapping("")).resolveMethod();
ServerWebExchange exchange = get("").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("").build());
HandlerMethod hm = (HandlerMethod) this.handlerMapping.getHandler(exchange).block();
assertEquals(expected, hm.getMethod());
exchange = get("/").toExchange();
exchange = MockServerWebExchange.from(get("/").build());
hm = (HandlerMethod) this.handlerMapping.getHandler(exchange).block();
assertEquals(expected, hm.getMethod());
}
@ -125,7 +128,7 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void getHandlerBestMatch() throws Exception {
Method expected = on(TestController.class).annot(getMapping("/foo").params("p")).resolveMethod();
ServerWebExchange exchange = get("/foo?p=anything").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/foo?p=anything").build());
HandlerMethod hm = (HandlerMethod) this.handlerMapping.getHandler(exchange).block();
assertEquals(expected, hm.getMethod());
@ -133,7 +136,7 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void getHandlerRequestMethodNotAllowed() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.post("/bar").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(post("/bar").build());
Mono<Object> mono = this.handlerMapping.getHandler(exchange);
assertError(mono, MethodNotAllowedException.class,
@ -142,7 +145,7 @@ public class RequestMappingInfoHandlerMappingTests {
@Test // SPR-9603
public void getHandlerRequestMethodMatchFalsePositive() throws Exception {
ServerWebExchange exchange = get("/users").accept(MediaType.APPLICATION_XML).toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/users").accept(MediaType.APPLICATION_XML).build());
this.handlerMapping.registerHandler(new UserController());
Mono<Object> mono = this.handlerMapping.getHandler(exchange);
@ -160,7 +163,8 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void getHandlerTestInvalidContentType() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.put("/person/1").header("content-type", "bogus").toExchange();
MockServerHttpRequest request = put("/person/1").header("content-type", "bogus").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Object> mono = this.handlerMapping.getHandler(exchange);
assertError(mono, UnsupportedMediaTypeStatusException.class,
@ -176,7 +180,7 @@ public class RequestMappingInfoHandlerMappingTests {
@Test // SPR-12854
public void getHandlerTestRequestParamMismatch() throws Exception {
ServerWebExchange exchange = get("/params").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/params").build());
Mono<Object> mono = this.handlerMapping.getHandler(exchange);
assertError(mono, ServerWebInputException.class, ex -> {
assertThat(ex.getReason(), containsString("[foo=bar]"));
@ -194,13 +198,13 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void getHandlerProducibleMediaTypesAttribute() throws Exception {
ServerWebExchange exchange = get("/content").accept(MediaType.APPLICATION_XML).toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/content").accept(MediaType.APPLICATION_XML).build());
this.handlerMapping.getHandler(exchange).block();
String name = HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE;
assertEquals(Collections.singleton(MediaType.APPLICATION_XML), exchange.getAttributes().get(name));
exchange = get("/content").accept(MediaType.APPLICATION_JSON).toExchange();
exchange = MockServerWebExchange.from(get("/content").accept(MediaType.APPLICATION_JSON).build());
this.handlerMapping.getHandler(exchange).block();
assertNull("Negated expression shouldn't be listed as producible type",
@ -210,7 +214,7 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
@SuppressWarnings("unchecked")
public void handleMatchUriTemplateVariables() throws Exception {
ServerWebExchange exchange = get("/1/2").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/1/2").build());
RequestMappingInfo key = paths("/{path1}/{path2}").build();
this.handlerMapping.handleMatch(key, handlerMethod, exchange);
@ -227,7 +231,7 @@ public class RequestMappingInfoHandlerMappingTests {
public void handleMatchUriTemplateVariablesDecode() throws Exception {
RequestMappingInfo key = paths("/{group}/{identifier}").build();
URI url = URI.create("/group/a%2Fb");
ServerWebExchange exchange = method(HttpMethod.GET, url).toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(method(HttpMethod.GET, url).build());
this.handlerMapping.handleMatch(key, handlerMethod, exchange);
@ -243,7 +247,7 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void handleMatchBestMatchingPatternAttribute() throws Exception {
RequestMappingInfo key = paths("/{path1}/2", "/**").build();
ServerWebExchange exchange = get("/1/2").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/1/2").build());
this.handlerMapping.handleMatch(key, handlerMethod, exchange);
PathPattern bestMatch = (PathPattern) exchange.getAttributes().get(BEST_MATCHING_PATTERN_ATTRIBUTE);
@ -256,7 +260,7 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void handleMatchBestMatchingPatternAttributeNoPatternsDefined() throws Exception {
RequestMappingInfo key = paths().build();
ServerWebExchange exchange = get("/1/2").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/1/2").build());
this.handlerMapping.handleMatch(key, handlerMethod, exchange);
PathPattern bestMatch = (PathPattern) exchange.getAttributes().get(BEST_MATCHING_PATTERN_ATTRIBUTE);
@ -268,7 +272,7 @@ public class RequestMappingInfoHandlerMappingTests {
MultiValueMap<String, String> matrixVariables;
Map<String, String> uriVariables;
ServerWebExchange exchange = get("/cars;colors=red,blue,green;year=2012").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get("/cars;colors=red,blue,green;year=2012").build());
handleMatch(exchange, "/{cars}");
matrixVariables = getMatrixVariables(exchange, "cars");
@ -282,7 +286,8 @@ public class RequestMappingInfoHandlerMappingTests {
@Test
public void handleMatchMatrixVariablesDecoding() throws Exception {
ServerWebExchange exchange = method(HttpMethod.GET, URI.create("/path;mvar=a%2fb")).toExchange();
MockServerHttpRequest request = method(HttpMethod.GET, URI.create("/path;mvar=a%2fb")).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
handleMatch(exchange, "/{filter}");
MultiValueMap<String, String> matrixVariables = getMatrixVariables(exchange, "filter");
@ -305,7 +310,8 @@ public class RequestMappingInfoHandlerMappingTests {
}
private void testHttpMediaTypeNotSupportedException(String url) throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.put(url).contentType(MediaType.APPLICATION_JSON).toExchange();
MockServerHttpRequest request = put(url).contentType(MediaType.APPLICATION_JSON).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Object> mono = this.handlerMapping.getHandler(exchange);
assertError(mono, UnsupportedMediaTypeStatusException.class, ex ->
@ -315,7 +321,7 @@ public class RequestMappingInfoHandlerMappingTests {
}
private void testHttpOptions(String requestURI, Set<HttpMethod> allowedMethods) throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.options(requestURI).toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.options(requestURI).build());
HandlerMethod handlerMethod = (HandlerMethod) this.handlerMapping.getHandler(exchange).block();
BindingContext bindingContext = new BindingContext();
@ -332,7 +338,7 @@ public class RequestMappingInfoHandlerMappingTests {
}
private void testMediaTypeNotAcceptable(String url) throws Exception {
ServerWebExchange exchange = get(url).accept(MediaType.APPLICATION_JSON).toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(get(url).accept(MediaType.APPLICATION_JSON).build());
Mono<Object> mono = this.handlerMapping.getHandler(exchange);
assertError(mono, NotAcceptableStatusException.class, ex ->

View File

@ -28,7 +28,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.ClassUtils;
@ -53,7 +53,8 @@ import static org.mockito.Mockito.mock;
*/
public class ControllerAdviceTests {
private final MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
private final MockServerWebExchange exchange =
MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
@Test

View File

@ -29,11 +29,10 @@ import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.core.annotation.SynthesizingMethodParameter;
import org.springframework.http.HttpCookie;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.reactive.BindingContext;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.ServerWebInputException;
import static org.junit.Assert.assertEquals;
@ -98,7 +97,7 @@ public class CookieValueMethodArgumentResolverTests {
@Test
public void resolveCookieArgument() {
HttpCookie expected = new HttpCookie("name", "foo");
ServerWebExchange exchange = MockServerHttpRequest.get("/").cookie(expected).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").cookie(expected).build());
Mono<Object> mono = this.resolver.resolveArgument(
this.cookieParameter, this.bindingContext, exchange);
@ -109,7 +108,7 @@ public class CookieValueMethodArgumentResolverTests {
@Test
public void resolveCookieStringArgument() {
HttpCookie cookie = new HttpCookie("name", "foo");
ServerWebExchange exchange = MockServerHttpRequest.get("/").cookie(cookie).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").cookie(cookie).build());
Mono<Object> mono = this.resolver.resolveArgument(
this.cookieStringParameter, this.bindingContext, exchange);
@ -119,7 +118,7 @@ public class CookieValueMethodArgumentResolverTests {
@Test
public void resolveCookieDefaultValue() {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
Object result = this.resolver.resolveArgument(this.cookieStringParameter, this.bindingContext, exchange).block();
assertTrue(result instanceof String);
@ -128,7 +127,7 @@ public class CookieValueMethodArgumentResolverTests {
@Test
public void notFound() {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
Mono<Object> mono = resolver.resolveArgument(this.cookieParameter, this.bindingContext, exchange);
StepVerifier.create(mono)
.expectNextCount(0)

View File

@ -27,7 +27,7 @@ import org.springframework.core.MethodParameter;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.core.ResolvableType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.ModelAttribute;
@ -53,7 +53,7 @@ public class ErrorsArgumentResolverTests {
private BindingResult bindingResult;
private MockServerWebExchange exchange = MockServerHttpRequest.post("/path").toExchange();
private MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.post("/path").build());
private final ResolvableMethod testMethod = ResolvableMethod.on(getClass()).named("handle").build();

View File

@ -27,7 +27,7 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext
import org.springframework.core.MethodParameter;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.reactive.BindingContext;
@ -45,7 +45,7 @@ public class ExpressionValueMethodArgumentResolverTests {
private ExpressionValueMethodArgumentResolver resolver;
private final MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
private final MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
private MethodParameter paramSystemProperty;
private MethodParameter paramNotSupported;

View File

@ -40,7 +40,7 @@ import org.springframework.http.HttpEntity;
import org.springframework.http.RequestEntity;
import org.springframework.http.codec.DecoderHttpMessageReader;
import org.springframework.http.codec.HttpMessageReader;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.ObjectUtils;
import org.springframework.web.method.ResolvableMethod;
import org.springframework.web.reactive.BindingContext;
@ -303,7 +303,7 @@ public class HttpEntityArgumentResolverTests {
private MockServerWebExchange postExchange(String body) {
return post("/path").header("foo", "bar").contentType(TEXT_PLAIN).body(body).toExchange();
return MockServerWebExchange.from(post("/path").header("foo", "bar").contentType(TEXT_PLAIN).body(body));
}
private ResolvableType httpEntityType(Class<?> bodyType, Class<?>... generics) {
@ -328,7 +328,7 @@ public class HttpEntityArgumentResolverTests {
@SuppressWarnings("unchecked")
private <T> HttpEntity<T> resolveValueWithEmptyBody(ResolvableType type) {
ServerWebExchange exchange = post("/path").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(post("/path").build());
MethodParameter param = this.testMethod.arg(type);
Mono<Object> result = this.resolver.resolveArgument(param, new BindingContext(), exchange);
HttpEntity<String> httpEntity = (HttpEntity<String>) result.block(Duration.ofSeconds(5));

View File

@ -28,6 +28,7 @@ import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.core.convert.ConversionService;
import org.springframework.format.support.DefaultFormattingConversionService;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestParam;
@ -35,7 +36,6 @@ import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.reactive.BindingContext;
import org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver;
import org.springframework.web.reactive.result.method.SyncInvocableHandlerMethod;
import org.springframework.web.server.ServerWebExchange;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@ -55,7 +55,7 @@ public class InitBinderBindingContextTests {
@Test
public void createBinder() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
BindingContext context = createBindingContext("initBinder", WebDataBinder.class);
WebDataBinder dataBinder = context.createDataBinder(exchange, null, null);
@ -68,7 +68,7 @@ public class InitBinderBindingContextTests {
ConversionService conversionService = new DefaultFormattingConversionService();
bindingInitializer.setConversionService(conversionService);
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
BindingContext context = createBindingContext("initBinder", WebDataBinder.class);
WebDataBinder dataBinder = context.createDataBinder(exchange, null, null);
@ -77,7 +77,7 @@ public class InitBinderBindingContextTests {
@Test
public void createBinderWithAttrName() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
BindingContext context = createBindingContext("initBinderWithAttributeName", WebDataBinder.class);
WebDataBinder dataBinder = context.createDataBinder(exchange, null, "foo");
@ -87,7 +87,7 @@ public class InitBinderBindingContextTests {
@Test
public void createBinderWithAttrNameNoMatch() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
BindingContext context = createBindingContext("initBinderWithAttributeName", WebDataBinder.class);
WebDataBinder dataBinder = context.createDataBinder(exchange, null, "invalidName");
@ -96,7 +96,7 @@ public class InitBinderBindingContextTests {
@Test
public void createBinderNullAttrName() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
BindingContext context = createBindingContext("initBinderWithAttributeName", WebDataBinder.class);
WebDataBinder dataBinder = context.createDataBinder(exchange, null, null);
@ -105,14 +105,15 @@ public class InitBinderBindingContextTests {
@Test(expected = IllegalStateException.class)
public void returnValueNotExpected() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
BindingContext context = createBindingContext("initBinderReturnValue", WebDataBinder.class);
context.createDataBinder(exchange, null, "invalidName");
}
@Test
public void createBinderTypeConversion() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/path?requestParam=22").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/path?requestParam=22").build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
this.argumentResolvers.add(new RequestParamMethodArgumentResolver(null, adapterRegistry, false));

View File

@ -46,6 +46,8 @@ import org.springframework.http.codec.DecoderHttpMessageReader;
import org.springframework.http.codec.HttpMessageReader;
import org.springframework.http.codec.json.Jackson2JsonDecoder;
import org.springframework.lang.Nullable;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import org.springframework.validation.annotation.Validated;
@ -57,9 +59,12 @@ import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.ServerWebInputException;
import org.springframework.web.server.UnsupportedMediaTypeStatusException;
import static org.junit.Assert.*;
import static org.springframework.core.ResolvableType.*;
import static org.springframework.mock.http.server.reactive.test.MockServerHttpRequest.*;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.springframework.core.ResolvableType.forClassWithGenerics;
import static org.springframework.mock.http.server.reactive.test.MockServerHttpRequest.post;
/**
* Unit tests for {@link AbstractMessageReaderArgumentResolver}.
@ -86,7 +91,8 @@ public class MessageReaderArgumentResolverTests {
@SuppressWarnings("unchecked")
@Test
public void missingContentType() throws Exception {
ServerWebExchange exchange = post("/path").body("{\"bar\":\"BARBAR\",\"foo\":\"FOOFOO\"}").toExchange();
MockServerHttpRequest request = post("/path").body("{\"bar\":\"BARBAR\",\"foo\":\"FOOFOO\"}");
ServerWebExchange exchange = MockServerWebExchange.from(request);
ResolvableType type = forClassWithGenerics(Mono.class, TestBean.class);
MethodParameter param = this.testMethod.arg(type);
Mono<Object> result = this.resolver.readBody(param, true, this.bindingContext, exchange);
@ -99,7 +105,8 @@ public class MessageReaderArgumentResolverTests {
@Test @SuppressWarnings("unchecked") // SPR-9942
public void emptyBody() throws Exception {
ServerWebExchange exchange = post("/path").contentType(MediaType.APPLICATION_JSON).toExchange();
MockServerHttpRequest request = post("/path").contentType(MediaType.APPLICATION_JSON).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
ResolvableType type = forClassWithGenerics(Mono.class, TestBean.class);
MethodParameter param = this.testMethod.arg(type);
Mono<TestBean> result = (Mono<TestBean>) this.resolver.readBody(
@ -292,7 +299,8 @@ public class MessageReaderArgumentResolverTests {
@SuppressWarnings("unchecked")
private <T> T resolveValue(MethodParameter param, String body) {
ServerWebExchange exchange = post("/path").contentType(MediaType.APPLICATION_JSON).body(body).toExchange();
MockServerHttpRequest request = post("/path").contentType(MediaType.APPLICATION_JSON).body(body);
ServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Object> result = this.resolver.readBody(param, true, this.bindingContext, exchange);
Object value = result.block(Duration.ofSeconds(5));

View File

@ -47,7 +47,7 @@ import org.springframework.http.codec.ResourceHttpMessageWriter;
import org.springframework.http.codec.json.Jackson2JsonEncoder;
import org.springframework.http.codec.xml.Jaxb2XmlEncoder;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.ObjectUtils;
import org.springframework.web.reactive.accept.RequestedContentTypeResolver;
import org.springframework.web.reactive.accept.RequestedContentTypeResolverBuilder;
@ -69,7 +69,8 @@ public class MessageWriterResultHandlerTests {
private final AbstractMessageWriterResultHandler resultHandler = initResultHandler();
private final MockServerWebExchange exchange = MockServerHttpRequest.get("/path").toExchange();
private final MockServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/path").build());
private AbstractMessageWriterResultHandler initResultHandler(HttpMessageWriter<?>... writers) {

View File

@ -32,6 +32,7 @@ import org.springframework.core.MethodParameter;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
@ -309,10 +310,9 @@ public class ModelAttributeMethodArgumentResolverTests {
}
private ServerWebExchange postForm(String formData) throws URISyntaxException {
return MockServerHttpRequest.post("/")
return MockServerWebExchange.from(MockServerHttpRequest.post("/")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.body(formData)
.toExchange();
.body(formData));
}

View File

@ -34,6 +34,7 @@ import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.lang.Nullable;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.ui.Model;
import org.springframework.util.ReflectionUtils;
import org.springframework.validation.Validator;
@ -66,7 +67,8 @@ public class ModelInitializerTests {
private ModelInitializer modelInitializer;
private final ServerWebExchange exchange = MockServerHttpRequest.get("/path").toExchange();
private final ServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/path").build());
@Before

View File

@ -28,7 +28,7 @@ import reactor.core.publisher.Mono;
import org.springframework.core.MethodParameter;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.reactive.BindingContext;
@ -48,7 +48,8 @@ public class PathVariableMapMethodArgumentResolverTests {
private PathVariableMapMethodArgumentResolver resolver;
private final MockServerWebExchange exchange= MockServerHttpRequest.get("/").toExchange();
private final MockServerWebExchange exchange= MockServerWebExchange.from(
MockServerHttpRequest.get("/").build());
private MethodParameter paramMap;
private MethodParameter paramNamedMap;

View File

@ -31,7 +31,7 @@ import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.core.annotation.SynthesizingMethodParameter;
import org.springframework.format.support.DefaultFormattingConversionService;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
@ -54,7 +54,8 @@ public class PathVariableMethodArgumentResolverTests {
private PathVariableMethodArgumentResolver resolver;
private final MockServerWebExchange exchange= MockServerHttpRequest.get("/").toExchange();
private final MockServerWebExchange exchange= MockServerWebExchange.from(
MockServerHttpRequest.get("/").build());
private MethodParameter paramNamedString;
private MethodParameter paramString;

View File

@ -24,6 +24,7 @@ import reactor.core.publisher.Mono;
import org.springframework.core.MethodParameter;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.method.ResolvableMethod;
import org.springframework.web.reactive.BindingContext;
import org.springframework.web.server.ServerWebExchange;
@ -56,7 +57,7 @@ public class PrincipalArgumentResolverTests {
BindingContext context = new BindingContext();
Principal user = () -> "Joe";
ServerWebExchange exchange = MockServerHttpRequest.get("/").build().toExchange()
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build())
.mutate().principal(Mono.just(user)).build();
MethodParameter param = this.testMethod.arg(Principal.class);

View File

@ -32,7 +32,7 @@ import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.core.annotation.SynthesizingMethodParameter;
import org.springframework.format.support.DefaultFormattingConversionService;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
@ -56,7 +56,8 @@ public class RequestAttributeMethodArgumentResolverTests {
private RequestAttributeMethodArgumentResolver resolver;
private final MockServerWebExchange exchange= MockServerHttpRequest.get("/").toExchange();
private final MockServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/").build());
private Method handleMethod;

View File

@ -38,6 +38,7 @@ import org.springframework.core.codec.StringDecoder;
import org.springframework.http.codec.DecoderHttpMessageReader;
import org.springframework.http.codec.HttpMessageReader;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.method.ResolvableMethod;
import org.springframework.web.reactive.BindingContext;
@ -223,7 +224,7 @@ public class RequestBodyArgumentResolverTests {
@SuppressWarnings("unchecked")
private <T> T resolveValue(MethodParameter param, String body) {
ServerWebExchange exchange = MockServerHttpRequest.post("/path").body(body).toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.post("/path").body(body));
Mono<Object> result = this.resolver.readBody(param, true, new BindingContext(), exchange);
Object value = result.block(Duration.ofSeconds(5));
@ -237,7 +238,7 @@ public class RequestBodyArgumentResolverTests {
@SuppressWarnings("unchecked")
private <T> T resolveValueWithEmptyBody(MethodParameter param) {
ServerWebExchange exchange = MockServerHttpRequest.post("/path").build().toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.post("/path").build());
Mono<Object> result = this.resolver.resolveArgument(param, new BindingContext(), exchange);
Object value = result.block(Duration.ofSeconds(5));

View File

@ -29,11 +29,11 @@ import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.core.annotation.SynthesizingMethodParameter;
import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.server.ServerWebExchange;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@ -92,7 +92,8 @@ public class RequestHeaderMapMethodArgumentResolverTests {
String name = "foo";
String value = "bar";
Map<String, String> expected = Collections.singletonMap(name, value);
ServerWebExchange exchange = MockServerHttpRequest.get("/").header(name, value).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/").header(name, value).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Object> mono = resolver.resolveArgument(paramMap, null, exchange);
Object result = mono.block();
@ -106,7 +107,8 @@ public class RequestHeaderMapMethodArgumentResolverTests {
String name = "foo";
String value1 = "bar";
String value2 = "baz";
ServerWebExchange exchange = MockServerHttpRequest.get("/").header(name, value1, value2).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/").header(name, value1, value2).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
MultiValueMap<String, String> expected = new LinkedMultiValueMap<>(1);
expected.add(name, value1);
@ -124,7 +126,8 @@ public class RequestHeaderMapMethodArgumentResolverTests {
String name = "foo";
String value1 = "bar";
String value2 = "baz";
ServerWebExchange exchange = MockServerHttpRequest.get("/").header(name, value1, value2).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/").header(name, value1, value2).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
HttpHeaders expected = new HttpHeaders();
expected.add(name, value1);

View File

@ -33,7 +33,7 @@ import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.core.annotation.SynthesizingMethodParameter;
import org.springframework.format.support.DefaultFormattingConversionService;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
@ -41,7 +41,11 @@ import org.springframework.web.reactive.BindingContext;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.ServerWebInputException;
import static org.junit.Assert.*;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
/**
* Unit tests for {@link RequestHeaderMethodArgumentResolver}.
@ -108,7 +112,7 @@ public class RequestHeaderMethodArgumentResolverTests {
@Test
public void resolveStringArgument() throws Exception {
String expected = "foo";
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("name", expected).toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").header("name", expected).build());
Mono<Object> mono = this.resolver.resolveArgument(
this.paramNamedDefaultValueStringHeader, this.bindingContext, exchange);
@ -120,7 +124,8 @@ public class RequestHeaderMethodArgumentResolverTests {
@Test
public void resolveStringArrayArgument() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("name", "foo", "bar").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/").header("name", "foo", "bar").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Object> mono = this.resolver.resolveArgument(
this.paramNamedValueStringArray, this.bindingContext, exchange);
@ -132,7 +137,7 @@ public class RequestHeaderMethodArgumentResolverTests {
@Test
public void resolveDefaultValue() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
Mono<Object> mono = this.resolver.resolveArgument(
this.paramNamedDefaultValueStringHeader, this.bindingContext, exchange);
@ -147,7 +152,7 @@ public class RequestHeaderMethodArgumentResolverTests {
try {
Mono<Object> mono = this.resolver.resolveArgument(
this.paramSystemProperty, this.bindingContext,
MockServerHttpRequest.get("/").toExchange());
MockServerWebExchange.from(MockServerHttpRequest.get("/").build()));
Object result = mono.block();
assertTrue(result instanceof String);
@ -161,7 +166,8 @@ public class RequestHeaderMethodArgumentResolverTests {
@Test
public void resolveNameFromSystemPropertyThroughExpression() throws Exception {
String expected = "foo";
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("bar", expected).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/").header("bar", expected).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
System.setProperty("systemProperty", "bar");
try {
@ -180,7 +186,8 @@ public class RequestHeaderMethodArgumentResolverTests {
@Test
public void resolveNameFromSystemPropertyThroughPlaceholder() throws Exception {
String expected = "foo";
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("bar", expected).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/").header("bar", expected).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
System.setProperty("systemProperty", "bar");
try {
@ -200,7 +207,7 @@ public class RequestHeaderMethodArgumentResolverTests {
public void notFound() throws Exception {
Mono<Object> mono = resolver.resolveArgument(
this.paramNamedValueStringArray, this.bindingContext,
MockServerHttpRequest.get("/").toExchange());
MockServerWebExchange.from(MockServerHttpRequest.get("/").build()));
StepVerifier.create(mono)
.expectNextCount(0)
@ -212,7 +219,8 @@ public class RequestHeaderMethodArgumentResolverTests {
@SuppressWarnings("deprecation")
public void dateConversion() throws Exception {
String rfc1123val = "Thu, 21 Apr 2016 17:11:08 +0100";
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("name", rfc1123val).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/").header("name", rfc1123val).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Object> mono = this.resolver.resolveArgument(this.paramDate, this.bindingContext, exchange);
Object result = mono.block();
@ -224,7 +232,8 @@ public class RequestHeaderMethodArgumentResolverTests {
@Test
public void instantConversion() throws Exception {
String rfc1123val = "Thu, 21 Apr 2016 17:11:08 +0100";
ServerWebExchange exchange = MockServerHttpRequest.get("/").header("name", rfc1123val).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/").header("name", rfc1123val).build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
Mono<Object> mono = this.resolver.resolveArgument(this.paramInstant, this.bindingContext, exchange);
Object result = mono.block();
@ -234,6 +243,7 @@ public class RequestHeaderMethodArgumentResolverTests {
}
@SuppressWarnings("unused")
public void params(
@RequestHeader(name = "name", defaultValue = "bar") String param1,
@RequestHeader("name") String[] param2,

View File

@ -27,6 +27,7 @@ import reactor.core.publisher.Mono;
import org.springframework.core.MethodParameter;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.method.ResolvableMethod;
@ -79,7 +80,8 @@ public class RequestParamMapMethodArgumentResolverTests {
@Test
public void resolveMapArgumentWithQueryString() throws Exception {
MethodParameter param = this.testMethod.annot(requestParam().name("")).arg(Map.class);
Object result= resolve(param, MockServerHttpRequest.get("/path?foo=bar").toExchange());
MockServerHttpRequest request = MockServerHttpRequest.get("/path?foo=bar").build();
Object result= resolve(param, MockServerWebExchange.from(request));
assertTrue(result instanceof Map);
assertEquals(Collections.singletonMap("foo", "bar"), result);
}
@ -87,7 +89,8 @@ public class RequestParamMapMethodArgumentResolverTests {
@Test
public void resolveMultiValueMapArgument() throws Exception {
MethodParameter param = this.testMethod.annotPresent(RequestParam.class).arg(MultiValueMap.class);
ServerWebExchange exchange = MockServerHttpRequest.get("/path?foo=bar&foo=baz").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/path?foo=bar&foo=baz").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
Object result= resolve(param, exchange);
assertTrue(result instanceof MultiValueMap);

View File

@ -29,7 +29,7 @@ import org.springframework.core.MethodParameter;
import org.springframework.core.ReactiveAdapterRegistry;
import org.springframework.format.support.DefaultFormattingConversionService;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.method.ResolvableMethod;
@ -135,13 +135,15 @@ public class RequestParamMethodArgumentResolverTests {
@Test
public void resolveWithQueryString() throws Exception {
MethodParameter param = this.testMethod.annot(requestParam().notRequired("bar")).arg(String.class);
assertEquals("foo", resolve(param, MockServerHttpRequest.get("/path?name=foo").toExchange()));
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path?name=foo").build());
assertEquals("foo", resolve(param, exchange));
}
@Test
public void resolveStringArray() throws Exception {
MethodParameter param = this.testMethod.annotPresent(RequestParam.class).arg(String[].class);
Object result = resolve(param, MockServerHttpRequest.get("/path?name=foo&name=bar").toExchange());
MockServerHttpRequest request = MockServerHttpRequest.get("/path?name=foo&name=bar").build();
Object result = resolve(param, MockServerWebExchange.from(request));
assertTrue(result instanceof String[]);
assertArrayEquals(new String[] {"foo", "bar"}, (String[]) result);
}
@ -149,13 +151,13 @@ public class RequestParamMethodArgumentResolverTests {
@Test
public void resolveDefaultValue() throws Exception {
MethodParameter param = this.testMethod.annot(requestParam().notRequired("bar")).arg(String.class);
assertEquals("bar", resolve(param, MockServerHttpRequest.get("/").toExchange()));
assertEquals("bar", resolve(param, MockServerWebExchange.from(MockServerHttpRequest.get("/").build())));
}
@Test
public void missingRequestParam() throws Exception {
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
MethodParameter param = this.testMethod.annotPresent(RequestParam.class).arg(String[].class);
Mono<Object> mono = this.resolver.resolveArgument(param, this.bindContext, exchange);
@ -167,7 +169,8 @@ public class RequestParamMethodArgumentResolverTests {
@Test
public void resolveSimpleTypeParam() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/path?stringNotAnnot=plainValue").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/path?stringNotAnnot=plainValue").build();
ServerWebExchange exchange = MockServerWebExchange.from(request);
MethodParameter param = this.testMethod.annotNotPresent(RequestParam.class).arg(String.class);
Object result = resolve(param, exchange);
assertEquals("plainValue", result);
@ -176,12 +179,12 @@ public class RequestParamMethodArgumentResolverTests {
@Test // SPR-8561
public void resolveSimpleTypeParamToNull() throws Exception {
MethodParameter param = this.testMethod.annotNotPresent(RequestParam.class).arg(String.class);
assertNull(resolve(param, MockServerHttpRequest.get("/").toExchange()));
assertNull(resolve(param, MockServerWebExchange.from(MockServerHttpRequest.get("/").build())));
}
@Test // SPR-10180
public void resolveEmptyValueToDefault() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/path?name=").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path?name=").build());
MethodParameter param = this.testMethod.annot(requestParam().notRequired("bar")).arg(String.class);
Object result = resolve(param, exchange);
assertEquals("bar", result);
@ -190,23 +193,25 @@ public class RequestParamMethodArgumentResolverTests {
@Test
public void resolveEmptyValueWithoutDefault() throws Exception {
MethodParameter param = this.testMethod.annotNotPresent(RequestParam.class).arg(String.class);
assertEquals("", resolve(param, MockServerHttpRequest.get("/path?stringNotAnnot=").toExchange()));
MockServerHttpRequest request = MockServerHttpRequest.get("/path?stringNotAnnot=").build();
assertEquals("", resolve(param, MockServerWebExchange.from(request)));
}
@Test
public void resolveEmptyValueRequiredWithoutDefault() throws Exception {
MethodParameter param = this.testMethod.annot(requestParam()).arg(String.class);
assertEquals("", resolve(param, MockServerHttpRequest.get("/path?name=").toExchange()));
MockServerHttpRequest request = MockServerHttpRequest.get("/path?name=").build();
assertEquals("", resolve(param, MockServerWebExchange.from(request)));
}
@Test
public void resolveOptionalParamValue() throws Exception {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
MethodParameter param = this.testMethod.arg(forClassWithGenerics(Optional.class, Integer.class));
Object result = resolve(param, exchange);
assertEquals(Optional.empty(), result);
exchange = MockServerHttpRequest.get("/path?name=123").toExchange();
exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path?name=123").build());
result = resolve(param, exchange);
assertEquals(Optional.class, result.getClass());

View File

@ -50,7 +50,7 @@ import org.springframework.http.codec.HttpMessageWriter;
import org.springframework.http.codec.ResourceHttpMessageWriter;
import org.springframework.http.codec.json.Jackson2JsonEncoder;
import org.springframework.http.codec.xml.Jaxb2XmlEncoder;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.util.ObjectUtils;
import org.springframework.web.reactive.HandlerResult;
import org.springframework.web.reactive.accept.RequestedContentTypeResolver;
@ -159,7 +159,7 @@ public class ResponseEntityResultHandlerTests {
ResponseEntity<Void> value = ResponseEntity.noContent().build();
MethodParameter returnType = on(TestController.class).resolveReturnType(entity(Void.class));
HandlerResult result = handlerResult(value, returnType);
MockServerWebExchange exchange = get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").build());
this.resultHandler.handleResult(exchange, result).block(Duration.ofSeconds(5));
assertEquals(HttpStatus.NO_CONTENT, exchange.getResponse().getStatusCode());
@ -173,7 +173,7 @@ public class ResponseEntityResultHandlerTests {
headers.setAllow(new LinkedHashSet<>(Arrays.asList(HttpMethod.GET, HttpMethod.POST, HttpMethod.OPTIONS)));
MethodParameter returnType = on(TestController.class).resolveReturnType(entity(Void.class));
HandlerResult result = handlerResult(headers, returnType);
MockServerWebExchange exchange = get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").build());
this.resultHandler.handleResult(exchange, result).block(Duration.ofSeconds(5));
assertEquals(HttpStatus.OK, exchange.getResponse().getStatusCode());
@ -188,7 +188,7 @@ public class ResponseEntityResultHandlerTests {
ResponseEntity<Void> value = ResponseEntity.created(location).build();
MethodParameter returnType = on(TestController.class).resolveReturnType(entity(Void.class));
HandlerResult result = handlerResult(value, returnType);
MockServerWebExchange exchange = get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").build());
this.resultHandler.handleResult(exchange, result).block(Duration.ofSeconds(5));
assertEquals(HttpStatus.CREATED, exchange.getResponse().getStatusCode());
@ -202,7 +202,7 @@ public class ResponseEntityResultHandlerTests {
Object returnValue = Mono.just(notFound().build());
MethodParameter type = on(TestController.class).resolveReturnType(Mono.class, entity(String.class));
HandlerResult result = handlerResult(returnValue, type);
MockServerWebExchange exchange = get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").build());
this.resultHandler.handleResult(exchange, result).block(Duration.ofSeconds(5));
assertEquals(HttpStatus.NOT_FOUND, exchange.getResponse().getStatusCode());
@ -235,7 +235,7 @@ public class ResponseEntityResultHandlerTests {
public void handleReturnValueLastModified() throws Exception {
Instant currentTime = Instant.now().truncatedTo(ChronoUnit.SECONDS);
Instant oneMinAgo = currentTime.minusSeconds(60);
MockServerWebExchange exchange = get("/path").ifModifiedSince(currentTime.toEpochMilli()).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").ifModifiedSince(currentTime.toEpochMilli()).build());
ResponseEntity<String> entity = ok().lastModified(oneMinAgo.toEpochMilli()).body("body");
MethodParameter returnType = on(TestController.class).resolveReturnType(entity(String.class));
@ -248,7 +248,7 @@ public class ResponseEntityResultHandlerTests {
@Test
public void handleReturnValueEtag() throws Exception {
String etagValue = "\"deadb33f8badf00d\"";
MockServerWebExchange exchange = get("/path").ifNoneMatch(etagValue).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").ifNoneMatch(etagValue).build());
ResponseEntity<String> entity = ok().eTag(etagValue).body("body");
MethodParameter returnType = on(TestController.class).resolveReturnType(entity(String.class));
@ -260,7 +260,7 @@ public class ResponseEntityResultHandlerTests {
@Test // SPR-14559
public void handleReturnValueEtagInvalidIfNoneMatch() throws Exception {
MockServerWebExchange exchange = get("/path").ifNoneMatch("unquoted").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").ifNoneMatch("unquoted").build());
ResponseEntity<String> entity = ok().eTag("\"deadb33f8badf00d\"").body("body");
MethodParameter returnType = on(TestController.class).resolveReturnType(entity(String.class));
@ -278,10 +278,10 @@ public class ResponseEntityResultHandlerTests {
Instant currentTime = Instant.now().truncatedTo(ChronoUnit.SECONDS);
Instant oneMinAgo = currentTime.minusSeconds(60);
MockServerWebExchange exchange = get("/path")
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path")
.ifNoneMatch(eTag)
.ifModifiedSince(currentTime.toEpochMilli())
.toExchange();
.build());
ResponseEntity<String> entity = ok().eTag(eTag).lastModified(oneMinAgo.toEpochMilli()).body("body");
MethodParameter returnType = on(TestController.class).resolveReturnType(entity(String.class));
@ -299,10 +299,10 @@ public class ResponseEntityResultHandlerTests {
Instant currentTime = Instant.now().truncatedTo(ChronoUnit.SECONDS);
Instant oneMinAgo = currentTime.minusSeconds(60);
MockServerWebExchange exchange = get("/path")
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path")
.ifNoneMatch(etag)
.ifModifiedSince(currentTime.toEpochMilli())
.toExchange();
.build());
ResponseEntity<String> entity = ok().eTag(newEtag).lastModified(oneMinAgo.toEpochMilli()).body("body");
MethodParameter returnType = on(TestController.class).resolveReturnType(entity(String.class));
@ -315,7 +315,7 @@ public class ResponseEntityResultHandlerTests {
@Test // SPR-14877
public void handleMonoWithWildcardBodyType() throws Exception {
MockServerWebExchange exchange = get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").build());
exchange.getAttributes().put(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, Collections.singleton(APPLICATION_JSON));
MethodParameter type = on(TestController.class).resolveReturnType(Mono.class, ResponseEntity.class);
@ -330,7 +330,7 @@ public class ResponseEntityResultHandlerTests {
@Test // SPR-14877
public void handleMonoWithWildcardBodyTypeAndNullBody() throws Exception {
MockServerWebExchange exchange = get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").build());
exchange.getAttributes().put(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, Collections.singleton(APPLICATION_JSON));
MethodParameter returnType = on(TestController.class).resolveReturnType(Mono.class, ResponseEntity.class);
@ -345,7 +345,7 @@ public class ResponseEntityResultHandlerTests {
private void testHandle(Object returnValue, MethodParameter returnType) {
MockServerWebExchange exchange = get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").build());
HandlerResult result = handlerResult(returnValue, returnType);
this.resultHandler.handleResult(exchange, result).block(Duration.ofSeconds(5));

View File

@ -29,7 +29,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.method.ResolvableMethod;
import org.springframework.web.reactive.BindingContext;
import org.springframework.web.server.ServerWebExchange;
@ -40,7 +40,6 @@ import org.springframework.web.util.UriComponentsBuilder;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@ -53,7 +52,8 @@ public class ServerWebExchangeArgumentResolverTests {
private final ServerWebExchangeArgumentResolver resolver =
new ServerWebExchangeArgumentResolver(new ReactiveAdapterRegistry());
private final MockServerWebExchange exchange = MockServerHttpRequest.get("/path").toExchange();
private final MockServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/path").build());
private ResolvableMethod testMethod = ResolvableMethod.on(getClass()).named("handle").build();

View File

@ -30,11 +30,13 @@ import reactor.test.StepVerifier;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.tests.sample.beans.TestBean;
import org.springframework.web.server.ServerWebExchange;
import static org.junit.Assert.*;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/**
* Unit tests for {@link AbstractView}.
@ -47,7 +49,7 @@ public class AbstractViewTests {
@Before
public void setup() {
this.exchange = MockServerHttpRequest.get("/").toExchange();
this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
}
@SuppressWarnings("unchecked")

View File

@ -34,7 +34,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.codec.json.Jackson2JsonEncoder;
import org.springframework.http.codec.xml.Jaxb2XmlEncoder;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.ui.ExtendedModelMap;
import org.springframework.ui.ModelMap;
@ -53,7 +53,8 @@ public class HttpMessageWriterViewTests {
private final ModelMap model = new ExtendedModelMap();
private final MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
private final MockServerWebExchange exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/").build());
@Test

View File

@ -27,7 +27,7 @@ import org.junit.Test;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.web.reactive.HandlerMapping;
import static org.junit.Assert.assertEquals;
@ -47,7 +47,8 @@ public class RedirectViewTests {
@Before
public void setup() {
this.exchange = MockServerHttpRequest.get("/context/path").contextPath("/context").toExchange();
this.exchange = MockServerWebExchange.from(
MockServerHttpRequest.get("/context/path").contextPath("/context").build());
}
@ -129,7 +130,8 @@ public class RedirectViewTests {
public void propagateQueryParams() throws Exception {
RedirectView view = new RedirectView("http://url.somewhere.com?foo=bar#bazz");
view.setPropagateQuery(true);
this.exchange = MockServerHttpRequest.get("http://url.somewhere.com?a=b&c=d").toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("http://url.somewhere.com?a=b&c=d").build();
this.exchange = MockServerWebExchange.from(request);
view.render(new HashMap<>(), MediaType.TEXT_HTML, this.exchange).block();
assertEquals(HttpStatus.SEE_OTHER, this.exchange.getResponse().getStatusCode());
assertEquals(URI.create("http://url.somewhere.com?foo=bar&a=b&c=d#bazz"),

View File

@ -24,7 +24,7 @@ import org.junit.Test;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import static org.junit.Assert.assertEquals;
@ -34,8 +34,8 @@ import static org.junit.Assert.assertEquals;
*/
public class RequestContextTests {
private final MockServerWebExchange exchange = MockServerHttpRequest.get("/foo/path")
.contextPath("/foo").toExchange();
private final MockServerWebExchange exchange =
MockServerWebExchange.from(MockServerHttpRequest.get("/foo/path").contextPath("/foo").build());
private GenericApplicationContext applicationContext;

View File

@ -45,7 +45,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.lang.Nullable;
import org.springframework.mock.http.server.reactive.test.MockServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.ui.ConcurrentModel;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
@ -216,15 +216,15 @@ public class ViewResolutionResultHandlerTests {
HandlerResult result = new HandlerResult(new Object(), returnValue, returnType, this.bindingContext);
ViewResolutionResultHandler handler = resultHandler(new TestViewResolver("account"));
MockServerWebExchange exchange = get("/account").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/account").build());
handler.handleResult(exchange, result).block(Duration.ofMillis(5000));
assertResponseBody(exchange, "account: {id=123}");
exchange = get("/account/").toExchange();
exchange = MockServerWebExchange.from(get("/account/").build());
handler.handleResult(exchange, result).block(Duration.ofMillis(5000));
assertResponseBody(exchange, "account: {id=123}");
exchange = get("/account.123").toExchange();
exchange = MockServerWebExchange.from(get("/account.123").build());
handler.handleResult(exchange, result).block(Duration.ofMillis(5000));
assertResponseBody(exchange, "account: {id=123}");
}
@ -235,7 +235,7 @@ public class ViewResolutionResultHandlerTests {
MethodParameter returnType = on(Handler.class).annotPresent(ModelAttribute.class).resolveReturnType(String.class);
HandlerResult result = new HandlerResult(new Object(), returnValue, returnType, this.bindingContext);
MockServerWebExchange exchange = get("/path").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/path").build());
Mono<Void> mono = resultHandler().handleResult(exchange, result);
StepVerifier.create(mono)
@ -250,7 +250,7 @@ public class ViewResolutionResultHandlerTests {
MethodParameter returnType = on(Handler.class).resolveReturnType(TestBean.class);
HandlerResult handlerResult = new HandlerResult(new Object(), value, returnType, this.bindingContext);
MockServerWebExchange exchange = get("/account").accept(APPLICATION_JSON).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/account").accept(APPLICATION_JSON).build());
TestView defaultView = new TestView("jsonView", APPLICATION_JSON);
@ -272,7 +272,7 @@ public class ViewResolutionResultHandlerTests {
MethodParameter returnType = on(Handler.class).resolveReturnType(TestBean.class);
HandlerResult handlerResult = new HandlerResult(new Object(), value, returnType, this.bindingContext);
MockServerWebExchange exchange = get("/account").accept(APPLICATION_JSON).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/account").accept(APPLICATION_JSON).build());
ViewResolutionResultHandler resultHandler = resultHandler(new TestViewResolver("account"));
Mono<Void> mono = resultHandler.handleResult(exchange, handlerResult);
@ -293,7 +293,7 @@ public class ViewResolutionResultHandlerTests {
viewResolver.setApplicationContext(new StaticApplicationContext());
ViewResolutionResultHandler resultHandler = resultHandler(viewResolver);
MockServerWebExchange exchange = get("/account").accept(APPLICATION_JSON).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get("/account").accept(APPLICATION_JSON).build());
resultHandler.handleResult(exchange, handlerResult).block(Duration.ZERO);
MockServerHttpResponse response = exchange.getResponse();
@ -321,7 +321,7 @@ public class ViewResolutionResultHandlerTests {
model.asMap().clear();
model.addAttribute("id", "123");
HandlerResult result = new HandlerResult(new Object(), returnValue, returnType, this.bindingContext);
MockServerWebExchange exchange = get(path).toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(get(path).build());
resultHandler(resolvers).handleResult(exchange, result).block(Duration.ofSeconds(5));
assertResponseBody(exchange, responseBody);
return exchange;

View File

@ -32,7 +32,7 @@ import org.springframework.context.ApplicationContextException;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import org.springframework.ui.ExtendedModelMap;
import org.springframework.ui.ModelMap;
@ -47,7 +47,8 @@ public class FreeMarkerViewTests {
private static final String TEMPLATE_PATH = "classpath*:org/springframework/web/reactive/view/freemarker/";
private final MockServerWebExchange exchange = MockServerHttpRequest.get("/path").toExchange();
private final MockServerWebExchange exchange =
MockServerWebExchange.from(MockServerHttpRequest.get("/path").build());
private GenericApplicationContext context;

View File

@ -28,7 +28,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import static org.junit.Assert.assertEquals;
@ -52,7 +52,7 @@ public class JRubyScriptTemplateTests {
private MockServerHttpResponse renderViewWithModel(String viewUrl, Map<String, Object> model) throws Exception {
ScriptTemplateView view = createViewWithUrl(viewUrl);
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
view.renderInternal(model, MediaType.TEXT_HTML, exchange).block();
return exchange.getResponse();
}

View File

@ -27,7 +27,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import static org.junit.Assert.assertEquals;
@ -50,7 +50,7 @@ public class JythonScriptTemplateTests {
private MockServerHttpResponse renderViewWithModel(String viewUrl, Map<String, Object> model) throws Exception {
ScriptTemplateView view = createViewWithUrl(viewUrl);
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
view.renderInternal(model, MediaType.TEXT_HTML, exchange).block();
return exchange.getResponse();
}

View File

@ -30,9 +30,9 @@ import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
/**
* Unit tests for Kotlin script templates running on Kotlin JSR-223 support.
@ -76,9 +76,12 @@ public class KotlinScriptTemplateTests {
}
private MockServerHttpResponse renderViewWithModel(String viewUrl, Map<String, Object> model, Locale locale, Class<?> configuration) throws Exception {
private MockServerHttpResponse renderViewWithModel(String viewUrl, Map<String, Object> model,
Locale locale, Class<?> configuration) throws Exception {
ScriptTemplateView view = createViewWithUrl(viewUrl, configuration);
MockServerWebExchange exchange = MockServerHttpRequest.get("/").acceptLanguageAsLocales(locale).toExchange();
MockServerHttpRequest request = MockServerHttpRequest.get("/").acceptLanguageAsLocales(locale).build();
MockServerWebExchange exchange = MockServerWebExchange.from(request);
view.renderInternal(model, MediaType.TEXT_HTML, exchange).block();
return exchange.getResponse();
}

View File

@ -27,7 +27,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.test.MockServerHttpResponse;
import org.springframework.mock.http.server.reactive.test.MockServerWebExchange;
import org.springframework.mock.web.test.server.MockServerWebExchange;
import static org.junit.Assert.assertEquals;
@ -59,7 +59,7 @@ public class NashornScriptTemplateTests {
private MockServerHttpResponse renderViewWithModel(String viewUrl, Map<String, Object> model, Class<?> configuration) throws Exception {
ScriptTemplateView view = createViewWithUrl(viewUrl, configuration);
MockServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange();
MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
view.renderInternal(model, MediaType.TEXT_HTML, exchange).block();
return exchange.getResponse();
}

View File

@ -23,6 +23,7 @@ import org.springframework.core.ReactiveAdapterRegistry
import org.springframework.core.annotation.SynthesizingMethodParameter
import org.springframework.format.support.DefaultFormattingConversionService
import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest
import org.springframework.mock.web.test.server.MockServerWebExchange
import org.springframework.util.ReflectionUtils
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer
@ -64,56 +65,56 @@ class RequestParamMethodArgumentResolverKotlinTests {
@Test
fun resolveNullableRequiredWithParameter() {
var exchange = MockServerHttpRequest.get("/path?name=123").toExchange()
var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path?name=123").build())
var result = resolver.resolveArgument(nullableParamRequired, bindingContext, exchange)
StepVerifier.create(result).expectNext("123").expectComplete().verify()
}
@Test
fun resolveNullableRequiredWithoutParameter() {
var exchange = MockServerHttpRequest.get("/").toExchange()
var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build())
var result = resolver.resolveArgument(nullableParamRequired, bindingContext, exchange)
StepVerifier.create(result).expectComplete().verify()
}
@Test
fun resolveNullableNotRequiredWithParameter() {
var exchange = MockServerHttpRequest.get("/path?name=123").toExchange()
var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path?name=123").build())
var result = resolver.resolveArgument(nullableParamNotRequired, bindingContext, exchange)
StepVerifier.create(result).expectNext("123").expectComplete().verify()
}
@Test
fun resolveNullableNotRequiredWithoutParameter() {
var exchange = MockServerHttpRequest.get("/").toExchange()
var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build())
var result = resolver.resolveArgument(nullableParamNotRequired, bindingContext, exchange)
StepVerifier.create(result).expectComplete().verify()
}
@Test
fun resolveNonNullableRequiredWithParameter() {
var exchange = MockServerHttpRequest.get("/path?name=123").toExchange()
var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path?name=123").build())
var result = resolver.resolveArgument(nonNullableParamRequired, bindingContext, exchange)
StepVerifier.create(result).expectNext("123").expectComplete().verify()
}
@Test
fun resolveNonNullableRequiredWithoutParameter() {
var exchange = MockServerHttpRequest.get("/").toExchange()
var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build())
var result = resolver.resolveArgument(nonNullableParamRequired, bindingContext, exchange)
StepVerifier.create(result).expectError(ServerWebInputException::class.java).verify()
}
@Test
fun resolveNonNullableNotRequiredWithParameter() {
var exchange = MockServerHttpRequest.get("/path?name=123").toExchange()
var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path?name=123").build())
var result = resolver.resolveArgument(nonNullableParamNotRequired, bindingContext, exchange)
StepVerifier.create(result).expectNext("123").expectComplete().verify()
}
@Test
fun resolveNonNullableNotRequiredWithoutParameter() {
var exchange = MockServerHttpRequest.get("/").toExchange()
var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build())
var result = resolver.resolveArgument(nonNullableParamNotRequired, bindingContext, exchange)
StepVerifier.create(result).expectComplete().verify()
}