DATACMNS-352 - Aligned setter names for argument resolvers for Pageable and Sort.

PageableHandlerMethodArgumentResolver and SortHandlerMethodArgumentResolver now consistently use set*ParameterName(…) and setQualifierDelimiter(…) for configuration.

Added some more unit tests to verify invalid configuration get rejected.
This commit is contained in:
Oliver Gierke
2013-08-08 12:38:06 +02:00
parent 541ef648f1
commit 59a8cd5566
3 changed files with 66 additions and 25 deletions

View File

@@ -19,6 +19,8 @@ import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.springframework.data.web.SortDefaultUnitTests.*;
import javax.servlet.http.HttpServletRequest;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -28,6 +30,7 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.context.request.ServletWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.util.UriComponentsBuilder;
@@ -128,6 +131,11 @@ public abstract class PageableDefaultUnitTests {
assertSupportedAndResult(parameter, pageable, TestUtils.getWebRequest());
}
protected void assertSupportedAndResult(MethodParameter parameter, Pageable pageable, HttpServletRequest request)
throws Exception {
assertSupportedAndResult(parameter, pageable, new ServletWebRequest(request));
}
protected void assertSupportedAndResult(MethodParameter parameter, Pageable pageable, NativeWebRequest request)
throws Exception {

View File

@@ -30,7 +30,6 @@ import org.springframework.data.web.SortDefault.SortDefaults;
import org.springframework.hateoas.mvc.UriComponentsContributor;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.util.MultiValueMap;
import org.springframework.web.context.request.ServletWebRequest;
import org.springframework.web.util.UriComponentsBuilder;
/**
@@ -67,7 +66,7 @@ public class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefa
MethodParameter parameter = new MethodParameter(Sample.class.getMethod("supportedMethod", Pageable.class), 0);
assertSupportedAndResult(parameter, new PageRequest(0, 100), new ServletWebRequest(request));
assertSupportedAndResult(parameter, new PageRequest(0, 100), request);
}
/**
@@ -92,6 +91,38 @@ public class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefa
assertThat(size.get(0), is("20"));
}
@Test(expected = IllegalArgumentException.class)
public void rejectsEmptyPageParameterName() {
new PageableHandlerMethodArgumentResolver().setPageParameterName("");
}
@Test(expected = IllegalArgumentException.class)
public void rejectsNullPageParameterName() {
new PageableHandlerMethodArgumentResolver().setPageParameterName(null);
}
@Test(expected = IllegalArgumentException.class)
public void rejectsEmptySizeParameterName() {
new PageableHandlerMethodArgumentResolver().setSizeParameterName("");
}
@Test(expected = IllegalArgumentException.class)
public void rejectsNullSizeParameterName() {
new PageableHandlerMethodArgumentResolver().setSizeParameterName(null);
}
@Test
public void qualifierIsUsedInParameterLookup() throws Exception {
MethodParameter parameter = new MethodParameter(Sample.class.getMethod("validQualifier", Pageable.class), 0);
MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter("foo_page", "2");
request.addParameter("foo_size", "10");
assertSupportedAndResult(parameter, new PageRequest(2, 10), request);
}
@Override
protected PageableHandlerMethodArgumentResolver getResolver() {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
@@ -126,6 +157,8 @@ public class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefa
void invalidQualifiers(@Qualifier("foo") Pageable first, @Qualifier("foo") Pageable second);
void validQualifier(@Qualifier("foo") Pageable pageable);
void noQualifiers(Pageable first, Pageable second);
}
}