DATACMNS-418 - Use TemplateVariables value type for pagination templates.

Changed Hateoas(Pageable|Sort)HandlerMethodArgumentResolver to use newly introduced TypeVariables abstraction to avoid having to deal with string representations manually.

The registered TemplateVariables carry a "pagination.….description" key to be resolved against a MessageSource.
This commit is contained in:
Oliver Gierke
2014-01-20 16:51:09 +01:00
parent 0f38612dab
commit 0ce214cd56
5 changed files with 36 additions and 30 deletions

View File

@@ -84,6 +84,7 @@ public class HateoasPageableHandlerMethodArgumentResolverUnitTests extends
public void appendsTemplateVariablesCorrectly() {
assertTemplateEnrichment("/foo", "{?page,size,sort}");
assertTemplateEnrichment("/foo?bar=1", "{&page,size,sort}");
assertTemplateEnrichment("/foo?page=1", "{&size,sort}");
assertTemplateEnrichment("/foo?page=1&size=10", "{&sort}");
assertTemplateEnrichment("/foo?page=1&sort=foo,asc", "{&size}");
@@ -100,7 +101,7 @@ public class HateoasPageableHandlerMethodArgumentResolverUnitTests extends
HateoasPageableHandlerMethodArgumentResolver resolver = getResolver();
resolver.setPageParameterName("foo");
String variables = resolver.getPaginationTemplateVariables(null, uriComponents);
String variables = resolver.getPaginationTemplateVariables(null, uriComponents).toString();
assertThat(variables, is("{?foo,size,sort}"));
}
@@ -128,6 +129,6 @@ public class HateoasPageableHandlerMethodArgumentResolverUnitTests extends
UriComponents uriComponents = UriComponentsBuilder.fromUriString(baseUri).build();
HateoasPageableHandlerMethodArgumentResolver resolver = getResolver();
assertThat(resolver.getPaginationTemplateVariables(null, uriComponents), is(expected));
assertThat(resolver.getPaginationTemplateVariables(null, uriComponents).toString(), is(expected));
}
}

View File

@@ -61,7 +61,7 @@ public class HateoasSortHandlerMethodArgumentResolverUnitTests extends SortHandl
UriComponents uriComponents = UriComponentsBuilder.fromPath("/").build();
HateoasSortHandlerMethodArgumentResolver resolver = new HateoasSortHandlerMethodArgumentResolver();
assertThat(resolver.getSortTemplateVariables(null, uriComponents), is("{?sort}"));
assertThat(resolver.getSortTemplateVariables(null, uriComponents).toString(), is("{?sort}"));
}
private void assertUriStringFor(Sort sort, String expected) throws Exception {