Select Git revision
options_test.go
options_test.go 2.39 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 page option",
options: []PaginationOptions{{PageNum: 10, PageSize: 100}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
name: "Merge pages #1",
options: []PaginationOptions{{PageNum: 0, PageSize: 0}, {PageNum: 10, PageSize: 100}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
name: "Merge pages #2",
options: []PaginationOptions{{PageNum: 10, PageSize: 100}, {PageNum: 0, PageSize: 0}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
name: "Merge pages #3",
options: []PaginationOptions{{PageNum: 0, PageSize: 0}, {PageNum: 10, PageSize: 100}, {PageNum: 0, PageSize: 0}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
name: "Merge pages #4",
options: []PaginationOptions{{PageNum: 10, PageSize: 100}, {}},
expected: PaginationOptions{PageNum: 10, PageSize: 100},
},
{
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},
},