SPR-7812 Provide separate methods for type and method-level custom request conditions. Polish javadoc in RequestMappingInfo and related HandlerMapping classes
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.web.servlet.mvc.method;
|
||||
package org.springframework.web.servlet.mvc.condition;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertSame;
|
||||
@@ -26,36 +26,40 @@ import org.springframework.mock.web.MockHttpServletRequest;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.servlet.mvc.condition.HeadersRequestCondition;
|
||||
import org.springframework.web.servlet.mvc.condition.ParamsRequestCondition;
|
||||
import org.springframework.web.servlet.mvc.condition.RequestConditionHolder;
|
||||
import org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition;
|
||||
|
||||
/**
|
||||
* A test fixture for
|
||||
* {code org.springframework.web.servlet.mvc.method.RequestConditionHolder} tests.
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
*/
|
||||
public class CustomRequestConditionTests {
|
||||
public class RequestConditionHolderTests {
|
||||
|
||||
@Test
|
||||
public void combineEmpty() {
|
||||
CustomRequestCondition empty = new CustomRequestCondition();
|
||||
CustomRequestCondition custom = new CustomRequestCondition(new ParamsRequestCondition("name"));
|
||||
RequestConditionHolder empty = new RequestConditionHolder(null);
|
||||
RequestConditionHolder notEmpty = new RequestConditionHolder(new ParamsRequestCondition("name"));
|
||||
|
||||
assertSame(empty, empty.combine(new CustomRequestCondition()));
|
||||
assertSame(custom, custom.combine(empty));
|
||||
assertSame(custom, empty.combine(custom));
|
||||
assertSame(empty, empty.combine(new RequestConditionHolder(null)));
|
||||
assertSame(notEmpty, notEmpty.combine(empty));
|
||||
assertSame(notEmpty, empty.combine(notEmpty));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void combine() {
|
||||
CustomRequestCondition params1 = new CustomRequestCondition(new ParamsRequestCondition("name1"));
|
||||
CustomRequestCondition params2 = new CustomRequestCondition(new ParamsRequestCondition("name2"));
|
||||
CustomRequestCondition expected = new CustomRequestCondition(new ParamsRequestCondition("name1", "name2"));
|
||||
RequestConditionHolder params1 = new RequestConditionHolder(new ParamsRequestCondition("name1"));
|
||||
RequestConditionHolder params2 = new RequestConditionHolder(new ParamsRequestCondition("name2"));
|
||||
RequestConditionHolder expected = new RequestConditionHolder(new ParamsRequestCondition("name1", "name2"));
|
||||
|
||||
assertEquals(expected, params1.combine(params2));
|
||||
}
|
||||
|
||||
@Test(expected=ClassCastException.class)
|
||||
public void combineIncompatible() {
|
||||
CustomRequestCondition params = new CustomRequestCondition(new ParamsRequestCondition("name"));
|
||||
CustomRequestCondition headers = new CustomRequestCondition(new HeadersRequestCondition("name"));
|
||||
RequestConditionHolder params = new RequestConditionHolder(new ParamsRequestCondition("name"));
|
||||
RequestConditionHolder headers = new RequestConditionHolder(new HeadersRequestCondition("name"));
|
||||
params.combine(headers);
|
||||
}
|
||||
|
||||
@@ -65,7 +69,7 @@ public class CustomRequestConditionTests {
|
||||
request.setParameter("name1", "value1");
|
||||
|
||||
RequestMethodsRequestCondition rm = new RequestMethodsRequestCondition(RequestMethod.GET, RequestMethod.POST);
|
||||
CustomRequestCondition custom = new CustomRequestCondition(rm);
|
||||
RequestConditionHolder custom = new RequestConditionHolder(rm);
|
||||
RequestMethodsRequestCondition expected = new RequestMethodsRequestCondition(RequestMethod.GET);
|
||||
|
||||
assertEquals(expected, custom.getMatchingCondition(request).getCondition());
|
||||
@@ -73,7 +77,7 @@ public class CustomRequestConditionTests {
|
||||
|
||||
@Test
|
||||
public void matchEmpty() {
|
||||
CustomRequestCondition empty = new CustomRequestCondition();
|
||||
RequestConditionHolder empty = new RequestConditionHolder(null);
|
||||
assertSame(empty, empty.getMatchingCondition(new MockHttpServletRequest()));
|
||||
}
|
||||
|
||||
@@ -81,8 +85,8 @@ public class CustomRequestConditionTests {
|
||||
public void compare() {
|
||||
HttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
CustomRequestCondition params11 = new CustomRequestCondition(new ParamsRequestCondition("1"));
|
||||
CustomRequestCondition params12 = new CustomRequestCondition(new ParamsRequestCondition("1", "2"));
|
||||
RequestConditionHolder params11 = new RequestConditionHolder(new ParamsRequestCondition("1"));
|
||||
RequestConditionHolder params12 = new RequestConditionHolder(new ParamsRequestCondition("1", "2"));
|
||||
|
||||
assertEquals(1, params11.compareTo(params12, request));
|
||||
assertEquals(-1, params12.compareTo(params11, request));
|
||||
@@ -92,19 +96,19 @@ public class CustomRequestConditionTests {
|
||||
public void compareEmpty() {
|
||||
HttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
CustomRequestCondition empty = new CustomRequestCondition();
|
||||
CustomRequestCondition empty2 = new CustomRequestCondition();
|
||||
CustomRequestCondition custom = new CustomRequestCondition(new ParamsRequestCondition("name"));
|
||||
RequestConditionHolder empty = new RequestConditionHolder(null);
|
||||
RequestConditionHolder empty2 = new RequestConditionHolder(null);
|
||||
RequestConditionHolder notEmpty = new RequestConditionHolder(new ParamsRequestCondition("name"));
|
||||
|
||||
assertEquals(0, empty.compareTo(empty2, request));
|
||||
assertEquals(-1, custom.compareTo(empty, request));
|
||||
assertEquals(1, empty.compareTo(custom, request));
|
||||
assertEquals(-1, notEmpty.compareTo(empty, request));
|
||||
assertEquals(1, empty.compareTo(notEmpty, request));
|
||||
}
|
||||
|
||||
@Test(expected=ClassCastException.class)
|
||||
public void compareIncompatible() {
|
||||
CustomRequestCondition params = new CustomRequestCondition(new ParamsRequestCondition("name"));
|
||||
CustomRequestCondition headers = new CustomRequestCondition(new HeadersRequestCondition("name"));
|
||||
RequestConditionHolder params = new RequestConditionHolder(new ParamsRequestCondition("name"));
|
||||
RequestConditionHolder headers = new RequestConditionHolder(new HeadersRequestCondition("name"));
|
||||
params.compareTo(headers, new MockHttpServletRequest());
|
||||
}
|
||||
|
||||
@@ -54,11 +54,10 @@ import org.springframework.web.servlet.mvc.condition.ParamsRequestCondition;
|
||||
import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition;
|
||||
import org.springframework.web.servlet.mvc.condition.ProducesRequestCondition;
|
||||
import org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
||||
import org.springframework.web.util.UrlPathHelper;
|
||||
|
||||
/**
|
||||
* Test fixture with {@link RequestMappingHandlerMapping}.
|
||||
* Test fixture with {@link RequestMappingInfoHandlerMapping}.
|
||||
*
|
||||
* @author Arjen Poutsma
|
||||
* @author Rossen Stoyanchev
|
||||
@@ -275,6 +274,7 @@ public class RequestMappingInfoHandlerMappingTests {
|
||||
new ConsumesRequestCondition(annotation.consumes(), annotation.headers()),
|
||||
new ProducesRequestCondition(annotation.produces(), annotation.headers()), null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -67,14 +67,14 @@ public class RequestMappingInfoTests {
|
||||
RequestMappingInfo expected = new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo*"), null, null, null, null, null, null);
|
||||
|
||||
assertEquals(expected, info.getMatchingInfo(request));
|
||||
assertEquals(expected, info.getMatchingCondition(request));
|
||||
|
||||
info = new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/**", "/foo*", "/foo"), null, null, null, null, null, null);
|
||||
expected = new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo", "/foo*", "/**"), null, null, null, null, null, null);
|
||||
|
||||
assertEquals(expected, info.getMatchingInfo(request));
|
||||
assertEquals(expected, info.getMatchingCondition(request));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -86,14 +86,14 @@ public class RequestMappingInfoTests {
|
||||
new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo"), null,
|
||||
new ParamsRequestCondition("foo=bar"), null, null, null, null);
|
||||
RequestMappingInfo match = info.getMatchingInfo(request);
|
||||
RequestMappingInfo match = info.getMatchingCondition(request);
|
||||
|
||||
assertNotNull(match);
|
||||
|
||||
info = new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo"), null,
|
||||
new ParamsRequestCondition("foo!=bar"), null, null, null, null);
|
||||
match = info.getMatchingInfo(request);
|
||||
match = info.getMatchingCondition(request);
|
||||
|
||||
assertNull(match);
|
||||
}
|
||||
@@ -107,14 +107,14 @@ public class RequestMappingInfoTests {
|
||||
new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo"), null, null,
|
||||
new HeadersRequestCondition("foo=bar"), null, null, null);
|
||||
RequestMappingInfo match = info.getMatchingInfo(request);
|
||||
RequestMappingInfo match = info.getMatchingCondition(request);
|
||||
|
||||
assertNotNull(match);
|
||||
|
||||
info = new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo"), null, null,
|
||||
new HeadersRequestCondition("foo!=bar"), null, null, null);
|
||||
match = info.getMatchingInfo(request);
|
||||
match = info.getMatchingCondition(request);
|
||||
|
||||
assertNull(match);
|
||||
}
|
||||
@@ -128,14 +128,14 @@ public class RequestMappingInfoTests {
|
||||
new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo"), null, null, null,
|
||||
new ConsumesRequestCondition("text/plain"), null, null);
|
||||
RequestMappingInfo match = info.getMatchingInfo(request);
|
||||
RequestMappingInfo match = info.getMatchingCondition(request);
|
||||
|
||||
assertNotNull(match);
|
||||
|
||||
info = new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo"), null, null, null,
|
||||
new ConsumesRequestCondition("application/xml"), null, null);
|
||||
match = info.getMatchingInfo(request);
|
||||
match = info.getMatchingCondition(request);
|
||||
|
||||
assertNull(match);
|
||||
}
|
||||
@@ -149,14 +149,14 @@ public class RequestMappingInfoTests {
|
||||
new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo"), null, null, null, null,
|
||||
new ProducesRequestCondition("text/plain"), null);
|
||||
RequestMappingInfo match = info.getMatchingInfo(request);
|
||||
RequestMappingInfo match = info.getMatchingCondition(request);
|
||||
|
||||
assertNotNull(match);
|
||||
|
||||
info = new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo"), null, null, null, null,
|
||||
new ProducesRequestCondition("application/xml"), null);
|
||||
match = info.getMatchingInfo(request);
|
||||
match = info.getMatchingCondition(request);
|
||||
|
||||
assertNull(match);
|
||||
}
|
||||
@@ -170,7 +170,7 @@ public class RequestMappingInfoTests {
|
||||
new RequestMappingInfo(
|
||||
new PatternsRequestCondition("/foo"), null, null, null, null, null,
|
||||
new ParamsRequestCondition("foo=bar"));
|
||||
RequestMappingInfo match = info.getMatchingInfo(request);
|
||||
RequestMappingInfo match = info.getMatchingCondition(request);
|
||||
|
||||
assertNotNull(match);
|
||||
|
||||
@@ -178,7 +178,7 @@ public class RequestMappingInfoTests {
|
||||
new PatternsRequestCondition("/foo"), null,
|
||||
new ParamsRequestCondition("foo!=bar"), null, null, null,
|
||||
new ParamsRequestCondition("foo!=bar"));
|
||||
match = info.getMatchingInfo(request);
|
||||
match = info.getMatchingCondition(request);
|
||||
|
||||
assertNull(match);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user