func (s *ListSuite) TestInit(c *gc.C) { for i, test := range []struct { about string args []string expectShort bool expectFormat string expectErr string }{{ about: "unrecognized arguments", args: s.Strings("foo"), expectErr: `unrecognized args: \["foo"\]`, expectFormat: "tabular", }, { about: "invalid format", args: s.Strings("--format", "foo"), expectErr: `invalid value "foo" for flag --format: unknown format "foo"`, expectFormat: "tabular", }, { about: "invalid format (value is case-sensitive)", args: s.Strings("--format", "JSON"), expectErr: `invalid value "JSON" for flag --format: unknown format "JSON"`, expectFormat: "tabular", }, { about: "json format", args: s.Strings("--format", "json"), expectFormat: "json", }, { about: "yaml format", args: s.Strings("--format", "yaml"), expectFormat: "yaml", }, { about: "tabular format", args: s.Strings("--format", "tabular"), expectFormat: "tabular", }, { // --output and -o are tested separately in TestOutputFormats. about: "both --output and -o specified (latter overrides former)", args: s.Strings("--output", "foo", "-o", "bar"), expectFormat: "tabular", }} { c.Logf("test #%d: %s", i, test.about) // Create a new instance of the subcommand for each test, but // since we're not running the command no need to use // modelcmd.Wrap(). wrappedCommand, command := space.NewListCommandForTest(s.api) err := coretesting.InitCommand(wrappedCommand, test.args) if test.expectErr != "" { c.Check(err, gc.ErrorMatches, test.expectErr) } else { c.Check(err, jc.ErrorIsNil) } c.Check(command.ListFormat(), gc.Equals, test.expectFormat) c.Check(command.Short, gc.Equals, test.expectShort) // No API calls should be recorded at this stage. s.api.CheckCallNames(c) } }
func (s *ListSuite) SetUpTest(c *gc.C) { s.BaseSpaceSuite.SetUpTest(c) s.command, _ = space.NewListCommandForTest(s.api) c.Assert(s.command, gc.NotNil) }