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

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 util
  5. import (
  6. "testing"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func TestPaginateSlice(t *testing.T) {
  10. stringSlice := []string{"a", "b", "c", "d", "e"}
  11. result, ok := PaginateSlice(stringSlice, 1, 2).([]string)
  12. assert.True(t, ok)
  13. assert.EqualValues(t, []string{"a", "b"}, result)
  14. result, ok = PaginateSlice(stringSlice, 100, 2).([]string)
  15. assert.True(t, ok)
  16. assert.EqualValues(t, []string{}, result)
  17. result, ok = PaginateSlice(stringSlice, 3, 2).([]string)
  18. assert.True(t, ok)
  19. assert.EqualValues(t, []string{"e"}, result)
  20. result, ok = PaginateSlice(stringSlice, 1, 0).([]string)
  21. assert.True(t, ok)
  22. assert.EqualValues(t, []string{"a", "b", "c", "d", "e"}, result)
  23. result, ok = PaginateSlice(stringSlice, 1, -1).([]string)
  24. assert.True(t, ok)
  25. assert.EqualValues(t, []string{"a", "b", "c", "d", "e"}, result)
  26. type Test struct {
  27. Val int
  28. }
  29. var testVar = []*Test{{Val: 2}, {Val: 3}, {Val: 4}}
  30. testVar, ok = PaginateSlice(testVar, 1, 50).([]*Test)
  31. assert.True(t, ok)
  32. assert.EqualValues(t, []*Test{{Val: 2}, {Val: 3}, {Val: 4}}, testVar)
  33. testVar, ok = PaginateSlice(testVar, 2, 2).([]*Test)
  34. assert.True(t, ok)
  35. assert.EqualValues(t, []*Test{{Val: 4}}, testVar)
  36. }