github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/distribution/keeper/querier_test.go (about) 1 package keeper 2 3 import ( 4 "testing" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 8 "github.com/fibonacci-chain/fbc/x/distribution/types" 9 "github.com/stretchr/testify/require" 10 "github.com/tendermint/go-amino" 11 ) 12 13 func TestQueryParams(t *testing.T) { 14 ctx, _, k, _, _ := CreateTestInputDefault(t, false, 1000) 15 querior := NewQuerier(k) 16 commnutyTax, err := querior(ctx, []string{types.QueryParams, types.ParamCommunityTax}, abci.RequestQuery{}) 17 require.NoError(t, err) 18 19 var taxData sdk.Dec 20 _ = amino.UnmarshalJSON(commnutyTax, &taxData) 21 require.Equal(t, sdk.NewDecWithPrec(2, 2), taxData) 22 23 enabled, err := querior(ctx, []string{types.QueryParams, types.ParamWithdrawAddrEnabled}, abci.RequestQuery{}) 24 require.True(t, err == nil) 25 var enableData bool 26 err1 := amino.UnmarshalJSON(enabled, &enableData) 27 require.NoError(t, err1) 28 require.Equal(t, true, enableData) 29 30 distrType, err := querior(ctx, []string{types.QueryParams, types.ParamDistributionType}, abci.RequestQuery{}) 31 require.True(t, err == nil) 32 var distrTypeData uint32 33 err2 := amino.UnmarshalJSON(distrType, &distrTypeData) 34 require.NoError(t, err2) 35 require.Equal(t, types.DistributionTypeOffChain, distrTypeData) 36 37 enabled, err = querior(ctx, []string{types.QueryParams, types.ParamWithdrawRewardEnabled}, abci.RequestQuery{}) 38 require.True(t, err == nil) 39 err = amino.UnmarshalJSON(enabled, &enableData) 40 require.NoError(t, err) 41 require.Equal(t, true, enableData) 42 43 enabled, err = querior(ctx, []string{types.QueryParams, types.ParamRewardTruncatePrecision}, abci.RequestQuery{}) 44 require.True(t, err == nil) 45 var precision int64 46 err = amino.UnmarshalJSON(enabled, &precision) 47 require.NoError(t, err) 48 require.Equal(t, int64(0), precision) 49 50 _, err = querior(ctx, []string{"unknown"}, abci.RequestQuery{}) 51 require.Error(t, err) 52 _, err = querior(ctx, []string{types.QueryParams, "unknown"}, abci.RequestQuery{}) 53 require.Error(t, err) 54 } 55 56 func TestQueryValidatorCommission(t *testing.T) { 57 ctx, _, k, _, _ := CreateTestInputDefault(t, false, 1000) 58 querior := NewQuerier(k) 59 k.SetValidatorAccumulatedCommission(ctx, valOpAddr1, NewTestSysCoins(15, 1)) 60 61 bz, err := amino.MarshalJSON(types.NewQueryValidatorCommissionParams(valOpAddr1)) 62 require.NoError(t, err) 63 commission, err := querior(ctx, []string{types.QueryValidatorCommission}, abci.RequestQuery{Data: bz}) 64 require.NoError(t, err) 65 66 var data sdk.SysCoins 67 err = amino.UnmarshalJSON(commission, &data) 68 require.NoError(t, err) 69 require.Equal(t, NewTestSysCoins(15, 1), data) 70 } 71 72 func TestQueryDelegatorWithdrawAddress(t *testing.T) { 73 ctx, _, k, _, _ := CreateTestInputDefault(t, false, 1000) 74 querior := NewQuerier(k) 75 require.NoError(t, k.SetWithdrawAddr(ctx, valAccAddr1, valAccAddr2)) 76 77 bz, err := amino.MarshalJSON(types.NewQueryDelegatorWithdrawAddrParams(valAccAddr1)) 78 require.NoError(t, err) 79 withdrawAddr, err := querior(ctx, []string{types.QueryWithdrawAddr}, abci.RequestQuery{Data: bz}) 80 require.NoError(t, err) 81 82 var data sdk.AccAddress 83 err = amino.UnmarshalJSON(withdrawAddr, &data) 84 require.NoError(t, err) 85 require.Equal(t, valAccAddr2, data) 86 } 87 88 func TestQueryCommunityPool(t *testing.T) { 89 ctx, _, k, _, _ := CreateTestInputDefault(t, false, 1000) 90 querior := NewQuerier(k) 91 feePool := k.GetFeePool(ctx) 92 feePool.CommunityPool = feePool.CommunityPool.Add(NewTestSysCoins(123, 2)...) 93 k.SetFeePool(ctx, feePool) 94 95 communityPool, err := querior(ctx, []string{types.QueryCommunityPool}, abci.RequestQuery{}) 96 require.NoError(t, err) 97 98 var data sdk.SysCoins 99 err1 := amino.UnmarshalJSON(communityPool, &data) 100 require.NoError(t, err1) 101 require.Equal(t, NewTestSysCoins(123, 2), data) 102 }