github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/staking/handler_shares_test.go (about) 1 package staking 2 3 import ( 4 "testing" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 "github.com/fibonacci-chain/fbc/x/staking/types" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestHandlerDestroyValidator(t *testing.T) { 12 13 validatorAddr1 := sdk.ValAddress(Addrs[0]) 14 pk1 := PKs[0] 15 ctx, _, mockKeeper := CreateTestInput(t, false, SufficientInitPower) 16 keeper := mockKeeper.Keeper 17 _ = setInstantUnbondPeriod(keeper, ctx) 18 19 //0. destroy a not exist validator 20 destroyValMsg := types.NewMsgDestroyValidator([]byte(validatorAddr1)) 21 handler := NewHandler(keeper) 22 _, err := handler(ctx, destroyValMsg) 23 require.NotNil(t, err) 24 updates0 := keeper.ApplyAndReturnValidatorSetUpdates(ctx) 25 require.Equal(t, 0, len(updates0)) 26 27 //1. create a validator 28 handler = NewHandler(keeper) 29 createValMsg := NewTestMsgCreateValidator(validatorAddr1, pk1, DefaultMSD) 30 _, err = handler(ctx, createValMsg) 31 require.Nil(t, err) 32 updates := keeper.ApplyAndReturnValidatorSetUpdates(ctx) 33 require.Equal(t, 1, len(updates)) 34 35 //2. destroy the created validator 36 destroyValMsg = types.NewMsgDestroyValidator([]byte(validatorAddr1)) 37 handler = NewHandler(keeper) 38 _, err = handler(ctx, destroyValMsg) 39 require.Nil(t, err) 40 updates2 := keeper.ApplyAndReturnValidatorSetUpdates(ctx) 41 require.Equal(t, 1, len(updates2)) 42 } 43 44 type MsgFaked struct { 45 Fakeid int 46 } 47 48 func (msg MsgFaked) Route() string { return "token" } 49 50 func (msg MsgFaked) Type() string { return "issue" } 51 52 // ValidateBasic Implements Msg. 53 func (msg MsgFaked) ValidateBasic() error { 54 // check owner 55 return nil 56 } 57 58 // GetSignBytes Implements Msg. 59 func (msg MsgFaked) GetSignBytes() []byte { 60 return sdk.MustSortJSON([]byte("1")) 61 } 62 63 // GetSigners Implements Msg. 64 func (msg MsgFaked) GetSigners() []sdk.AccAddress { 65 return []sdk.AccAddress{} 66 } 67 68 func NewFakeMsg() MsgFaked { 69 return MsgFaked{ 70 Fakeid: 0, 71 } 72 } 73 74 func TestHandlerBadMessage(t *testing.T) { 75 76 ctx, _, mockKeeper := CreateTestInput(t, false, SufficientInitPower) 77 keeper := mockKeeper.Keeper 78 _ = setInstantUnbondPeriod(keeper, ctx) 79 80 msg := NewFakeMsg() 81 handler := NewHandler(keeper) 82 r, err := handler(ctx, msg) 83 require.NotNil(t, err, r) 84 }