github.com/Finschia/ostracon@v1.1.5/rpc/core/env_test.go (about) 1 package core 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 10 "github.com/Finschia/ostracon/types" 11 ) 12 13 func TestPaginationPage(t *testing.T) { 14 cases := []struct { 15 totalCount int 16 perPage int 17 page int 18 newPage int 19 expErr bool 20 }{ 21 {0, 10, 1, 1, false}, 22 23 {0, 10, 0, 1, false}, 24 {0, 10, 1, 1, false}, 25 {0, 10, 2, 0, true}, 26 27 {5, 10, -1, 0, true}, 28 {5, 10, 0, 1, false}, 29 {5, 10, 1, 1, false}, 30 {5, 10, 2, 0, true}, 31 {5, 10, 2, 0, true}, 32 33 {5, 5, 1, 1, false}, 34 {5, 5, 2, 0, true}, 35 {5, 5, 3, 0, true}, 36 37 {5, 3, 2, 2, false}, 38 {5, 3, 3, 0, true}, 39 40 {5, 2, 2, 2, false}, 41 {5, 2, 3, 3, false}, 42 {5, 2, 4, 0, true}, 43 } 44 45 for _, c := range cases { 46 p, err := validatePage(&c.page, c.perPage, c.totalCount) 47 if c.expErr { 48 assert.Error(t, err) 49 continue 50 } 51 52 assert.Equal(t, c.newPage, p, fmt.Sprintf("%v", c)) 53 } 54 55 // nil case 56 p, err := validatePage(nil, 1, 1) 57 if assert.NoError(t, err) { 58 assert.Equal(t, 1, p) 59 } 60 } 61 62 func TestPaginationPerPage(t *testing.T) { 63 cases := []struct { 64 totalCount int 65 perPage int 66 newPerPage int 67 }{ 68 {5, 0, defaultPerPage}, 69 {5, 1, 1}, 70 {5, 2, 2}, 71 {5, defaultPerPage, defaultPerPage}, 72 {5, maxPerPage - 1, maxPerPage - 1}, 73 {5, maxPerPage, maxPerPage}, 74 {5, maxPerPage + 1, maxPerPage}, 75 } 76 77 for _, c := range cases { 78 p := validatePerPage(&c.perPage) 79 assert.Equal(t, c.newPerPage, p, fmt.Sprintf("%v", c)) 80 } 81 82 // nil case 83 p := validatePerPage(nil) 84 assert.Equal(t, defaultPerPage, p) 85 } 86 87 func TestInitGenesisChunks(t *testing.T) { 88 env = &Environment{} 89 90 // 91 // success 92 // 93 env.genChunks = nil 94 env.GenDoc = &types.GenesisDoc{} 95 err := InitGenesisChunks() 96 require.NoError(t, err) 97 98 env.genChunks = []string{} 99 err = InitGenesisChunks() 100 require.NoError(t, err) 101 102 env.GenDoc = nil 103 err = InitGenesisChunks() 104 require.NoError(t, err) 105 }