Add resource redirection to WebMVC functional router

See gh-27257
This commit is contained in:
Sébastien Deleuze
2024-02-09 11:16:15 +01:00
parent 2d7b2e59b6
commit d3ca6f9f6a
6 changed files with 175 additions and 14 deletions

View File

@@ -39,11 +39,13 @@ import org.springframework.web.testfixture.servlet.MockHttpServletRequest;
import static java.util.Collections.emptyList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.web.servlet.function.RequestPredicates.HEAD;
import static org.springframework.web.servlet.function.RequestPredicates.path;
/**
* Tests for {@link RouterFunctionBuilder}.
*
* @author Arjen Poutsma
* @author Sebastien Deleuze
*/
class RouterFunctionBuilderTests {
@@ -96,6 +98,23 @@ class RouterFunctionBuilderTests {
}
}
@Test
void resource() {
Resource resource = new ClassPathResource("/org/springframework/web/servlet/function/response.txt");
assertThat(resource.exists()).isTrue();
RouterFunction<ServerResponse> route = RouterFunctions.route()
.resource(path("/test"), resource)
.build();
ServerRequest resourceRequest = initRequest("GET", "/test");
Optional<HttpStatusCode> responseStatus = route.route(resourceRequest)
.map(handlerFunction -> handle(handlerFunction, resourceRequest))
.map(ServerResponse::statusCode);
assertThat(responseStatus).contains(HttpStatus.OK);
}
@Test
void resources() {
Resource resource = new ClassPathResource("/org/springframework/web/servlet/function/");