diff --git a/src/main/java/org/springframework/data/domain/PageImpl.java b/src/main/java/org/springframework/data/domain/PageImpl.java index ef8323a555..806f98bca3 100644 --- a/src/main/java/org/springframework/data/domain/PageImpl.java +++ b/src/main/java/org/springframework/data/domain/PageImpl.java @@ -54,6 +54,16 @@ public PageImpl(List content, Pageable pageable, long total) { .orElse(total); } + /** + * Creates a new {@link PageImpl} with the given content and pageable. + * + * @param content must not be {@literal null}. + * @param pageable the paging information, must not be {@literal null}. + */ + public PageImpl(List content, Pageable pageable) { + this(content, pageable, CollectionUtils.isEmpty(content) ? 0 : content.size()); + } + /** * Creates a new {@link PageImpl} with the given content. This will result in the created {@link Page} being identical * to the entire {@link List}. @@ -61,7 +71,7 @@ public PageImpl(List content, Pageable pageable, long total) { * @param content must not be {@literal null}. */ public PageImpl(List content) { - this(content, Pageable.unpaged(), CollectionUtils.isEmpty(content) ? 0 : content.size()); + this(content, Pageable.unpaged()); } @Override diff --git a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java index ba2969e4d2..f4542af8dc 100755 --- a/src/test/java/org/springframework/data/domain/PageImplUnitTests.java +++ b/src/test/java/org/springframework/data/domain/PageImplUnitTests.java @@ -32,6 +32,22 @@ */ class PageImplUnitTests { + @Test + void createsPageWithContentAndPageable() { + + List content = Arrays.asList("foo", "bar", "baz"); + PageRequest pageable = PageRequest.of(0, 10); + + Page page = new PageImpl<>(content, pageable); + + assertThat(page.getContent()).isEqualTo(content); + assertThat(page.getPageable()).isEqualTo(pageable); + assertThat(page.getTotalElements()).isEqualTo(content.size()); + assertThat(page.getTotalPages()).isEqualTo(1); + assertThat(page.getNumber()).isEqualTo(0); + assertThat(page.getSize()).isEqualTo(10); + } + @Test void assertEqualsForSimpleSetup() {