mirror of https://github.com/go-gitea/gitea.git
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.
46 lines
1.2 KiB
46 lines
1.2 KiB
// Copyright 2021 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package util |
|
|
|
import ( |
|
"testing" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestPaginateSlice(t *testing.T) { |
|
stringSlice := []string{"a", "b", "c", "d", "e"} |
|
result, ok := PaginateSlice(stringSlice, 1, 2).([]string) |
|
assert.True(t, ok) |
|
assert.Equal(t, []string{"a", "b"}, result) |
|
|
|
result, ok = PaginateSlice(stringSlice, 100, 2).([]string) |
|
assert.True(t, ok) |
|
assert.Equal(t, []string{}, result) |
|
|
|
result, ok = PaginateSlice(stringSlice, 3, 2).([]string) |
|
assert.True(t, ok) |
|
assert.Equal(t, []string{"e"}, result) |
|
|
|
result, ok = PaginateSlice(stringSlice, 1, 0).([]string) |
|
assert.True(t, ok) |
|
assert.Equal(t, []string{"a", "b", "c", "d", "e"}, result) |
|
|
|
result, ok = PaginateSlice(stringSlice, 1, -1).([]string) |
|
assert.True(t, ok) |
|
assert.Equal(t, []string{"a", "b", "c", "d", "e"}, result) |
|
|
|
type Test struct { |
|
Val int |
|
} |
|
|
|
testVar := []*Test{{Val: 2}, {Val: 3}, {Val: 4}} |
|
testVar, ok = PaginateSlice(testVar, 1, 50).([]*Test) |
|
assert.True(t, ok) |
|
assert.Equal(t, []*Test{{Val: 2}, {Val: 3}, {Val: 4}}, testVar) |
|
|
|
testVar, ok = PaginateSlice(testVar, 2, 2).([]*Test) |
|
assert.True(t, ok) |
|
assert.Equal(t, []*Test{{Val: 4}}, testVar) |
|
}
|
|
|