mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 08:25:44 +01:00
Fix total page count
This commit is contained in:
@@ -39,9 +39,18 @@ abstract class BasicCollectionToDtoMapper<E extends ModelObject, D extends HalRe
|
||||
embedDtos(dtos)
|
||||
);
|
||||
collectionDto.setPage(pageNumber);
|
||||
collectionDto.setPageTotal(computePageTotal(pageSize, pageResult));
|
||||
return collectionDto;
|
||||
}
|
||||
|
||||
private int computePageTotal(int pageSize, PageResult<E> pageResult) {
|
||||
if (pageResult.getOverallCount() % pageSize > 0) {
|
||||
return pageResult.getOverallCount() / pageSize + 1;
|
||||
} else {
|
||||
return pageResult.getOverallCount() / pageSize;
|
||||
}
|
||||
}
|
||||
|
||||
private Links createLinks(NumberedPaging page) {
|
||||
String baseUrl = createSelfLink();
|
||||
|
||||
|
||||
@@ -119,6 +119,30 @@ public class UserCollectionToDtoMapperTest {
|
||||
assertEquals("Wurst", ((UserDto) users.get(1)).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCreatePageTotal_forSparsePages() {
|
||||
PageResult<User> pageResult = createPage(createUsers("Hannes", "Karl", "Piet"), 0, 1);
|
||||
|
||||
CollectionDto collectionDto = mapper.map(0, 2, pageResult);
|
||||
assertEquals(2, collectionDto.getPageTotal());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCreatePageTotal_forCompletePages() {
|
||||
PageResult<User> pageResult = createPage(createUsers("Hannes", "Karl", "Piet", "Hein"), 0, 1);
|
||||
|
||||
CollectionDto collectionDto = mapper.map(0, 2, pageResult);
|
||||
assertEquals(2, collectionDto.getPageTotal());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCreatePageTotal_forNoPages() {
|
||||
PageResult<User> pageResult = createPage(createUsers(), 0, 1);
|
||||
|
||||
CollectionDto collectionDto = mapper.map(0, 1, pageResult);
|
||||
assertEquals(0, collectionDto.getPageTotal());
|
||||
}
|
||||
|
||||
private PageResult<User> mockPageResult(String... userNames) {
|
||||
return createPage(createUsers(userNames), 0, userNames.length);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user