gitea源码

paginator_test.go 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package paginator
  4. import (
  5. "testing"
  6. "code.gitea.io/gitea/models/db"
  7. "code.gitea.io/gitea/modules/setting"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestPaginator(t *testing.T) {
  11. cases := []struct {
  12. db.Paginator
  13. Skip int
  14. Take int
  15. Start int
  16. End int
  17. }{
  18. {
  19. Paginator: &db.ListOptions{Page: -1, PageSize: -1},
  20. Skip: 0,
  21. Take: setting.API.DefaultPagingNum,
  22. Start: 0,
  23. End: setting.API.DefaultPagingNum,
  24. },
  25. {
  26. Paginator: &db.ListOptions{Page: 2, PageSize: 10},
  27. Skip: 10,
  28. Take: 10,
  29. Start: 10,
  30. End: 20,
  31. },
  32. {
  33. Paginator: db.NewAbsoluteListOptions(-1, -1),
  34. Skip: 0,
  35. Take: setting.API.DefaultPagingNum,
  36. Start: 0,
  37. End: setting.API.DefaultPagingNum,
  38. },
  39. {
  40. Paginator: db.NewAbsoluteListOptions(2, 10),
  41. Skip: 2,
  42. Take: 10,
  43. Start: 2,
  44. End: 12,
  45. },
  46. }
  47. for _, c := range cases {
  48. skip, take := c.Paginator.GetSkipTake()
  49. assert.Equal(t, c.Skip, skip)
  50. assert.Equal(t, c.Take, take)
  51. }
  52. }