Fix bug with custom RequestCondition
A custom RequestCondition which can be provided by overriding methods in RequestMappingHandlerMapping worked only for conditions that match and did not return null (as it should have) for conditions that don't match. Issues: SPR-9134
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package org.springframework.web.servlet.mvc.condition;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -24,15 +25,11 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import org.junit.Test;
|
||||
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
|
||||
* A test fixture for
|
||||
* {code org.springframework.web.servlet.mvc.method.RequestConditionHolder} tests.
|
||||
*
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
*/
|
||||
public class RequestConditionHolderTests {
|
||||
@@ -41,7 +38,7 @@ public class RequestConditionHolderTests {
|
||||
public void combineEmpty() {
|
||||
RequestConditionHolder empty = new RequestConditionHolder(null);
|
||||
RequestConditionHolder notEmpty = new RequestConditionHolder(new ParamsRequestCondition("name"));
|
||||
|
||||
|
||||
assertSame(empty, empty.combine(new RequestConditionHolder(null)));
|
||||
assertSame(notEmpty, notEmpty.combine(empty));
|
||||
assertSame(notEmpty, empty.combine(notEmpty));
|
||||
@@ -52,7 +49,7 @@ public class RequestConditionHolderTests {
|
||||
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));
|
||||
}
|
||||
|
||||
@@ -67,14 +64,24 @@ public class RequestConditionHolderTests {
|
||||
public void match() {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
|
||||
request.setParameter("name1", "value1");
|
||||
|
||||
|
||||
RequestMethodsRequestCondition rm = new RequestMethodsRequestCondition(RequestMethod.GET, RequestMethod.POST);
|
||||
RequestConditionHolder custom = new RequestConditionHolder(rm);
|
||||
RequestMethodsRequestCondition expected = new RequestMethodsRequestCondition(RequestMethod.GET);
|
||||
|
||||
|
||||
assertEquals(expected, custom.getMatchingCondition(request).getCondition());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void noMatch() {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
|
||||
|
||||
RequestMethodsRequestCondition rm = new RequestMethodsRequestCondition(RequestMethod.POST);
|
||||
RequestConditionHolder custom = new RequestConditionHolder(rm);
|
||||
|
||||
assertNull(custom.getMatchingCondition(request));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void matchEmpty() {
|
||||
RequestConditionHolder empty = new RequestConditionHolder(null);
|
||||
@@ -91,7 +98,7 @@ public class RequestConditionHolderTests {
|
||||
assertEquals(1, params11.compareTo(params12, request));
|
||||
assertEquals(-1, params12.compareTo(params11, request));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void compareEmpty() {
|
||||
HttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
Reference in New Issue
Block a user