@@ -49,34 +49,41 @@ func Test_main(t *testing.T) {
4949 err = command .main (ctx , args )
5050 assert .NotNil (t , err )
5151 assert .Equal (t , "unknown profile ecs, run configure to check" , err .Error ())
52+ ctx .Flags ().Get ("region" ).SetAssigned (true )
53+ ctx .Flags ().Get ("region" ).SetValue ("cn-hangzhou" )
54+ ctx .Flags ().Add (config .NewAccessKeyIdFlag ())
55+ ctx .Flags ().Get ("access-key-id" ).SetAssigned (true )
56+ ctx .Flags ().Get ("access-key-id" ).SetValue ("AccessKeyID" )
57+ ctx .Flags ().Add (config .NewAccessKeySecretFlag ())
58+ ctx .Flags ().Get ("access-key-secret" ).SetAssigned (true )
59+ ctx .Flags ().Get ("access-key-secret" ).SetValue ("AccessKeySecret" )
60+ args = []string {"test" }
61+ profileflag .SetAssigned (false )
62+ err = command .main (ctx , args )
63+ assert .NotNil (t , err )
64+ assert .Equal (t , "'test' is not a valid command or product. See `aliyun help`." , err .Error ())
65+
66+ args = []string {"aos" , "test2" }
67+ err = command .main (ctx , args )
68+ assert .NotNil (t , err )
69+ assert .Equal (t , "'aos' is not a valid command or product. See `aliyun help`." , err .Error ())
70+
71+ reader := & reader_test {}
72+ reader .content = `{"products":[{"code":"aos","api_style":"restful"}]}`
73+ command .library .builtinRepo = meta .LoadRepository (reader )
74+ err = command .main (ctx , args )
75+ assert .NotNil (t , err )
76+ assert .Equal (t , "missing version for product aos" , err .Error ())
77+
78+ args = []string {"test" , "test2" , "test1" }
79+ err = command .main (ctx , args )
80+ assert .NotNil (t , err )
81+ assert .Equal (t , "'test' is not a valid command or product. See `aliyun help`." , err .Error ())
5282
53- //args = []string{"test"}
54- //profileflag.SetAssigned(false)
55- //err = command.main(ctx, args)
56- //assert.NotNil(t, err)
57- //assert.Equal(t, "'test' is not a valid command or product. See `aliyun help`.", err.Error())
58- //
59- //args = []string{"aos", "test2"}
60- //err = command.main(ctx, args)
61- //assert.NotNil(t, err)
62- //assert.Equal(t, "'aos' is not a valid command or product. See `aliyun help`.", err.Error())
63- //
64- //reader := &reader_test{}
65- //reader.content = `{"products":[{"code":"aos","api_style":"restful"}]}`
66- //command.library.builtinRepo = meta.LoadRepository(reader)
67- //err = command.main(ctx, args)
68- //assert.NotNil(t, err)
69- //assert.Equal(t, "missing version for product aos", err.Error())
70- //
71- //args = []string{"test", "test2", "test1"}
72- //err = command.main(ctx, args)
73- //assert.NotNil(t, err)
74- //assert.Equal(t, "'test' is not a valid command or product. See `aliyun help`.", err.Error())
75- //
76- //args = []string{"test", "test2", "test1", "test3"}
77- //err = command.main(ctx, args)
78- //assert.NotNil(t, err)
79- //assert.Equal(t, "too many arguments", err.Error())
83+ args = []string {"test" , "test2" , "test1" , "test3" }
84+ err = command .main (ctx , args )
85+ assert .NotNil (t , err )
86+ assert .Equal (t , "too many arguments" , err .Error ())
8087}
8188
8289func Test_processInvoke (t * testing.T ) {
@@ -259,3 +266,23 @@ func Test_complete(t *testing.T) {
259266 str = command .complete (ctx , args )
260267 assert .Equal (t , []string {}, str )
261268}
269+
270+ func TestCreateInvoker (t * testing.T ) {
271+ profile := config .NewProfile ("test" )
272+ profile .AccessKeyId = "AccessKeyId"
273+ profile .AccessKeySecret = "AccessKeySecret"
274+ profile .RegionId = "cn-hangzhou"
275+ w := new (bytes.Buffer )
276+ commando := NewCommando (w , profile )
277+
278+ tempWriter := new (bytes.Buffer )
279+ ctx := cli .NewCommandContext (tempWriter )
280+ config .AddFlags (ctx .Flags ())
281+ AddFlags (ctx .Flags ())
282+ ctx .Flags ().Get ("force" ).SetAssigned (true )
283+ invoker , err := commando .createInvoker (ctx , "ecs" , "DescribeRegions" , "" )
284+ rpcinvoker , ok := invoker .(* ForceRpcInvoker )
285+ assert .True (t , ok )
286+ assert .Nil (t , err )
287+ assert .Equal (t , rpcinvoker .method , "DescribeRegions" )
288+ }
0 commit comments