DATACMNS-418 - PagedResourcesAssembler now exposes method to append template parameters.

PagedResourcesAssembler.appendPaginationParameterTemplates adds the currently missing pagination template variables to the given link.
This commit is contained in:
Oliver Gierke
2014-01-23 15:41:37 +01:00
parent f1d49c6f37
commit a16375bb17
2 changed files with 50 additions and 3 deletions

View File

@@ -55,6 +55,7 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources<Resource<Person>> resources = assembler.toResource(createPage(0));
assertThat(resources.getLink(Link.REL_PREVIOUS), is(nullValue()));
assertThat(resources.getLink(Link.REL_SELF), is(notNullValue()));
assertThat(resources.getLink(Link.REL_NEXT), is(notNullValue()));
}
@@ -65,6 +66,7 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources<Resource<Person>> resources = assembler.toResource(createPage(1));
assertThat(resources.getLink(Link.REL_PREVIOUS), is(notNullValue()));
assertThat(resources.getLink(Link.REL_SELF), is(notNullValue()));
assertThat(resources.getLink(Link.REL_NEXT), is(notNullValue()));
}
@@ -75,6 +77,7 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources<Resource<Person>> resources = assembler.toResource(createPage(2));
assertThat(resources.getLink(Link.REL_PREVIOUS), is(notNullValue()));
assertThat(resources.getLink(Link.REL_SELF), is(notNullValue()));
assertThat(resources.getLink(Link.REL_NEXT), is(nullValue()));
}
@@ -87,6 +90,7 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources<Resource<Person>> resources = assembler.toResource(createPage(1));
assertThat(resources.getLink(Link.REL_PREVIOUS).getHref(), startsWith(baseUri.toUriString()));
assertThat(resources.getLink(Link.REL_SELF), is(notNullValue()));
assertThat(resources.getLink(Link.REL_NEXT).getHref(), startsWith(baseUri.toUriString()));
}
@@ -99,6 +103,7 @@ public class PagedResourcesAssemblerUnitTests {
PagedResources<Resource<Person>> resources = assembler.toResource(createPage(1), link);
assertThat(resources.getLink(Link.REL_PREVIOUS).getHref(), startsWith(link.getHref()));
assertThat(resources.getLink(Link.REL_SELF), is(notNullValue()));
assertThat(resources.getLink(Link.REL_NEXT).getHref(), startsWith(link.getHref()));
}
@@ -117,6 +122,31 @@ public class PagedResourcesAssemblerUnitTests {
assembler.toResource(page);
}
/**
* @see DATACMNS-418
*/
@Test
public void addsSelfLinkWithPaginationTemplateVariables() {
PagedResourcesAssembler<Person> assembler = new PagedResourcesAssembler<Person>(resolver, null);
PagedResources<Resource<Person>> resources = assembler.toResource(createPage(1));
Link selfLink = resources.getLink(Link.REL_SELF);
assertThat(selfLink.getHref(), endsWith("{?page,size,sort}"));
}
/**
* @see DATACMNS-418
*/
@Test
public void appendsMissingTemplateParametersToLink() {
PagedResourcesAssembler<Person> assembler = new PagedResourcesAssembler<Person>(resolver, null);
Link link = new Link("/foo?page=0");
assertThat(assembler.appendPaginationParameterTemplates(link), is(new Link("/foo?page=0{&size,sort}")));
}
private static Page<Person> createPage(int index) {
AbstractPageRequest request = new PageRequest(index, 1);