83 lines
2.1 KiB
Go
83 lines
2.1 KiB
Go
package pagination
|
|
|
|
import "testing"
|
|
|
|
func TestCalcPaginationTotalPagesZeroItems(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(0, 10); got != 0 {
|
|
t.Errorf("expected 0, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesZeroLimit(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(100, 0); got != 0 {
|
|
t.Errorf("expected 0, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesZeroBoth(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(0, 0); got != 0 {
|
|
t.Errorf("expected 0, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesExactMultiple(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(100, 10); got != 10 {
|
|
t.Errorf("expected 10, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesPartialLastPage(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(101, 10); got != 11 {
|
|
t.Errorf("expected 11, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesSingleItem(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(1, 10); got != 1 {
|
|
t.Errorf("expected 1, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesItemsLessThanLimit(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(5, 10); got != 1 {
|
|
t.Errorf("expected 1, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesLimitOfOne(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(7, 1); got != 7 {
|
|
t.Errorf("expected 7, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesItemsEqualLimit(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(10, 10); got != 1 {
|
|
t.Errorf("expected 1, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesLargeNumbers(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(1_000_000, 250); got != 4000 {
|
|
t.Errorf("expected 4000, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestCalcPaginationTotalPagesOneMoreThanMultiple(t *testing.T) {
|
|
if got := CalcPaginationTotalPages(11, 5); got != 3 {
|
|
t.Errorf("expected 3, got %d", got)
|
|
}
|
|
}
|
|
|
|
func TestPaginationStructFields(t *testing.T) {
|
|
p := Pagination{
|
|
Page: 2,
|
|
Limit: 25,
|
|
TotalPages: 4,
|
|
TotalItems: 100,
|
|
CurrentPageCount: 25,
|
|
}
|
|
if p.Page != 2 || p.Limit != 25 || p.TotalPages != 4 || p.TotalItems != 100 || p.CurrentPageCount != 25 {
|
|
t.Errorf("unexpected pagination struct values: %+v", p)
|
|
}
|
|
}
|