18
18
import static org .hamcrest .Matchers .*;
19
19
import static org .junit .Assert .*;
20
20
21
+ import java .net .URI ;
21
22
import java .util .Arrays ;
22
23
import java .util .Collection ;
23
24
import java .util .Collections ;
25
+ import java .util .Map ;
24
26
25
27
import org .junit .Before ;
26
28
import org .junit .Test ;
@@ -183,6 +185,25 @@ public void keepsExistingTemplateVariablesFromBaseLink() {
183
185
assertThat (result .getVariableNames (), hasItems ("projection" , "size" , "sort" ));
184
186
}
185
187
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
+
186
207
private static Page <Person > createPage (int index ) {
187
208
188
209
AbstractPageRequest request = new PageRequest (index , 1 );
@@ -193,6 +214,12 @@ private static Page<Person> createPage(int index) {
193
214
return new PageImpl <Person >(Arrays .asList (person ), request , 3 );
194
215
}
195
216
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
+
196
223
static class Person {
197
224
String name ;
198
225
}
0 commit comments