types: tests -> test suites migration (#7494)

This commit is contained in:
Alessio Treglia 2020-10-09 17:49:57 +01:00 committed by GitHub
parent 278eaa70f8
commit f8e3fcb524
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 95 additions and 89 deletions

View File

@ -2,9 +2,6 @@ package query_test
import (
"fmt"
"testing"
"github.com/stretchr/testify/require"
"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/store/prefix"
@ -16,7 +13,7 @@ import (
var addr1 = sdk.AccAddress([]byte("addr1"))
func TestFilteredPaginations(t *testing.T) {
func (s *paginationTestSuite) TestFilteredPaginations() {
app, ctx, appCodec := setupTest()
var balances sdk.Coins
@ -33,61 +30,61 @@ func TestFilteredPaginations(t *testing.T) {
addr1 := sdk.AccAddress([]byte("addr1"))
acc1 := app.AccountKeeper.NewAccountWithAddress(ctx, addr1)
app.AccountKeeper.SetAccount(ctx, acc1)
require.NoError(t, app.BankKeeper.SetBalances(ctx, addr1, balances))
s.Require().NoError(app.BankKeeper.SetBalances(ctx, addr1, balances))
store := ctx.KVStore(app.GetKey(authtypes.StoreKey))
// verify pagination with limit > total values
pageReq := &query.PageRequest{Key: nil, Limit: 5, CountTotal: true}
balances, res, err := execFilterPaginate(store, pageReq, appCodec)
require.NoError(t, err)
require.NotNil(t, res)
require.Equal(t, 4, len(balances))
s.Require().NoError(err)
s.Require().NotNil(res)
s.Require().Equal(4, len(balances))
t.Log("verify empty request")
s.T().Log("verify empty request")
balances, res, err = execFilterPaginate(store, nil, appCodec)
require.NoError(t, err)
require.NotNil(t, res)
require.Equal(t, 4, len(balances))
require.Equal(t, uint64(4), res.Total)
require.Nil(t, res.NextKey)
s.Require().NoError(err)
s.Require().NotNil(res)
s.Require().Equal(4, len(balances))
s.Require().Equal(uint64(4), res.Total)
s.Require().Nil(res.NextKey)
t.Log("verify nextKey is returned if there are more results")
s.T().Log("verify nextKey is returned if there are more results")
pageReq = &query.PageRequest{Key: nil, Limit: 2, CountTotal: true}
balances, res, err = execFilterPaginate(store, pageReq, appCodec)
require.NoError(t, err)
require.NotNil(t, res)
require.Equal(t, 2, len(balances))
require.NotNil(t, res.NextKey)
require.Equal(t, string(res.NextKey), fmt.Sprintf("test2denom"))
require.Equal(t, uint64(4), res.Total)
s.Require().NoError(err)
s.Require().NotNil(res)
s.Require().Equal(2, len(balances))
s.Require().NotNil(res.NextKey)
s.Require().Equal(string(res.NextKey), fmt.Sprintf("test2denom"))
s.Require().Equal(uint64(4), res.Total)
t.Log("verify both key and offset can't be given")
s.T().Log("verify both key and offset can't be given")
pageReq = &query.PageRequest{Key: res.NextKey, Limit: 1, Offset: 2, CountTotal: true}
_, _, err = execFilterPaginate(store, pageReq, appCodec)
require.Error(t, err)
s.Require().Error(err)
t.Log("use nextKey for query")
s.T().Log("use nextKey for query")
pageReq = &query.PageRequest{Key: res.NextKey, Limit: 2, CountTotal: true}
balances, res, err = execFilterPaginate(store, pageReq, appCodec)
require.NoError(t, err)
require.NotNil(t, res)
require.Equal(t, 2, len(balances))
require.Nil(t, res.NextKey)
s.Require().NoError(err)
s.Require().NotNil(res)
s.Require().Equal(2, len(balances))
s.Require().Nil(res.NextKey)
t.Log("verify default limit")
s.T().Log("verify default limit")
pageReq = &query.PageRequest{Key: nil, Limit: 0}
balances, res, err = execFilterPaginate(store, pageReq, appCodec)
require.NoError(t, err)
require.NotNil(t, res)
require.Equal(t, 4, len(balances))
require.Equal(t, uint64(4), res.Total)
s.Require().NoError(err)
s.Require().NotNil(res)
s.Require().Equal(4, len(balances))
s.Require().Equal(uint64(4), res.Total)
t.Log("verify with offset")
s.T().Log("verify with offset")
pageReq = &query.PageRequest{Offset: 2, Limit: 2}
balances, res, err = execFilterPaginate(store, pageReq, appCodec)
require.NoError(t, err)
require.NotNil(t, res)
require.LessOrEqual(t, len(balances), 2)
s.Require().NoError(err)
s.Require().NotNil(res)
s.Require().LessOrEqual(len(balances), 2)
}
func ExampleFilteredPaginate() {

View File

@ -5,7 +5,8 @@ import (
"fmt"
"testing"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
dbm "github.com/tendermint/tm-db"
@ -34,7 +35,15 @@ const (
lastPageRecords = 35
)
func TestPagination(t *testing.T) {
type paginationTestSuite struct {
suite.Suite
}
func TestPaginationTestSuite(t *testing.T) {
suite.Run(t, new(paginationTestSuite))
}
func (s *paginationTestSuite) TestPagination() {
app, ctx, _ := setupTest()
queryHelper := baseapp.NewQueryServerTestHelper(ctx, app.InterfaceRegistry())
types.RegisterQueryServer(queryHelper, app.BankKeeper)
@ -50,96 +59,96 @@ func TestPagination(t *testing.T) {
addr1 := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address())
acc1 := app.AccountKeeper.NewAccountWithAddress(ctx, addr1)
app.AccountKeeper.SetAccount(ctx, acc1)
require.NoError(t, app.BankKeeper.SetBalances(ctx, addr1, balances))
s.Require().NoError(app.BankKeeper.SetBalances(ctx, addr1, balances))
t.Log("verify empty page request results a max of defaultLimit records and counts total records")
s.T().Log("verify empty page request results a max of defaultLimit records and counts total records")
pageReq := &query.PageRequest{}
request := types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err := queryClient.AllBalances(gocontext.Background(), request)
require.NoError(t, err)
require.Equal(t, res.Pagination.Total, uint64(numBalances))
require.NotNil(t, res.Pagination.NextKey)
require.LessOrEqual(t, res.Balances.Len(), defaultLimit)
s.Require().NoError(err)
s.Require().Equal(res.Pagination.Total, uint64(numBalances))
s.Require().NotNil(res.Pagination.NextKey)
s.Require().LessOrEqual(res.Balances.Len(), defaultLimit)
t.Log("verify page request with limit > defaultLimit, returns less or equal to `limit` records")
s.T().Log("verify page request with limit > defaultLimit, returns less or equal to `limit` records")
pageReq = &query.PageRequest{Limit: overLimit}
request = types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err = queryClient.AllBalances(gocontext.Background(), request)
require.NoError(t, err)
require.Equal(t, res.Pagination.Total, uint64(0))
require.NotNil(t, res.Pagination.NextKey)
require.LessOrEqual(t, res.Balances.Len(), overLimit)
s.Require().NoError(err)
s.Require().Equal(res.Pagination.Total, uint64(0))
s.Require().NotNil(res.Pagination.NextKey)
s.Require().LessOrEqual(res.Balances.Len(), overLimit)
t.Log("verify paginate with custom limit and countTotal true")
s.T().Log("verify paginate with custom limit and countTotal true")
pageReq = &query.PageRequest{Limit: underLimit, CountTotal: true}
request = types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err = queryClient.AllBalances(gocontext.Background(), request)
require.NoError(t, err)
require.Equal(t, res.Balances.Len(), underLimit)
require.NotNil(t, res.Pagination.NextKey)
require.Equal(t, res.Pagination.Total, uint64(numBalances))
s.Require().NoError(err)
s.Require().Equal(res.Balances.Len(), underLimit)
s.Require().NotNil(res.Pagination.NextKey)
s.Require().Equal(res.Pagination.Total, uint64(numBalances))
t.Log("verify paginate with custom limit and countTotal false")
s.T().Log("verify paginate with custom limit and countTotal false")
pageReq = &query.PageRequest{Limit: defaultLimit, CountTotal: false}
request = types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err = queryClient.AllBalances(gocontext.Background(), request)
require.NoError(t, err)
require.Equal(t, res.Balances.Len(), defaultLimit)
require.NotNil(t, res.Pagination.NextKey)
require.Equal(t, res.Pagination.Total, uint64(0))
s.Require().NoError(err)
s.Require().Equal(res.Balances.Len(), defaultLimit)
s.Require().NotNil(res.Pagination.NextKey)
s.Require().Equal(res.Pagination.Total, uint64(0))
t.Log("verify paginate with custom limit, key and countTotal false")
s.T().Log("verify paginate with custom limit, key and countTotal false")
pageReq = &query.PageRequest{Key: res.Pagination.NextKey, Limit: defaultLimit, CountTotal: false}
request = types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err = queryClient.AllBalances(gocontext.Background(), request)
require.NoError(t, err)
require.Equal(t, res.Balances.Len(), defaultLimit)
require.NotNil(t, res.Pagination.NextKey)
require.Equal(t, res.Pagination.Total, uint64(0))
s.Require().NoError(err)
s.Require().Equal(res.Balances.Len(), defaultLimit)
s.Require().NotNil(res.Pagination.NextKey)
s.Require().Equal(res.Pagination.Total, uint64(0))
t.Log("verify paginate for last page, results in records less than max limit")
s.T().Log("verify paginate for last page, results in records less than max limit")
pageReq = &query.PageRequest{Key: res.Pagination.NextKey, Limit: defaultLimit, CountTotal: false}
request = types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err = queryClient.AllBalances(gocontext.Background(), request)
require.NoError(t, err)
require.LessOrEqual(t, res.Balances.Len(), defaultLimit)
require.Equal(t, res.Balances.Len(), lastPageRecords)
require.Nil(t, res.Pagination.NextKey)
require.Equal(t, res.Pagination.Total, uint64(0))
s.Require().NoError(err)
s.Require().LessOrEqual(res.Balances.Len(), defaultLimit)
s.Require().Equal(res.Balances.Len(), lastPageRecords)
s.Require().Nil(res.Pagination.NextKey)
s.Require().Equal(res.Pagination.Total, uint64(0))
t.Log("verify paginate with offset and limit")
s.T().Log("verify paginate with offset and limit")
pageReq = &query.PageRequest{Offset: 200, Limit: defaultLimit, CountTotal: false}
request = types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err = queryClient.AllBalances(gocontext.Background(), request)
require.NoError(t, err)
require.LessOrEqual(t, res.Balances.Len(), defaultLimit)
require.Equal(t, res.Balances.Len(), lastPageRecords)
require.Nil(t, res.Pagination.NextKey)
require.Equal(t, res.Pagination.Total, uint64(0))
s.Require().NoError(err)
s.Require().LessOrEqual(res.Balances.Len(), defaultLimit)
s.Require().Equal(res.Balances.Len(), lastPageRecords)
s.Require().Nil(res.Pagination.NextKey)
s.Require().Equal(res.Pagination.Total, uint64(0))
t.Log("verify paginate with offset and limit")
s.T().Log("verify paginate with offset and limit")
pageReq = &query.PageRequest{Offset: 100, Limit: defaultLimit, CountTotal: false}
request = types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err = queryClient.AllBalances(gocontext.Background(), request)
require.NoError(t, err)
require.LessOrEqual(t, res.Balances.Len(), defaultLimit)
require.NotNil(t, res.Pagination.NextKey)
require.Equal(t, res.Pagination.Total, uint64(0))
s.Require().NoError(err)
s.Require().LessOrEqual(res.Balances.Len(), defaultLimit)
s.Require().NotNil(res.Pagination.NextKey)
s.Require().Equal(res.Pagination.Total, uint64(0))
t.Log("verify paginate with offset and key - error")
s.T().Log("verify paginate with offset and key - error")
pageReq = &query.PageRequest{Key: res.Pagination.NextKey, Offset: 100, Limit: defaultLimit, CountTotal: false}
request = types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err = queryClient.AllBalances(gocontext.Background(), request)
require.Error(t, err)
require.Equal(t, err.Error(), "invalid request, either offset or key is expected, got both")
s.Require().Error(err)
s.Require().Equal(err.Error(), "invalid request, either offset or key is expected, got both")
t.Log("verify paginate with offset greater than total results")
s.T().Log("verify paginate with offset greater than total results")
pageReq = &query.PageRequest{Offset: 300, Limit: defaultLimit, CountTotal: false}
request = types.NewQueryAllBalancesRequest(addr1, pageReq)
res, err = queryClient.AllBalances(gocontext.Background(), request)
require.NoError(t, err)
require.LessOrEqual(t, res.Balances.Len(), 0)
require.Nil(t, res.Pagination.NextKey)
s.Require().NoError(err)
s.Require().LessOrEqual(res.Balances.Len(), 0)
s.Require().Nil(res.Pagination.NextKey)
}
func ExamplePaginate() {