func TestCreateHandleFlags(t *testing.T) { app := cli.NewApp() flagset := flag.NewFlagSet("flags", 1) flagset.String("name", "", "") flagset.String("disable-rollback", "", "") flagset.String("template-file", "", "") flagset.String("environment-file", "", "") flagset.String("timeout", "", "") flagset.String("parameters", "", "") flagset.Set("name", "stack1") flagset.Set("disable-rollback", "true") flagset.Set("template-file", "mytemplate.yaml") flagset.Set("environment-file", "myenvironment.yaml") flagset.Set("timeout", "300") flagset.Set("parameters", "img=foo,flavor=bar") c := cli.NewContext(app, flagset, nil) cmd := &commandCreate{ Ctx: &handler.Context{ CLIContext: c, }, } disableRollback := true templateOpts := new(osStacks.Template) templateOpts.URL = "mytemplate.yaml" environmentOpts := new(osStacks.Environment) environmentOpts.URL = "myenvironment.yaml" expected := &handler.Resource{ Params: ¶msCreate{ opts: &osStacks.CreateOpts{ Name: "stack1", TemplateOpts: templateOpts, EnvironmentOpts: environmentOpts, DisableRollback: &disableRollback, Timeout: 300, Parameters: map[string]string{ "img": "foo", "flavor": "bar", }, }, }, } actual := &handler.Resource{} err := cmd.HandleFlags(actual) th.AssertNoErr(t, err) th.AssertDeepEquals(t, *expected.Params.(*paramsCreate).opts, *actual.Params.(*paramsCreate).opts) }