DATACMNS-1827 - Pageable and Sort arguments with empty qualifier value shouldn't be prefixed with delimiter.

Original pull request: #473.
This commit is contained in:
Vedran Pavic
2020-11-09 20:19:44 +01:00
committed by Mark Paluch
parent 1d146da048
commit e758dd3a84
4 changed files with 31 additions and 3 deletions

View File

@@ -35,6 +35,7 @@ import org.springframework.web.context.request.ServletWebRequest;
*
* @author Oliver Gierke
* @author Nick Williams
* @author Vedran Pavic
*/
class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefaultUnitTests {
@@ -244,6 +245,18 @@ class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefaultUnit
assertThat(resolver.isFallbackPageable(PageRequest.of(0, 10))).isFalse();
}
@Test // DATACMNS-1827
void emptyQualifierIsUsedInParameterLookup() throws Exception {
MethodParameter parameter = new MethodParameter(Sample.class.getMethod("emptyQualifier", Pageable.class), 0);
MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter("page", "2");
request.addParameter("size", "10");
assertSupportedAndResult(parameter, PageRequest.of(2, 10), request);
}
@Override
protected PageableHandlerMethodArgumentResolver getResolver() {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
@@ -283,5 +296,7 @@ class PageableHandlerMethodArgumentResolverUnitTests extends PageableDefaultUnit
void validQualifier(@Qualifier("foo") Pageable pageable);
void noQualifiers(Pageable first, Pageable second);
void emptyQualifier(@Qualifier Pageable pageable);
}
}

View File

@@ -45,6 +45,7 @@ import org.springframework.web.context.request.ServletWebRequest;
* @author Thomas Darimont
* @author Nick Williams
* @author Mark Paluch
* @author Vedran Pavic
*/
class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitTests {
@@ -241,6 +242,15 @@ class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitTests {
});
}
@Test // DATACMNS-1827
void emptyQualifierIsUsedInParameterLookup() {
MethodParameter parameter = getParameterOfMethod("emptyQualifier");
Sort reference = Sort.by("bar", "foo");
assertSupportedAndResolvedTo(getRequestWithSort(reference, ""), parameter, reference);
}
private static Sort resolveSort(HttpServletRequest request, MethodParameter parameter) throws Exception {
SortHandlerMethodArgumentResolver resolver = new SortHandlerMethodArgumentResolver();
@@ -306,5 +316,7 @@ class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitTests {
void containeredDefault(@SortDefaults(@SortDefault({ "foo", "bar" })) Sort sort);
void invalid(@SortDefaults(@SortDefault({ "foo", "bar" })) @SortDefault({ "bar", "foo" }) Sort sort);
void emptyQualifier(@Qualifier Sort sort);
}
}