Skip to content

Commit 394d82c

Browse files
committed
DATACMNS-563 - Added explicit unit test for one-indexed parameters on PagedResourcesAssembler.
1 parent 7c2371c commit 394d82c

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

Lines changed: 27 additions & 0 deletions
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;
@@ -168,6 +170,25 @@ public void appendsMissingTemplateParametersToLink() {
168170
assertThat(assembler.appendPaginationParameterTemplates(link), is(new Link("/foo?page=0{&size,sort}")));
169171
}
170172

173+
/**
174+
* @see DATAMCNS-563
175+
*/
176+
@Test
177+
public void createsPaginationLinksForOneIndexedArgumentResolverCorrectly() {
178+
179+
HateoasPageableHandlerMethodArgumentResolver argumentResolver = new HateoasPageableHandlerMethodArgumentResolver();
180+
argumentResolver.setOneIndexedParameters(true);
181+
182+
PagedResourcesAssembler<Person> assembler = new PagedResourcesAssembler<Person>(argumentResolver, null);
183+
PagedResources<Resource<Person>> resource = assembler.toResource(createPage(1));
184+
185+
assertThat(resource.hasLink("prev"), is(true));
186+
assertThat(resource.hasLink("next"), is(true));
187+
188+
assertThat(getQueryParameters(resource.getLink("prev")), hasEntry("page", "1"));
189+
assertThat(getQueryParameters(resource.getLink("next")), hasEntry("page", "3"));
190+
}
191+
171192
private static Page<Person> createPage(int index) {
172193

173194
AbstractPageRequest request = new PageRequest(index, 1);
@@ -178,6 +199,12 @@ private static Page<Person> createPage(int index) {
178199
return new PageImpl<Person>(Arrays.asList(person), request, 3);
179200
}
180201

202+
private static Map<String, String> getQueryParameters(Link link) {
203+
204+
UriComponents uriComponents = UriComponentsBuilder.fromUri(URI.create(link.expand().getHref())).build();
205+
return uriComponents.getQueryParams().toSingleValueMap();
206+
}
207+
181208
static class Person {
182209
String name;
183210
}

0 commit comments

Comments
 (0)