Merge pull request #202 from Glosur/fix-unpaged-serialization

Fix serialization of Pageable.unpaged
This commit is contained in:
Marcin Grzejszczak
2019-07-29 16:43:51 +02:00
committed by GitHub
2 changed files with 23 additions and 10 deletions

View File

@@ -81,8 +81,12 @@ public class PageableSpringEncoder implements Encoder {
if (supports(object)) {
if (object instanceof Pageable) {
Pageable pageable = (Pageable) object;
template.query(pageParameter, pageable.getPageNumber() + "");
template.query(sizeParameter, pageable.getPageSize() + "");
if (pageable.isPaged()) {
template.query(pageParameter, pageable.getPageNumber() + "");
template.query(sizeParameter, pageable.getPageSize() + "");
}
if (pageable.getSort() != null) {
applySort(template, pageable.getSort());
}

View File

@@ -64,13 +64,12 @@ public class PageableEncoderTests {
encoder.encode(createPageAndSortRequest(), null, request);
// Request queries shall contain three entries
assertThat(request.queries().size()).isEqualTo(3);
assertThat(request.queries()).hasSize(3);
// Request page shall contain page
assertThat(request.queries().get("page")).contains(String.valueOf(PAGE));
// Request size shall contain size
assertThat(request.queries().get("size")).contains(String.valueOf(SIZE));
// Request sort size shall contain sort entries
assertThat(request.queries().get("sort").size()).isEqualTo(2);
assertThat(request.queries().get("size")).contains(String.valueOf(SIZE)); // Request sort size shall contain sort entries
assertThat(request.queries().get("sort")).hasSize(2);
}
private Pageable createPageAndSortRequest() {
@@ -87,9 +86,8 @@ public class PageableEncoderTests {
// Request page shall contain page
assertThat(request.queries().get("page")).contains(String.valueOf(PAGE));
// Request size shall contain size
assertThat(request.queries().get("size")).contains(String.valueOf(SIZE));
// Request sort size shall contain sort entries
assertThat(request.queries().containsKey("sort")).isEqualTo(false);
assertThat(request.queries().get("size")).contains(String.valueOf(SIZE)); // Request sort size shall contain sort entries
assertThat(request.queries()).doesNotContainKey("sort");
}
private Pageable createPageAndRequest() {
@@ -106,11 +104,22 @@ public class PageableEncoderTests {
// Request queries shall contain three entries
assertThat(request.queries().size()).isEqualTo(1);
// Request sort size shall contain sort entries
assertThat(request.queries().get("sort").size()).isEqualTo(2);
assertThat(request.queries().get("sort")).hasSize(2);
}
private Sort createSort() {
return Sort.by(SORT_1, SORT_2).ascending();
}
@Test
public void testUnpagedRequest() {
Encoder encoder = this.context.getInstance("foo", Encoder.class);
assertThat(encoder).isNotNull();
RequestTemplate request = new RequestTemplate();
encoder.encode(Pageable.unpaged(), null, request);
// Request queries shall contain three entries
assertThat(request.queries()).isEmpty();
}
}