github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/supply/internal/keeper/querier_test.go (about) 1 package keeper_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 8 "github.com/stretchr/testify/require" 9 10 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 11 keep "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/supply/internal/keeper" 12 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/supply/internal/types" 13 ) 14 15 func TestNewQuerier(t *testing.T) { 16 app, ctx := createTestApp(false) 17 keeper := app.SupplyKeeper 18 cdc := app.Codec() 19 20 supplyCoins := sdk.NewCoins( 21 sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(100)), 22 sdk.NewCoin("photon", sdk.NewInt(50)), 23 sdk.NewCoin("atom", sdk.NewInt(2000)), 24 sdk.NewCoin("btc", sdk.NewInt(21000000)), 25 ) 26 27 keeper.SetSupply(ctx, types.NewSupply(supplyCoins)) 28 29 query := abci.RequestQuery{ 30 Path: "", 31 Data: []byte{}, 32 } 33 34 querier := keep.NewQuerier(keeper) 35 36 bz, err := querier(ctx, []string{"other"}, query) 37 require.Error(t, err) 38 require.Nil(t, bz) 39 40 queryTotalSupplyParams := types.NewQueryTotalSupplyParams(1, 20) 41 bz, errRes := cdc.MarshalJSON(queryTotalSupplyParams) 42 require.Nil(t, errRes) 43 44 query.Path = fmt.Sprintf("/custom/supply/%s", types.QueryTotalSupply) 45 query.Data = bz 46 47 _, err = querier(ctx, []string{types.QueryTotalSupply}, query) 48 require.Nil(t, err) 49 50 querySupplyParams := types.NewQuerySupplyOfParams(sdk.DefaultBondDenom) 51 bz, errRes = cdc.MarshalJSON(querySupplyParams) 52 require.Nil(t, errRes) 53 54 query.Path = fmt.Sprintf("/custom/supply/%s", types.QuerySupplyOf) 55 query.Data = bz 56 57 _, err = querier(ctx, []string{types.QuerySupplyOf}, query) 58 require.Nil(t, err) 59 } 60 61 func TestQuerySupply(t *testing.T) { 62 app, ctx := createTestApp(false) 63 keeper := app.SupplyKeeper 64 cdc := app.Codec() 65 66 supplyCoins := sdk.NewCoins( 67 sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(100)), 68 sdk.NewCoin("photon", sdk.NewInt(50)), 69 sdk.NewCoin("atom", sdk.NewInt(2000)), 70 sdk.NewCoin("btc", sdk.NewInt(21000000)), 71 ) 72 73 querier := keep.NewQuerier(keeper) 74 75 keeper.SetSupply(ctx, types.NewSupply(supplyCoins)) 76 77 queryTotalSupplyParams := types.NewQueryTotalSupplyParams(1, 10) 78 bz, errRes := cdc.MarshalJSON(queryTotalSupplyParams) 79 require.Nil(t, errRes) 80 81 query := abci.RequestQuery{ 82 Path: "", 83 Data: []byte{}, 84 } 85 86 query.Path = fmt.Sprintf("/custom/supply/%s", types.QueryTotalSupply) 87 query.Data = bz 88 89 res, err := querier(ctx, []string{types.QueryTotalSupply}, query) 90 require.Nil(t, err) 91 92 var totalCoins sdk.Coins 93 errRes = cdc.UnmarshalJSON(res, &totalCoins) 94 require.Nil(t, errRes) 95 require.Equal(t, supplyCoins, totalCoins) 96 97 querySupplyParams := types.NewQuerySupplyOfParams(sdk.DefaultBondDenom) 98 bz, errRes = cdc.MarshalJSON(querySupplyParams) 99 require.Nil(t, errRes) 100 101 query.Path = fmt.Sprintf("/custom/supply/%s", types.QuerySupplyOf) 102 query.Data = bz 103 104 res, err = querier(ctx, []string{types.QuerySupplyOf}, query) 105 require.Nil(t, err) 106 107 var supply sdk.Dec 108 errRes = supply.UnmarshalJSON(res) 109 require.Nil(t, errRes) 110 require.True(sdk.DecEq(t, sdk.NewDec(100), supply)) 111 112 }