110 lines
3.8 KiB
Go
110 lines
3.8 KiB
Go
package keeper_test
|
|
|
|
import (
|
|
gocontext "context"
|
|
|
|
"github.com/cosmos/cosmos-sdk/baseapp"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
|
"github.com/cosmos/cosmos-sdk/x/bank/types"
|
|
)
|
|
|
|
func (suite *IntegrationTestSuite) TestQueryBalance() {
|
|
app, ctx := suite.app, suite.ctx
|
|
_, _, addr := authtypes.KeyTestPubAddr()
|
|
|
|
queryHelper := baseapp.NewQueryServerTestHelper(ctx)
|
|
types.RegisterQueryServer(queryHelper, app.BankKeeper)
|
|
queryClient := types.NewQueryClient(queryHelper)
|
|
|
|
_, err := queryClient.Balance(gocontext.Background(), &types.QueryBalanceRequest{})
|
|
suite.Require().Error(err)
|
|
|
|
_, err = queryClient.Balance(gocontext.Background(), &types.QueryBalanceRequest{Address: addr})
|
|
suite.Require().Error(err)
|
|
|
|
req := types.NewQueryBalanceRequest(addr, fooDenom)
|
|
res, err := queryClient.Balance(gocontext.Background(), req)
|
|
suite.Require().NoError(err)
|
|
suite.Require().NotNil(res)
|
|
suite.True(res.Balance.IsZero())
|
|
|
|
origCoins := sdk.NewCoins(newFooCoin(50), newBarCoin(30))
|
|
acc := app.AccountKeeper.NewAccountWithAddress(ctx, addr)
|
|
|
|
app.AccountKeeper.SetAccount(ctx, acc)
|
|
suite.Require().NoError(app.BankKeeper.SetBalances(ctx, acc.GetAddress(), origCoins))
|
|
|
|
res, err = queryClient.Balance(gocontext.Background(), req)
|
|
suite.Require().NoError(err)
|
|
suite.Require().NotNil(res)
|
|
suite.True(res.Balance.IsEqual(newFooCoin(50)))
|
|
}
|
|
|
|
func (suite *IntegrationTestSuite) TestQueryAllBalances() {
|
|
app, ctx := suite.app, suite.ctx
|
|
_, _, addr := authtypes.KeyTestPubAddr()
|
|
|
|
queryHelper := baseapp.NewQueryServerTestHelper(ctx)
|
|
types.RegisterQueryServer(queryHelper, app.BankKeeper)
|
|
queryClient := types.NewQueryClient(queryHelper)
|
|
|
|
_, err := queryClient.AllBalances(gocontext.Background(), &types.QueryAllBalancesRequest{})
|
|
suite.Require().Error(err)
|
|
|
|
req := types.NewQueryAllBalancesRequest(addr)
|
|
res, err := queryClient.AllBalances(gocontext.Background(), req)
|
|
suite.Require().NoError(err)
|
|
suite.Require().NotNil(res)
|
|
suite.True(res.Balances.IsZero())
|
|
|
|
origCoins := sdk.NewCoins(newFooCoin(50), newBarCoin(30))
|
|
acc := app.AccountKeeper.NewAccountWithAddress(ctx, addr)
|
|
|
|
app.AccountKeeper.SetAccount(ctx, acc)
|
|
suite.Require().NoError(app.BankKeeper.SetBalances(ctx, acc.GetAddress(), origCoins))
|
|
|
|
res, err = queryClient.AllBalances(gocontext.Background(), req)
|
|
suite.Require().NoError(err)
|
|
suite.Require().NotNil(res)
|
|
suite.True(res.Balances.IsEqual(origCoins))
|
|
}
|
|
|
|
func (suite *IntegrationTestSuite) TestQueryTotalSupply() {
|
|
app, ctx := suite.app, suite.ctx
|
|
expectedTotalSupply := types.NewSupply(sdk.NewCoins(sdk.NewInt64Coin("test", 400000000)))
|
|
app.BankKeeper.SetSupply(ctx, expectedTotalSupply)
|
|
|
|
queryHelper := baseapp.NewQueryServerTestHelper(ctx)
|
|
types.RegisterQueryServer(queryHelper, app.BankKeeper)
|
|
queryClient := types.NewQueryClient(queryHelper)
|
|
|
|
res, err := queryClient.TotalSupply(gocontext.Background(), &types.QueryTotalSupplyRequest{})
|
|
suite.Require().NoError(err)
|
|
suite.Require().NotNil(res)
|
|
|
|
suite.Require().Equal(expectedTotalSupply.Total, res.Supply)
|
|
}
|
|
|
|
func (suite *IntegrationTestSuite) TestQueryTotalSupplyOf() {
|
|
app, ctx := suite.app, suite.ctx
|
|
|
|
test1Supply := sdk.NewInt64Coin("test1", 4000000)
|
|
test2Supply := sdk.NewInt64Coin("test2", 700000000)
|
|
expectedTotalSupply := types.NewSupply(sdk.NewCoins(test1Supply, test2Supply))
|
|
app.BankKeeper.SetSupply(ctx, expectedTotalSupply)
|
|
|
|
queryHelper := baseapp.NewQueryServerTestHelper(ctx)
|
|
types.RegisterQueryServer(queryHelper, app.BankKeeper)
|
|
queryClient := types.NewQueryClient(queryHelper)
|
|
|
|
_, err := queryClient.SupplyOf(gocontext.Background(), &types.QuerySupplyOfRequest{})
|
|
suite.Require().Error(err)
|
|
|
|
res, err := queryClient.SupplyOf(gocontext.Background(), &types.QuerySupplyOfRequest{Denom: test1Supply.Denom})
|
|
suite.Require().NoError(err)
|
|
suite.Require().NotNil(res)
|
|
|
|
suite.Require().Equal(test1Supply.Amount, res.Amount)
|
|
}
|