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