mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-18 23:51:21 +00:00
fix validate pagination params
This commit is contained in:
67
rpc/core/pipe_test.go
Normal file
67
rpc/core/pipe_test.go
Normal file
@ -0,0 +1,67 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestPaginationPage(t *testing.T) {
|
||||
|
||||
cases := []struct {
|
||||
totalCount int
|
||||
perPage int
|
||||
page int
|
||||
newPage int
|
||||
}{
|
||||
{0, 10, 0, 1},
|
||||
{0, 10, 1, 1},
|
||||
{0, 10, 2, 1},
|
||||
|
||||
{5, 10, -1, 1},
|
||||
{5, 10, 0, 1},
|
||||
{5, 10, 1, 1},
|
||||
{5, 10, 2, 1},
|
||||
{5, 10, 2, 1},
|
||||
|
||||
{5, 5, 1, 1},
|
||||
{5, 5, 2, 1},
|
||||
{5, 5, 3, 1},
|
||||
|
||||
{5, 3, 2, 2},
|
||||
{5, 3, 3, 2},
|
||||
|
||||
{5, 2, 2, 2},
|
||||
{5, 2, 3, 3},
|
||||
{5, 2, 4, 3},
|
||||
}
|
||||
|
||||
for _, c := range cases {
|
||||
p := validatePage(c.page, c.perPage, c.totalCount)
|
||||
assert.Equal(t, c.newPage, p, fmt.Sprintf("%v", c))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestPaginationPerPage(t *testing.T) {
|
||||
|
||||
cases := []struct {
|
||||
totalCount int
|
||||
perPage int
|
||||
newPerPage int
|
||||
}{
|
||||
{5, 0, defaultPerPage},
|
||||
{5, 1, 1},
|
||||
{5, 2, 2},
|
||||
{5, defaultPerPage, defaultPerPage},
|
||||
{5, maxPerPage - 1, maxPerPage - 1},
|
||||
{5, maxPerPage, maxPerPage},
|
||||
{5, maxPerPage + 1, defaultPerPage},
|
||||
}
|
||||
|
||||
for _, c := range cases {
|
||||
p := validatePerPage(c.perPage)
|
||||
assert.Equal(t, c.newPerPage, p, fmt.Sprintf("%v", c))
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user