Skip to content

Commit 127747f

Browse files
committed
DATACMNS-563 - Added explicit unit test for one-indexed parameters on PagedResourcesAssembler.
1 parent f438281 commit 127747f

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

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

+27
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@
1818
import static org.hamcrest.Matchers.*;
1919
import static org.junit.Assert.*;
2020

21+
import java.net.URI;
2122
import java.util.Arrays;
2223
import java.util.Collection;
2324
import java.util.Collections;
25+
import java.util.Map;
2426

2527
import org.junit.Before;
2628
import org.junit.Test;
@@ -183,6 +185,25 @@ public void keepsExistingTemplateVariablesFromBaseLink() {
183185
assertThat(result.getVariableNames(), hasItems("projection", "size", "sort"));
184186
}
185187

188+
/**
189+
* @see DATAMCNS-563
190+
*/
191+
@Test
192+
public void createsPaginationLinksForOneIndexedArgumentResolverCorrectly() {
193+
194+
HateoasPageableHandlerMethodArgumentResolver argumentResolver = new HateoasPageableHandlerMethodArgumentResolver();
195+
argumentResolver.setOneIndexedParameters(true);
196+
197+
PagedResourcesAssembler<Person> assembler = new PagedResourcesAssembler<Person>(argumentResolver, null);
198+
PagedResources<Resource<Person>> resource = assembler.toResource(createPage(1));
199+
200+
assertThat(resource.hasLink("prev"), is(true));
201+
assertThat(resource.hasLink("next"), is(true));
202+
203+
assertThat(getQueryParameters(resource.getLink("prev")), hasEntry("page", "1"));
204+
assertThat(getQueryParameters(resource.getLink("next")), hasEntry("page", "3"));
205+
}
206+
186207
private static Page<Person> createPage(int index) {
187208

188209
AbstractPageRequest request = new PageRequest(index, 1);
@@ -193,6 +214,12 @@ private static Page<Person> createPage(int index) {
193214
return new PageImpl<Person>(Arrays.asList(person), request, 3);
194215
}
195216

217+
private static Map<String, String> getQueryParameters(Link link) {
218+
219+
UriComponents uriComponents = UriComponentsBuilder.fromUri(URI.create(link.expand().getHref())).build();
220+
return uriComponents.getQueryParams().toSingleValueMap();
221+
}
222+
196223
static class Person {
197224
String name;
198225
}

0 commit comments

Comments
 (0)