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.

paginate_test.go 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package util
  4. import (
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func TestPaginateSlice(t *testing.T) {
  9. stringSlice := []string{"a", "b", "c", "d", "e"}
  10. result, ok := PaginateSlice(stringSlice, 1, 2).([]string)
  11. assert.True(t, ok)
  12. assert.EqualValues(t, []string{"a", "b"}, result)
  13. result, ok = PaginateSlice(stringSlice, 100, 2).([]string)
  14. assert.True(t, ok)
  15. assert.EqualValues(t, []string{}, result)
  16. result, ok = PaginateSlice(stringSlice, 3, 2).([]string)
  17. assert.True(t, ok)
  18. assert.EqualValues(t, []string{"e"}, result)
  19. result, ok = PaginateSlice(stringSlice, 1, 0).([]string)
  20. assert.True(t, ok)
  21. assert.EqualValues(t, []string{"a", "b", "c", "d", "e"}, result)
  22. result, ok = PaginateSlice(stringSlice, 1, -1).([]string)
  23. assert.True(t, ok)
  24. assert.EqualValues(t, []string{"a", "b", "c", "d", "e"}, result)
  25. type Test struct {
  26. Val int
  27. }
  28. testVar := []*Test{{Val: 2}, {Val: 3}, {Val: 4}}
  29. testVar, ok = PaginateSlice(testVar, 1, 50).([]*Test)
  30. assert.True(t, ok)
  31. assert.EqualValues(t, []*Test{{Val: 2}, {Val: 3}, {Val: 4}}, testVar)
  32. testVar, ok = PaginateSlice(testVar, 2, 2).([]*Test)
  33. assert.True(t, ok)
  34. assert.EqualValues(t, []*Test{{Val: 4}}, testVar)
  35. }