github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/distribution/msg_convert_test.go (about) 1 package distribution 2 3 import ( 4 "fmt" 5 "testing" 6 7 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 8 tmtypes "github.com/fibonacci-chain/fbc/libs/tendermint/types" 9 "github.com/fibonacci-chain/fbc/x/distribution/types" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func testMustAccAddressFromBech32(addr string) sdk.AccAddress { 14 re, err := sdk.AccAddressFromBech32(addr) 15 if err != nil { 16 panic(err) 17 } 18 return re 19 } 20 21 func TestConvertWithdrawDelegatorAllRewardsMsg(t *testing.T) { 22 addr, err := sdk.AccAddressFromHex("B2910E22Bb23D129C02d122B77B462ceB0E89Db9") 23 require.NoError(t, err) 24 25 tmtypes.UnittestOnlySetMilestoneVenus2Height(-1) 26 defer func() { 27 tmtypes.UnittestOnlySetMilestoneVenus2Height(0) 28 }() 29 30 testcases := []struct { 31 msgstr string 32 res types.MsgWithdrawDelegatorAllRewards 33 fnCheck func(msg sdk.Msg, err error, res types.MsgWithdrawDelegatorAllRewards) 34 }{ 35 { 36 msgstr: fmt.Sprintf("{\"delegator_address\": \"%s\"}", addr.String()), 37 res: NewMsgWithdrawDelegatorAllRewards(testMustAccAddressFromBech32(addr.String())), 38 fnCheck: func(msg sdk.Msg, err error, res types.MsgWithdrawDelegatorAllRewards) { 39 require.NoError(t, err) 40 require.Equal(t, msg.(types.MsgWithdrawDelegatorAllRewards), res) 41 }, 42 }, 43 { 44 msgstr: `{"delegator_address": "0xB2910E22Bb23D129C02d122B77B462ceB0E89Db9"}`, 45 res: NewMsgWithdrawDelegatorAllRewards(testMustAccAddressFromBech32("0xB2910E22Bb23D129C02d122B77B462ceB0E89Db9")), 46 fnCheck: func(msg sdk.Msg, err error, res types.MsgWithdrawDelegatorAllRewards) { 47 require.NoError(t, err) 48 require.Equal(t, msg.(types.MsgWithdrawDelegatorAllRewards), res) 49 }, 50 }, 51 { 52 msgstr: `{"delegator_address": "B2910E22Bb23D129C02d122B77B462ceB0E89Db9"}`, 53 res: NewMsgWithdrawDelegatorAllRewards(testMustAccAddressFromBech32("B2910E22Bb23D129C02d122B77B462ceB0E89Db9")), 54 fnCheck: func(msg sdk.Msg, err error, res types.MsgWithdrawDelegatorAllRewards) { 55 require.NoError(t, err) 56 require.Equal(t, msg.(types.MsgWithdrawDelegatorAllRewards), res) 57 }, 58 }, 59 // error 60 { 61 msgstr: "123", 62 fnCheck: func(msg sdk.Msg, err error, res types.MsgWithdrawDelegatorAllRewards) { 63 require.Error(t, err) 64 require.Nil(t, msg) 65 }, 66 }, 67 { 68 msgstr: fmt.Sprintf("{\"delegator_address\": \"\"}"), 69 fnCheck: func(msg sdk.Msg, err error, res types.MsgWithdrawDelegatorAllRewards) { 70 require.Error(t, err) 71 require.Nil(t, msg) 72 }, 73 }, 74 { 75 msgstr: fmt.Sprintf("{\"delegator_address\": \"889Fb79ac5Ec9C1Ee86Db2D3f3857Dd3D4af0C2E\"}"), 76 res: NewMsgWithdrawDelegatorAllRewards(testMustAccAddressFromBech32("B2910E22Bb23D129C02d122B77B462ceB0E89Db9")), 77 fnCheck: func(msg sdk.Msg, err error, res types.MsgWithdrawDelegatorAllRewards) { 78 require.Equal(t, ErrCheckSignerFail, err) 79 require.Nil(t, msg) 80 }, 81 }, 82 } 83 84 for _, ts := range testcases { 85 msg, err := ConvertWithdrawDelegatorAllRewardsMsg([]byte(ts.msgstr), ts.res.GetSigners()) 86 ts.fnCheck(msg, err, ts.res) 87 } 88 }