Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.3 KiB
63 lines
1.3 KiB
// Copyright 2021 The Gitea Authors. All rights reserved. |
|
// Use of this source code is governed by a MIT-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package paginator |
|
|
|
import ( |
|
"testing" |
|
|
|
"code.gitea.io/gitea/models/db" |
|
"code.gitea.io/gitea/modules/setting" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestPaginator(t *testing.T) { |
|
cases := []struct { |
|
db.Paginator |
|
Skip int |
|
Take int |
|
Start int |
|
End int |
|
}{ |
|
{ |
|
Paginator: &db.ListOptions{Page: -1, PageSize: -1}, |
|
Skip: 0, |
|
Take: setting.API.DefaultPagingNum, |
|
Start: 0, |
|
End: setting.API.DefaultPagingNum, |
|
}, |
|
{ |
|
Paginator: &db.ListOptions{Page: 2, PageSize: 10}, |
|
Skip: 10, |
|
Take: 10, |
|
Start: 10, |
|
End: 20, |
|
}, |
|
{ |
|
Paginator: db.NewAbsoluteListOptions(-1, -1), |
|
Skip: 0, |
|
Take: setting.API.DefaultPagingNum, |
|
Start: 0, |
|
End: setting.API.DefaultPagingNum, |
|
}, |
|
{ |
|
Paginator: db.NewAbsoluteListOptions(2, 10), |
|
Skip: 2, |
|
Take: 10, |
|
Start: 2, |
|
End: 12, |
|
}, |
|
} |
|
|
|
for _, c := range cases { |
|
skip, take := c.Paginator.GetSkipTake() |
|
start, end := c.Paginator.GetStartEnd() |
|
|
|
assert.Equal(t, c.Skip, skip) |
|
assert.Equal(t, c.Take, take) |
|
assert.Equal(t, c.Start, start) |
|
assert.Equal(t, c.End, end) |
|
} |
|
}
|
|
|