@ -22,6 +22,7 @@ import java.util.Optional;
@@ -22,6 +22,7 @@ import java.util.Optional;
import org.junit.jupiter.api.Test ;
import org.springframework.web.servlet.handler.PathPatternsTestUtils ;
import org.springframework.web.testfixture.servlet.MockHttpServletRequest ;
import static org.assertj.core.api.Assertions.assertThat ;
import static org.mockito.BDDMockito.given ;
@ -97,4 +98,20 @@ public class RouterFunctionsTests {
@@ -97,4 +98,20 @@ public class RouterFunctionsTests {
assertThat ( resultHandlerFunction . isPresent ( ) ) . isFalse ( ) ;
}
@Test
public void nestPathVariable ( ) {
HandlerFunction < ServerResponse > handlerFunction = request - > ServerResponse . ok ( ) . build ( ) ;
RequestPredicate requestPredicate = request - > request . pathVariable ( "foo" ) . equals ( "bar" ) ;
RouterFunction < ServerResponse > nestedFunction = RouterFunctions . route ( requestPredicate , handlerFunction ) ;
RouterFunction < ServerResponse > result = RouterFunctions . nest ( RequestPredicates . path ( "/{foo}" ) , nestedFunction ) ;
assertThat ( result ) . isNotNull ( ) ;
MockHttpServletRequest servletRequest = new MockHttpServletRequest ( "GET" , "/bar" ) ;
ServerRequest request = new DefaultServerRequest ( servletRequest , Collections . emptyList ( ) ) ;
Optional < HandlerFunction < ServerResponse > > resultHandlerFunction = result . route ( request ) ;
assertThat ( resultHandlerFunction . isPresent ( ) ) . isTrue ( ) ;
assertThat ( resultHandlerFunction . get ( ) ) . isEqualTo ( handlerFunction ) ;
}
}