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)
|
embedDtos(dtos)
|
||||||
);
|
);
|
||||||
collectionDto.setPage(pageNumber);
|
collectionDto.setPage(pageNumber);
|
||||||
|
collectionDto.setPageTotal(computePageTotal(pageSize, pageResult));
|
||||||
return collectionDto;
|
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) {
|
private Links createLinks(NumberedPaging page) {
|
||||||
String baseUrl = createSelfLink();
|
String baseUrl = createSelfLink();
|
||||||
|
|
||||||
|
|||||||
@@ -119,6 +119,30 @@ public class UserCollectionToDtoMapperTest {
|
|||||||
assertEquals("Wurst", ((UserDto) users.get(1)).getName());
|
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) {
|
private PageResult<User> mockPageResult(String... userNames) {
|
||||||
return createPage(createUsers(userNames), 0, userNames.length);
|
return createPage(createUsers(userNames), 0, userNames.length);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user