github.com/iotexproject/iotex-core@v1.14.1-rc1/ioctl/newcmd/alias/aliasset_test.go (about) 1 // Copyright (c) 2022 IoTeX Foundation 2 // This source code is provided 'as is' and no warranties are given as to title or non-infringement, merchantability 3 // or fitness for purpose and, to the extent permitted by law, all liability for your use of the code is disclaimed. 4 // This source code is governed by Apache License 2.0 that can be found in the LICENSE file. 5 6 package alias 7 8 import ( 9 "testing" 10 11 "github.com/golang/mock/gomock" 12 "github.com/stretchr/testify/require" 13 14 "github.com/iotexproject/iotex-core/ioctl/config" 15 "github.com/iotexproject/iotex-core/ioctl/util" 16 "github.com/iotexproject/iotex-core/test/mock/mock_ioctlclient" 17 ) 18 19 func TestNewAliasSetCmd(t *testing.T) { 20 require := require.New(t) 21 ctrl := gomock.NewController(t) 22 cfg := config.Config{ 23 Aliases: map[string]string{ 24 "a": "io19sdfxkwegeaenvxk2kjqf98al52gm56wa2eqks", 25 "b": "io1cl6rl2ev5dfa988qmgzg2x4hfazmp9vn2g66ng", 26 "c": "io1tyc2yt68qx7hmxl2rhssm99jxnhrccz9sneh08", 27 }, 28 } 29 client := mock_ioctlclient.NewMockClient(ctrl) 30 client.EXPECT().SelectTranslation(gomock.Any()).Return("mockTranslation", config.English).Times(6) 31 client.EXPECT().AliasMap().Return(cfg.Aliases).MaxTimes(2) 32 client.EXPECT().Config().Return(cfg).AnyTimes() 33 34 t.Run("set alias", func(t *testing.T) { 35 client.EXPECT().SetAliasAndSave("d", "io1uwnr55vqmhf3xeg5phgurlyl702af6eju542sx").Return(nil).Times(1) 36 cmd := NewAliasSetCmd(client) 37 result, err := util.ExecuteCmd(cmd, "d", "io1uwnr55vqmhf3xeg5phgurlyl702af6eju542sx") 38 require.NoError(err) 39 require.Contains(result, "d has been set!") 40 }) 41 42 t.Run("invalid alias", func(t *testing.T) { 43 cmd := NewAliasSetCmd(client) 44 _, err := util.ExecuteCmd(cmd, "io1uwnr55vqmhf3xeg5phgurlyl702af6eju542sx", "io1uwnr55vqmhf3xeg5phgurlyl702af6eju542sx") 45 require.Error(err) 46 require.Contains(err.Error(), "invalid alias") 47 }) 48 49 t.Run("invalid address", func(t *testing.T) { 50 cmd := NewAliasSetCmd(client) 51 _, err := util.ExecuteCmd(cmd, "d", "d") 52 require.Error(err) 53 require.Contains(err.Error(), "invalid address") 54 }) 55 }