DATACMNS-477 - PageableHandlerMethodArgumentResolver now handles null default.
We now explicitly check for the configured default being null and subsequently return that value if we don't have both the page and the size parameter configured.
This commit is contained in:
@@ -51,7 +51,8 @@ public abstract class PageableDefaultUnitTests {
|
||||
|
||||
static final AbstractPageRequest REFERENCE_WITHOUT_SORT = new PageRequest(PAGE_NUMBER, PAGE_SIZE);
|
||||
static final AbstractPageRequest REFERENCE_WITH_SORT = new PageRequest(PAGE_NUMBER, PAGE_SIZE, SORT);
|
||||
static final AbstractPageRequest REFERENCE_WITH_SORT_FIELDS = new PageRequest(PAGE_NUMBER, PAGE_SIZE, new Sort(SORT_FIELDS));
|
||||
static final AbstractPageRequest REFERENCE_WITH_SORT_FIELDS = new PageRequest(PAGE_NUMBER, PAGE_SIZE, new Sort(
|
||||
SORT_FIELDS));
|
||||
|
||||
@Rule public ExpectedException exception = ExpectedException.none();
|
||||
|
||||
@@ -140,7 +141,12 @@ public abstract class PageableDefaultUnitTests {
|
||||
protected void assertSupportedAndResult(MethodParameter parameter, Pageable pageable, NativeWebRequest request)
|
||||
throws Exception {
|
||||
|
||||
HandlerMethodArgumentResolver resolver = getResolver();
|
||||
assertSupportedAndResult(parameter, pageable, request, getResolver());
|
||||
}
|
||||
|
||||
protected void assertSupportedAndResult(MethodParameter parameter, Pageable pageable, NativeWebRequest request,
|
||||
HandlerMethodArgumentResolver resolver) throws Exception {
|
||||
|
||||
assertThat(resolver.supportsParameter(parameter), is(true));
|
||||
assertThat(resolver.resolveArgument(parameter, null, request, null), is((Object) pageable));
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.springframework.data.web;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.springframework.data.web.PageableHandlerMethodArgumentResolver.*;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -26,6 +28,7 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort.Direction;
|
||||
import org.springframework.data.web.SortDefault.SortDefaults;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
import org.springframework.web.context.request.ServletWebRequest;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link PageableHandlerMethodArgumentResolver}. Pulls in defaulting tests from
|
||||
@@ -152,6 +155,51 @@ public class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefa
|
||||
assertSupportedAndResult(supportedMethodParameter, DEFAULT_PAGE_REQUEST, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATACMNS-477
|
||||
*/
|
||||
@Test
|
||||
public void returnsNullIfFallbackIsNullAndNoParametersGiven() throws Exception {
|
||||
|
||||
PageableHandlerMethodArgumentResolver resolver = getResolver();
|
||||
resolver.setFallbackPageable(null);
|
||||
|
||||
assertSupportedAndResult(supportedMethodParameter, null, new ServletWebRequest(new MockHttpServletRequest()),
|
||||
resolver);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATACMNS-477
|
||||
*/
|
||||
@Test
|
||||
public void returnsNullIfFallbackIsNullAndOnlyPageIsGiven() throws Exception {
|
||||
|
||||
PageableHandlerMethodArgumentResolver resolver = getResolver();
|
||||
resolver.setFallbackPageable(null);
|
||||
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.addParameter("page", "20");
|
||||
|
||||
assertThat(resolver.resolveArgument(supportedMethodParameter, null, new ServletWebRequest(request), null),
|
||||
is(nullValue()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATACMNS-477
|
||||
*/
|
||||
@Test
|
||||
public void returnsNullIfFallbackIsNullAndOnlySizeIsGiven() throws Exception {
|
||||
|
||||
PageableHandlerMethodArgumentResolver resolver = getResolver();
|
||||
resolver.setFallbackPageable(null);
|
||||
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.addParameter("size", "10");
|
||||
|
||||
assertThat(resolver.resolveArgument(supportedMethodParameter, null, new ServletWebRequest(request), null),
|
||||
is(nullValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected PageableHandlerMethodArgumentResolver getResolver() {
|
||||
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
|
||||
|
||||
Reference in New Issue
Block a user