Select Git revision
data_test.go
options_test.go 1.48 KiB
package options
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestOptions_MergePaginationOptions(t *testing.T) {
var tt = []struct {
name string
options []PaginationOptions
expected PaginationOptions
}{
{
name: "Nil option",
options: nil,
expected: PaginationOptions{},
},
{
name: "Empty options",
options: []PaginationOptions{},
expected: PaginationOptions{},
},
{
name: "One limit/offset option",
options: []PaginationOptions{{Limit: 10, Offset: 100}},
expected: PaginationOptions{Limit: 10, Offset: 100},
},
{
name: "Merge limit/offset #1",
options: []PaginationOptions{{Limit: 0, Offset: 0}, {Limit: 10, Offset: 100}},
expected: PaginationOptions{Limit: 10, Offset: 100},
},
{
name: "Merge limit/offset #2",
options: []PaginationOptions{{Limit: 10, Offset: 100}, {Limit: 0, Offset: 0}},
expected: PaginationOptions{Limit: 10, Offset: 100},
},
{
name: "Merge limit/offset #3",
options: []PaginationOptions{{Limit: 0, Offset: 0}, {Limit: 10, Offset: 100}, {Limit: 0, Offset: 0}},
expected: PaginationOptions{Limit: 10, Offset: 100},
},
{
name: "Merge limit/offset #4",
options: []PaginationOptions{{Limit: 10, Offset: 100}, {}},
expected: PaginationOptions{Limit: 10, Offset: 100},
},
}
for _, v := range tt {
t.Run(v.name, func(t *testing.T) {
actual := MergePaginationOptions(v.options...)
assert.Equal(t, v.expected, actual)
})
}
}