From 17b1d9f0a8c91479895f9a130d600bfcdef966aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Sat, 12 Jan 2019 16:11:52 +0100 Subject: [PATCH] Fix pagination and add test --- source/citesystem/server/paginationinfo.d | 2 +- test/citesystem/testpaginationinfo.d | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/source/citesystem/server/paginationinfo.d b/source/citesystem/server/paginationinfo.d index 9e98658..34173c7 100644 --- a/source/citesystem/server/paginationinfo.d +++ b/source/citesystem/server/paginationinfo.d @@ -16,7 +16,7 @@ public struct PaginationInfo { @property size_t lastPage() const { auto numberOfFullPages = numberOfElements / pagesize; - if (numberOfFullPages % pagesize == 0) { + if (numberOfElements % pagesize != 0) { return numberOfFullPages + 1; } else { return numberOfFullPages; diff --git a/test/citesystem/testpaginationinfo.d b/test/citesystem/testpaginationinfo.d index b25f1fa..dfd0749 100644 --- a/test/citesystem/testpaginationinfo.d +++ b/test/citesystem/testpaginationinfo.d @@ -14,6 +14,16 @@ private import citesystem.server.paginationinfo : PaginationInfo; actualLastPage.shouldEqual(expectedLastPage); } +@("Last page calculation, actual case") +@system unittest { + const testPaginationInfo = PaginationInfo(1, 10, 52); + const actualLastPage = testPaginationInfo.lastPage; + const expectedLastPage = 6; + + actualLastPage.shouldEqual(expectedLastPage); +} + + @("Last page calculation, harder case") @system unittest { const testPaginationInfo = PaginationInfo(1, 10, 105);