Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package paginator
  5. import (
  6. "testing"
  7. "code.gitea.io/gitea/models/db"
  8. "code.gitea.io/gitea/modules/setting"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestPaginator(t *testing.T) {
  12. cases := []struct {
  13. db.Paginator
  14. Skip int
  15. Take int
  16. Start int
  17. End int
  18. }{
  19. {
  20. Paginator: &db.ListOptions{Page: -1, PageSize: -1},
  21. Skip: 0,
  22. Take: setting.API.DefaultPagingNum,
  23. Start: 0,
  24. End: setting.API.DefaultPagingNum,
  25. },
  26. {
  27. Paginator: &db.ListOptions{Page: 2, PageSize: 10},
  28. Skip: 10,
  29. Take: 10,
  30. Start: 10,
  31. End: 20,
  32. },
  33. {
  34. Paginator: db.NewAbsoluteListOptions(-1, -1),
  35. Skip: 0,
  36. Take: setting.API.DefaultPagingNum,
  37. Start: 0,
  38. End: setting.API.DefaultPagingNum,
  39. },
  40. {
  41. Paginator: db.NewAbsoluteListOptions(2, 10),
  42. Skip: 2,
  43. Take: 10,
  44. Start: 2,
  45. End: 12,
  46. },
  47. }
  48. for _, c := range cases {
  49. skip, take := c.Paginator.GetSkipTake()
  50. start, end := c.Paginator.GetStartEnd()
  51. assert.Equal(t, c.Skip, skip)
  52. assert.Equal(t, c.Take, take)
  53. assert.Equal(t, c.Start, start)
  54. assert.Equal(t, c.End, end)
  55. }
  56. }