Browse Source

DATACMNS-563 - Added explicit unit test for one-indexed parameters on PagedResourcesAssembler.

1.8.x
Oliver Gierke 11 years ago
parent
commit
394d82ca8a
  1. 27
      src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java

27
src/test/java/org/springframework/data/web/PagedResourcesAssemblerUnitTests.java

@ -18,9 +18,11 @@ package org.springframework.data.web; @@ -18,9 +18,11 @@ package org.springframework.data.web;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import java.net.URI;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
@ -168,6 +170,25 @@ public class PagedResourcesAssemblerUnitTests { @@ -168,6 +170,25 @@ public class PagedResourcesAssemblerUnitTests {
assertThat(assembler.appendPaginationParameterTemplates(link), is(new Link("/foo?page=0{&size,sort}")));
}
/**
* @see DATAMCNS-563
*/
@Test
public void createsPaginationLinksForOneIndexedArgumentResolverCorrectly() {
HateoasPageableHandlerMethodArgumentResolver argumentResolver = new HateoasPageableHandlerMethodArgumentResolver();
argumentResolver.setOneIndexedParameters(true);
PagedResourcesAssembler<Person> assembler = new PagedResourcesAssembler<Person>(argumentResolver, null);
PagedResources<Resource<Person>> resource = assembler.toResource(createPage(1));
assertThat(resource.hasLink("prev"), is(true));
assertThat(resource.hasLink("next"), is(true));
assertThat(getQueryParameters(resource.getLink("prev")), hasEntry("page", "1"));
assertThat(getQueryParameters(resource.getLink("next")), hasEntry("page", "3"));
}
private static Page<Person> createPage(int index) {
AbstractPageRequest request = new PageRequest(index, 1);
@ -178,6 +199,12 @@ public class PagedResourcesAssemblerUnitTests { @@ -178,6 +199,12 @@ public class PagedResourcesAssemblerUnitTests {
return new PageImpl<Person>(Arrays.asList(person), request, 3);
}
private static Map<String, String> getQueryParameters(Link link) {
UriComponents uriComponents = UriComponentsBuilder.fromUri(URI.create(link.expand().getHref())).build();
return uriComponents.getQueryParams().toSingleValueMap();
}
static class Person {
String name;
}

Loading…
Cancel
Save