github.com/iotexproject/iotex-core@v1.14.1-rc1/ioctl/newcmd/node/node_test.go (about) 1 package node 2 3 import ( 4 "testing" 5 6 "github.com/golang/mock/gomock" 7 "github.com/stretchr/testify/require" 8 9 "github.com/iotexproject/iotex-core/ioctl/config" 10 "github.com/iotexproject/iotex-core/ioctl/util" 11 "github.com/iotexproject/iotex-core/test/mock/mock_ioctlclient" 12 ) 13 14 func TestNewNodeCmd(t *testing.T) { 15 require := require.New(t) 16 ctrl := gomock.NewController(t) 17 defer ctrl.Finish() 18 client := mock_ioctlclient.NewMockClient(ctrl) 19 client.EXPECT().SelectTranslation(gomock.Any()).Return("node delegate", config.English).AnyTimes() 20 21 testData := []struct { 22 endpoint string 23 insecure bool 24 }{ 25 { 26 endpoint: "111:222:333:444:5678", 27 insecure: false, 28 }, 29 { 30 endpoint: "", 31 insecure: true, 32 }, 33 } 34 for _, test := range testData { 35 callbackEndpoint := func(cb func(*string, string, string, string)) { 36 cb(&test.endpoint, "endpoint", test.endpoint, "endpoint usage") 37 } 38 callbackInsecure := func(cb func(*bool, string, bool, string)) { 39 cb(&test.insecure, "insecure", !test.insecure, "insecure usage") 40 } 41 client.EXPECT().SetEndpointWithFlag(gomock.Any()).Do(callbackEndpoint) 42 client.EXPECT().SetInsecureWithFlag(gomock.Any()).Do(callbackInsecure) 43 44 cmd := NewNodeCmd(client) 45 result, err := util.ExecuteCmd(cmd) 46 require.NoError(err) 47 require.Contains(result, "Available Commands") 48 49 result, err = util.ExecuteCmd(cmd, "--endpoint", "0.0.0.0:1", "--insecure") 50 require.NoError(err) 51 require.Contains(result, "Available Commands") 52 require.Equal("0.0.0.0:1", test.endpoint) 53 require.True(test.insecure) 54 } 55 }