#89 - Tweaked assertions in PageMetadata.
PageMetadata doesn't reject empty pages anymore if they're used with 1-indexed Pageables. Also tweaked the assertions to only reject negative values for now.
This commit is contained in:
@@ -204,8 +204,10 @@ public class PagedResources<T> extends Resources<T> {
|
||||
*/
|
||||
public PageMetadata(long size, long number, long totalElements, long totalPages) {
|
||||
|
||||
Assert.isTrue(number < totalPages,
|
||||
"The current page number cannot be greater or equal to the total number of pages!");
|
||||
Assert.isTrue(size > -1, "Size must not be negative!");
|
||||
Assert.isTrue(number > -1, "Number must not be negative!");
|
||||
Assert.isTrue(totalElements > -1, "Total elements must not be negative!");
|
||||
Assert.isTrue(totalPages > -1, "Total pages must not be negative!");
|
||||
|
||||
this.size = size;
|
||||
this.number = number;
|
||||
@@ -221,7 +223,7 @@ public class PagedResources<T> extends Resources<T> {
|
||||
* @param totalElements the total number of elements available
|
||||
*/
|
||||
public PageMetadata(long size, long number, long totalElements) {
|
||||
this(size, number, totalElements, totalElements / size);
|
||||
this(size, number, totalElements, size == 0 ? 0 : totalElements / size);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -55,4 +55,44 @@ public class PagedResourcesUnitTest {
|
||||
|
||||
assertThat(resources.getPreviousLink(), is(notNullValue()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #89
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void preventsNegativePageSize() {
|
||||
new PageMetadata(-1, 0, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #89
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void preventsNegativePageNumber() {
|
||||
new PageMetadata(0, -1, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #89
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void preventsNegativeTotalElements() {
|
||||
new PageMetadata(0, 0, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #89
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void preventsNegativeTotalPages() {
|
||||
new PageMetadata(0, 0, 0, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #89
|
||||
*/
|
||||
@Test
|
||||
public void allowsOneIndexedPages() {
|
||||
new PageMetadata(10, 1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user