Rename Configuration to StrategiesSupplier

This commit is contained in:
Arjen Poutsma
2016-09-19 12:09:19 +02:00
parent bf6653b837
commit 753bb854aa
18 changed files with 199 additions and 125 deletions

View File

@@ -48,9 +48,9 @@ public class BodyExtractorsTests {
MockServerHttpRequest request = new MockServerHttpRequest();
request.setBody(body);
Configuration configuration = Configuration.builder().build();
StrategiesSupplier strategies = StrategiesSupplier.builder().build();
Mono<String> result = extractor.extract(request, configuration);
Mono<String> result = extractor.extract(request, strategies);
TestSubscriber.subscribe(result)
.assertComplete()
@@ -69,9 +69,9 @@ public class BodyExtractorsTests {
MockServerHttpRequest request = new MockServerHttpRequest();
request.setBody(body);
Configuration configuration = Configuration.builder().build();
StrategiesSupplier strategies = StrategiesSupplier.builder().build();
Flux<String> result = extractor.extract(request, configuration);
Flux<String> result = extractor.extract(request, strategies);
TestSubscriber.subscribe(result)
.assertComplete()
.assertValues("foo");
@@ -90,9 +90,9 @@ public class BodyExtractorsTests {
request.getHeaders().setContentType(MediaType.APPLICATION_JSON);
request.setBody(body);
Configuration configuration = Configuration.empty().build();
StrategiesSupplier strategies = StrategiesSupplier.empty().build();
Flux<String> result = extractor.extract(request, configuration);
Flux<String> result = extractor.extract(request, strategies);
TestSubscriber.subscribe(result)
.assertError(UnsupportedMediaTypeStatusException.class);

View File

@@ -48,7 +48,7 @@ public class BodyInsertersTests {
assertEquals(body, inserter.t());
MockServerHttpResponse response = new MockServerHttpResponse();
Mono<Void> result = inserter.insert(response, Configuration.builder().build());
Mono<Void> result = inserter.insert(response, StrategiesSupplier.builder().build());
TestSubscriber.subscribe(result)
.assertComplete();
@@ -67,7 +67,7 @@ public class BodyInsertersTests {
assertEquals(body, inserter.t());
MockServerHttpResponse response = new MockServerHttpResponse();
Mono<Void> result = inserter.insert(response, Configuration.builder().build());
Mono<Void> result = inserter.insert(response, StrategiesSupplier.builder().build());
TestSubscriber.subscribe(result)
.assertComplete();
@@ -86,7 +86,7 @@ public class BodyInsertersTests {
assertEquals(body, inserter.t());
MockServerHttpResponse response = new MockServerHttpResponse();
Mono<Void> result = inserter.insert(response, Configuration.builder().build());
Mono<Void> result = inserter.insert(response, StrategiesSupplier.builder().build());
TestSubscriber.subscribe(result)
.assertComplete();
@@ -111,7 +111,7 @@ public class BodyInsertersTests {
assertEquals(body, inserter.t());
MockServerHttpResponse response = new MockServerHttpResponse();
Mono<Void> result = inserter.insert(response, Configuration.builder().build());
Mono<Void> result = inserter.insert(response, StrategiesSupplier.builder().build());
TestSubscriber.subscribe(result)
.assertComplete();
@@ -126,7 +126,7 @@ public class BodyInsertersTests {
assertEquals(body, inserter.t());
MockServerHttpResponse response = new MockServerHttpResponse();
Mono<Void> result = inserter.insert(response, Configuration.builder().build());
Mono<Void> result = inserter.insert(response, StrategiesSupplier.builder().build());
TestSubscriber.subscribe(result)
.assertComplete();

View File

@@ -65,7 +65,7 @@ public class DefaultRequestTests {
private ServerWebExchange mockExchange;
private Configuration mockConfiguration;
private StrategiesSupplier mockStrategiesSupplier;
private DefaultRequest defaultRequest;
@@ -77,9 +77,9 @@ public class DefaultRequestTests {
mockExchange = mock(ServerWebExchange.class);
when(mockExchange.getRequest()).thenReturn(mockRequest);
when(mockExchange.getResponse()).thenReturn(mockResponse);
mockConfiguration = mock(Configuration.class);
mockStrategiesSupplier = mock(StrategiesSupplier.class);
defaultRequest = new DefaultRequest(mockExchange, mockConfiguration);
defaultRequest = new DefaultRequest(mockExchange, mockStrategiesSupplier);
}
@Test
@@ -171,7 +171,7 @@ public class DefaultRequestTests {
Set<HttpMessageReader<?>> messageReaders = Collections
.singleton(new DecoderHttpMessageReader<String>(new StringDecoder()));
when(mockConfiguration.messageReaders()).thenReturn(messageReaders::stream);
when(mockStrategiesSupplier.messageReaders()).thenReturn(messageReaders::stream);
Mono<String> resultMono = defaultRequest.body(toMono(String.class));
assertEquals("foo", resultMono.block());

View File

@@ -190,9 +190,9 @@ public class DefaultResponseBuilderTests {
ServerWebExchange exchange = mock(ServerWebExchange.class);
MockServerHttpResponse response = new MockServerHttpResponse();
when(exchange.getResponse()).thenReturn(response);
Configuration configuration = mock(Configuration.class);
StrategiesSupplier strategies = mock(StrategiesSupplier.class);
result.writeTo(exchange, configuration).block();
result.writeTo(exchange, strategies).block();
assertEquals(201, response.getStatusCode().value());
assertEquals("MyValue", response.getHeaders().getFirst("MyKey"));
assertNull(response.getBody());
@@ -207,9 +207,9 @@ public class DefaultResponseBuilderTests {
ServerWebExchange exchange = mock(ServerWebExchange.class);
MockServerHttpResponse response = new MockServerHttpResponse();
when(exchange.getResponse()).thenReturn(response);
Configuration configuration = mock(Configuration.class);
StrategiesSupplier strategies = mock(StrategiesSupplier.class);
result.writeTo(exchange, configuration).block();
result.writeTo(exchange, strategies).block();
assertNull(response.getBody());
}
@@ -217,8 +217,8 @@ public class DefaultResponseBuilderTests {
public void bodyInserter() throws Exception {
String body = "foo";
Supplier<String> supplier = () -> body;
BiFunction<ServerHttpResponse, Configuration, Mono<Void>> writer =
(response, configuration) -> {
BiFunction<ServerHttpResponse, StrategiesSupplier, Mono<Void>> writer =
(response, strategies) -> {
byte[] bodyBytes = body.getBytes(UTF_8);
ByteBuffer byteBuffer = ByteBuffer.wrap(bodyBytes);
DataBuffer buffer = new DefaultDataBufferFactory().wrap(byteBuffer);
@@ -238,10 +238,10 @@ public class DefaultResponseBuilderTests {
List<HttpMessageWriter<?>> messageWriters = new ArrayList<>();
messageWriters.add(new EncoderHttpMessageWriter<CharSequence>(new CharSequenceEncoder()));
Configuration configuration = mock(Configuration.class);
when(configuration.messageWriters()).thenReturn(messageWriters::stream);
StrategiesSupplier strategies = mock(StrategiesSupplier.class);
when(strategies.messageWriters()).thenReturn(messageWriters::stream);
result.writeTo(exchange, configuration).block();
result.writeTo(exchange, strategies).block();
assertNotNull(response.getBody());
}
@@ -264,7 +264,7 @@ public class DefaultResponseBuilderTests {
List<ViewResolver> viewResolvers = new ArrayList<>();
viewResolvers.add(viewResolver);
Configuration mockConfig = mock(Configuration.class);
StrategiesSupplier mockConfig = mock(StrategiesSupplier.class);
when(mockConfig.viewResolvers()).thenReturn(viewResolvers::stream);
result.writeTo(exchange, mockConfig).block();

View File

@@ -120,7 +120,7 @@ public class DispatcherHandlerIntegrationTests extends AbstractHttpHandlerIntegr
public HandlerMapping handlerMapping(RouterFunction<?> routerFunction,
ApplicationContext applicationContext) {
return RouterFunctions.toHandlerMapping(routerFunction,
new org.springframework.web.reactive.function.Configuration() {
new StrategiesSupplier() {
@Override
public Supplier<Stream<HttpMessageReader<?>>> messageReaders() {
return () -> getMessageReaders().stream();

View File

@@ -112,17 +112,17 @@ public class RouterFunctionsTests {
@Test
public void toHttpHandler() throws Exception {
Configuration configuration = mock(Configuration.class);
when(configuration.messageReaders()).thenReturn(
StrategiesSupplier strategies = mock(StrategiesSupplier.class);
when(strategies.messageReaders()).thenReturn(
() -> Collections.<HttpMessageReader<?>>emptyList().stream());
when(configuration.messageWriters()).thenReturn(
when(strategies.messageWriters()).thenReturn(
() -> Collections.<HttpMessageWriter<?>>emptyList().stream());
when(configuration.viewResolvers()).thenReturn(
when(strategies.viewResolvers()).thenReturn(
() -> Collections.<ViewResolver>emptyList().stream());
Request request = mock(Request.class);
Response response = mock(Response.class);
when(response.writeTo(any(ServerWebExchange.class), eq(configuration))).thenReturn(Mono.empty());
when(response.writeTo(any(ServerWebExchange.class), eq(strategies))).thenReturn(Mono.empty());
HandlerFunction handlerFunction = mock(HandlerFunction.class);
when(handlerFunction.handle(any(Request.class))).thenReturn(response);
@@ -134,7 +134,7 @@ public class RouterFunctionsTests {
when(requestPredicate.test(request)).thenReturn(false);
HttpHandler result = RouterFunctions.toHttpHandler(routerFunction, configuration);
HttpHandler result = RouterFunctions.toHttpHandler(routerFunction, strategies);
assertNotNull(result);
MockServerHttpRequest httpRequest =

View File

@@ -19,6 +19,9 @@ package org.springframework.web.reactive.function;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.junit.Test;
import org.reactivestreams.Publisher;
@@ -33,12 +36,41 @@ import org.springframework.http.ReactiveHttpOutputMessage;
import org.springframework.http.codec.HttpMessageReader;
import org.springframework.http.codec.HttpMessageWriter;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* @author Arjen Poutsma
*/
public class ConfigurationTests {
public class StrategiesSupplierTests {
@Test
public void empty() {
StrategiesSupplier strategies = StrategiesSupplier.empty().build();
assertEquals(Optional.empty(), strategies.messageReaders().get().findFirst());
assertEquals(Optional.empty(), strategies.messageWriters().get().findFirst());
assertEquals(Optional.empty(), strategies.viewResolvers().get().findFirst());
}
@Test
public void ofSuppliers() {
HttpMessageReader<?> messageReader = new DummyMessageReader();
HttpMessageWriter<?> messageWriter = new DummyMessageWriter();
StrategiesSupplier strategies = StrategiesSupplier.of(
() -> Stream.of(messageReader),
() -> Stream.of(messageWriter),
null);
assertEquals(1L, strategies.messageReaders().get().collect(Collectors.counting()).longValue());
assertEquals(Optional.of(messageReader), strategies.messageReaders().get().findFirst());
assertEquals(1L, strategies.messageWriters().get().collect(Collectors.counting()).longValue());
assertEquals(Optional.of(messageWriter), strategies.messageWriters().get().findFirst());
assertEquals(Optional.empty(), strategies.viewResolvers().get().findFirst());
}
@Test
public void toConfiguration() throws Exception {
@@ -47,10 +79,11 @@ public class ConfigurationTests {
applicationContext.registerSingleton("messageReader", DummyMessageReader.class);
applicationContext.refresh();
Configuration configuration = Configuration.applicationContext(applicationContext).build();
assertTrue(configuration.messageReaders().get()
StrategiesSupplier
strategies = StrategiesSupplier.applicationContext(applicationContext).build();
assertTrue(strategies.messageReaders().get()
.allMatch(r -> r instanceof DummyMessageReader));
assertTrue(configuration.messageWriters().get()
assertTrue(strategies.messageWriters().get()
.allMatch(r -> r instanceof DummyMessageWriter));
}