Skip to content

Commit

Permalink
Add NewMsgUpdateParams for host. (cosmos#3850)
Browse files Browse the repository at this point in the history
* Add NewMsgUpdateParams for host.
  • Loading branch information
DimitrisJim authored Jun 20, 2023
1 parent b60617d commit 6427943
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 56 deletions.
25 changes: 7 additions & 18 deletions modules/apps/27-interchain-accounts/host/keeper/msg_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,19 @@ import (
)

func (suite *KeeperTestSuite) TestUpdateParams() {
msg := types.MsgUpdateParams{}

testCases := []struct {
name string
malleate func(authority string)
expPass bool
name string
msg *types.MsgUpdateParams
expPass bool
}{
{
"success",
func(authority string) {
msg.Authority = authority
msg.Params = types.DefaultParams()
},
types.NewMsgUpdateParams(suite.chainA.GetSimApp().ICAHostKeeper.GetAuthority(), types.DefaultParams()),
true,
},
{
"invalid authority address",
func(authority string) {
msg.Authority = "authority"
msg.Params = types.DefaultParams()
},
types.NewMsgUpdateParams("authority", types.DefaultParams()),
false,
},
}
Expand All @@ -37,12 +29,9 @@ func (suite *KeeperTestSuite) TestUpdateParams() {
suite.Run(tc.name, func() {
suite.SetupTest()

ICAHostKeeper := &suite.chainA.GetSimApp().ICAHostKeeper
tc.malleate(ICAHostKeeper.GetAuthority()) // malleate mutates test data

ctx := suite.chainA.GetContext()
msgServer := keeper.NewMsgServerImpl(ICAHostKeeper)
res, err := msgServer.UpdateParams(ctx, &msg)
msgServer := keeper.NewMsgServerImpl(&suite.chainA.GetSimApp().ICAHostKeeper)
res, err := msgServer.UpdateParams(ctx, tc.msg)

if tc.expPass {
suite.Require().NoError(err)
Expand Down
8 changes: 8 additions & 0 deletions modules/apps/27-interchain-accounts/host/types/msgs.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ import (

var _ sdk.Msg = (*MsgUpdateParams)(nil)

// NewMsgUpdateParams creates a new MsgUpdateParams instance
func NewMsgUpdateParams(authority string, params Params) *MsgUpdateParams {
return &MsgUpdateParams{
Authority: authority,
Params: params,
}
}

// ValidateBasic implements sdk.Msg
func (msg MsgUpdateParams) ValidateBasic() error {
_, err := sdk.AccAddressFromBech32(msg.Authority)
Expand Down
53 changes: 15 additions & 38 deletions modules/apps/27-interchain-accounts/host/types/msgs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,57 +11,37 @@ import (
)

func TestMsgUpdateParamsValidateBasic(t *testing.T) {
var msg *types.MsgUpdateParams

testCases := []struct {
name string
malleate func()
expPass bool
name string
msg *types.MsgUpdateParams
expPass bool
}{
{
"success: valid authority address",
func() {
msg = &types.MsgUpdateParams{
Authority: ibctesting.TestAccAddress,
Params: types.DefaultParams(),
}
},
types.NewMsgUpdateParams(sdk.AccAddress(ibctesting.TestAccAddress).String(), types.DefaultParams()),
true,
},
{
"failure: invalid authority address",
func() {
msg = &types.MsgUpdateParams{
Authority: "authority",
}
},
types.NewMsgUpdateParams("authority", types.DefaultParams()),
false,
},
{
"failure: invalid allowed message",
func() {
msg = &types.MsgUpdateParams{
Authority: ibctesting.TestAccAddress,
Params: types.Params{
AllowMessages: []string{""},
},
}
},
types.NewMsgUpdateParams("authority", types.Params{
AllowMessages: []string{""},
}),
false,
},
}

for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
tc.malleate()

err := msg.ValidateBasic()
if tc.expPass {
require.NoError(t, err)
} else {
require.Error(t, err)
}
})
err := tc.msg.ValidateBasic()
if tc.expPass {
require.NoError(t, err)
} else {
require.Error(t, err)
}
}
}

Expand All @@ -76,10 +56,7 @@ func TestMsgUpdateParamsGetSigners(t *testing.T) {
}

for _, tc := range testCases {
msg := types.MsgUpdateParams{
Authority: tc.address.String(),
Params: types.DefaultParams(),
}
msg := types.NewMsgUpdateParams(tc.address.String(), types.DefaultParams())
if tc.expPass {
require.Equal(t, []sdk.AccAddress{tc.address}, msg.GetSigners())
} else {
Expand Down

0 comments on commit 6427943

Please sign in to comment.