Fix /prefix test so it asserts a 404 as well as a 200
This commit is contained in:
@@ -30,6 +30,7 @@ import org.springframework.cloud.function.context.FunctionInspector;
|
|||||||
import org.springframework.cloud.function.registry.FunctionCatalog;
|
import org.springframework.cloud.function.registry.FunctionCatalog;
|
||||||
import org.springframework.cloud.function.web.flux.constants.WebRequestConstants;
|
import org.springframework.cloud.function.web.flux.constants.WebRequestConstants;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.method.HandlerMethod;
|
import org.springframework.web.method.HandlerMethod;
|
||||||
import org.springframework.web.servlet.HandlerMapping;
|
import org.springframework.web.servlet.HandlerMapping;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
||||||
@@ -80,6 +81,9 @@ public class FunctionHandlerMapping extends RequestMappingHandlerMapping
|
|||||||
}
|
}
|
||||||
String path = (String) request
|
String path = (String) request
|
||||||
.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
|
.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
|
||||||
|
if (StringUtils.hasText(prefix) && !path.startsWith(prefix)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
if (path.startsWith(prefix)) {
|
if (path.startsWith(prefix)) {
|
||||||
path = path.substring(prefix.length());
|
path = path.substring(prefix.length());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,12 +53,19 @@ public class PrefixTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void words() throws Exception {
|
public void words() throws Exception {
|
||||||
ResponseEntity<String> result = rest
|
ResponseEntity<String> result = rest.exchange(
|
||||||
.exchange(RequestEntity.get(new URI("/functions/words")).build(), String.class);
|
RequestEntity.get(new URI("/functions/words")).build(), String.class);
|
||||||
assertThat(result.getStatusCode()).isEqualTo(HttpStatus.OK);
|
assertThat(result.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||||
assertThat(result.getBody()).isEqualTo("[\"foo\",\"bar\"]");
|
assertThat(result.getBody()).isEqualTo("[\"foo\",\"bar\"]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void missing() throws Exception {
|
||||||
|
ResponseEntity<String> result = rest
|
||||||
|
.exchange(RequestEntity.get(new URI("/words")).build(), String.class);
|
||||||
|
assertThat(result.getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
|
||||||
@EnableAutoConfiguration
|
@EnableAutoConfiguration
|
||||||
@org.springframework.boot.test.context.TestConfiguration
|
@org.springframework.boot.test.context.TestConfiguration
|
||||||
protected static class TestConfiguration {
|
protected static class TestConfiguration {
|
||||||
|
|||||||
Reference in New Issue
Block a user