github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/bank/internal/keeper/querier_test.go (about) 1 package keeper_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 10 11 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 12 authtypes "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/types" 13 keep "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/bank/internal/keeper" 14 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/bank/internal/types" 15 ) 16 17 func TestBalances(t *testing.T) { 18 testCases := []struct { 19 Path string 20 }{ 21 {keep.QueryBalance}, 22 {keep.GrpcQueryBalance}, 23 } 24 for _, tc := range testCases { 25 app, ctx := createTestApp(false) 26 req := abci.RequestQuery{ 27 Path: fmt.Sprintf("custom/bank/%s", tc.Path), 28 Data: []byte{}, 29 } 30 31 querier := keep.NewQuerier(app.BankKeeper) 32 33 res, err := querier(ctx, []string{"balances"}, req) 34 require.NotNil(t, err) 35 require.Nil(t, res) 36 37 _, _, addr := authtypes.KeyTestPubAddr() 38 req.Data = app.Codec().MustMarshalJSON(types.NewQueryBalanceParams(addr)) 39 res, err = querier(ctx, []string{"balances"}, req) 40 require.Nil(t, err) // the account does not exist, no error returned anyway 41 require.NotNil(t, res) 42 43 var coins sdk.Coins 44 require.NoError(t, app.Codec().UnmarshalJSON(res, &coins)) 45 require.True(t, coins.IsZero()) 46 47 acc := app.AccountKeeper.NewAccountWithAddress(ctx, addr) 48 acc.SetCoins(sdk.NewCoins(sdk.NewInt64Coin("foo", 10))) 49 app.AccountKeeper.SetAccount(ctx, acc) 50 res, err = querier(ctx, []string{"balances"}, req) 51 require.Nil(t, err) 52 require.NotNil(t, res) 53 require.NoError(t, app.Codec().UnmarshalJSON(res, &coins)) 54 require.True(t, coins.AmountOf("foo").Equal(sdk.NewDec(10))) 55 } 56 } 57 58 func TestQuerierRouteNotFound(t *testing.T) { 59 app, ctx := createTestApp(false) 60 req := abci.RequestQuery{ 61 Path: "custom/bank/notfound", 62 Data: []byte{}, 63 } 64 65 querier := keep.NewQuerier(app.BankKeeper) 66 _, err := querier(ctx, []string{"notfound"}, req) 67 require.Error(t, err) 68 }