ResourceHandlerFunction returns EntityResponse
The ResourceHandlerFunction now returns an `EntityResponse<Resource>` (instead of a `ServerResponse`), so that filters can inspect/change the returned Resource.
This commit is contained in:
parent
8db4b2f7ed
commit
ad9cf99420
|
|
@ -56,12 +56,12 @@ class ResourceHandlerFunction implements HandlerFunction<ServerResponse> {
|
|||
public Mono<ServerResponse> handle(ServerRequest request) {
|
||||
switch (request.method()) {
|
||||
case GET:
|
||||
return ServerResponse.ok()
|
||||
.body(BodyInserters.fromResource(this.resource));
|
||||
return EntityResponse.fromObject(this.resource).build()
|
||||
.map(response -> response);
|
||||
case HEAD:
|
||||
Resource headResource = new HeadMethodResource(this.resource);
|
||||
return ServerResponse.ok()
|
||||
.body(BodyInserters.fromResource(headResource));
|
||||
return EntityResponse.fromObject(headResource).build()
|
||||
.map(response -> response);
|
||||
case OPTIONS:
|
||||
return ServerResponse.ok()
|
||||
.allow(SUPPORTED_METHODS)
|
||||
|
|
|
|||
|
|
@ -57,13 +57,9 @@ public class ResourceHandlerFunctionTests {
|
|||
|
||||
Mono<Void> result = responseMono.flatMap(response -> {
|
||||
assertEquals(HttpStatus.OK, response.statusCode());
|
||||
/*
|
||||
TODO: enable when ServerEntityResponse is reintroduced
|
||||
StepVerifier.create(response.body())
|
||||
.expectNext(this.resource)
|
||||
.expectComplete()
|
||||
.verify();
|
||||
*/
|
||||
assertTrue(response instanceof EntityResponse);
|
||||
EntityResponse<Resource> entityResponse = (EntityResponse<Resource>) response;
|
||||
assertEquals(this.resource, entityResponse.entity());
|
||||
return response.writeTo(exchange, HandlerStrategies.withDefaults());
|
||||
});
|
||||
|
||||
|
|
@ -92,11 +88,14 @@ public class ResourceHandlerFunctionTests {
|
|||
|
||||
ServerRequest request = new DefaultServerRequest(exchange, HandlerStrategies.withDefaults());
|
||||
|
||||
Mono<ServerResponse> response = this.handlerFunction.handle(request);
|
||||
Mono<ServerResponse> responseMono = this.handlerFunction.handle(request);
|
||||
|
||||
Mono<Void> result = response.flatMap(res -> {
|
||||
assertEquals(HttpStatus.OK, res.statusCode());
|
||||
return res.writeTo(exchange, HandlerStrategies.withDefaults());
|
||||
Mono<Void> result = responseMono.flatMap(response -> {
|
||||
assertEquals(HttpStatus.OK, response.statusCode());
|
||||
assertTrue(response instanceof EntityResponse);
|
||||
EntityResponse<Resource> entityResponse = (EntityResponse<Resource>) response;
|
||||
assertEquals(this.resource.getFilename(), entityResponse.entity().getFilename());
|
||||
return response.writeTo(exchange, HandlerStrategies.withDefaults());
|
||||
});
|
||||
|
||||
StepVerifier.create(result).expectComplete().verify();
|
||||
|
|
@ -118,12 +117,6 @@ public class ResourceHandlerFunctionTests {
|
|||
assertEquals(HttpStatus.OK, response.statusCode());
|
||||
assertEquals(EnumSet.of(HttpMethod.GET, HttpMethod.HEAD, HttpMethod.OPTIONS),
|
||||
response.headers().getAllow());
|
||||
/*
|
||||
TODO: enable when ServerEntityResponse is reintroduced
|
||||
StepVerifier.create(response.body())
|
||||
.expectComplete()
|
||||
.verify();
|
||||
*/
|
||||
return response.writeTo(exchange, HandlerStrategies.withDefaults());
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue