func (s *createBudgetSuite) TestCreateBudgetErrors(c *gc.C) { tests := []struct { about string args []string expectedError string }{ { about: "test value needs to be a number", args: []string{"name", "badvalue"}, expectedError: "budget value needs to be a whole number", }, { about: "value is missing", args: []string{"name"}, expectedError: "name and value required", }, { about: "no args", args: []string{}, expectedError: "name and value required", }, } for i, test := range tests { c.Logf("test %d: %s", i, test.about) if test.expectedError != "" { s.mockAPI.SetErrors(errors.New(test.expectedError)) } createCmd := createbudget.NewCreateBudgetCommand() _, err := cmdtesting.RunCommand(c, createCmd, test.args...) c.Assert(err, gc.ErrorMatches, test.expectedError) s.mockAPI.CheckNoCalls(c) } }
func (s *createBudgetSuite) TestCreateBudgetAPIError(c *gc.C) { s.mockAPI.SetErrors(errors.New("something failed")) createCmd := createbudget.NewCreateBudgetCommand() _, err := cmdtesting.RunCommand(c, createCmd, "name", "5") c.Assert(err, gc.ErrorMatches, "failed to create the budget: something failed") s.mockAPI.CheckCall(c, 0, "CreateBudget", "name", "5") }
func (s *createBudgetSuite) TestCreateBudget(c *gc.C) { s.mockAPI.resp = "name budget set to 5" createCmd := createbudget.NewCreateBudgetCommand() ctx, err := cmdtesting.RunCommand(c, createCmd, "name", "5") c.Assert(err, jc.ErrorIsNil) c.Assert(cmdtesting.Stdout(ctx), jc.DeepEquals, "name budget set to 5") s.mockAPI.CheckCall(c, 0, "CreateBudget", "name", "5") }
// RegisterAll registers all romulus commands with the // provided command registry. func RegisterAll(r commandRegister) { r.Register(agree.NewAgreeCommand()) r.Register(allocate.NewAllocateCommand()) r.Register(createbudget.NewCreateBudgetCommand()) r.Register(listbudgets.NewListBudgetsCommand()) r.Register(listplans.NewListPlansCommand()) r.Register(setbudget.NewSetBudgetCommand()) r.Register(setplan.NewSetPlanCommand()) r.Register(showbudget.NewShowBudgetCommand()) r.Register(updateallocation.NewUpdateAllocationCommand()) }
// RegisterAll registers all romulus commands with the // provided command registry. func RegisterAll(r commandRegister) { register := func(c cmd.Command) { switch c := c.(type) { case modelcmd.ModelCommand: r.Register(modelcmd.Wrap(c)) case modelcmd.CommandBase: r.Register(modelcmd.WrapBase(c)) default: r.Register(c) } } register(agree.NewAgreeCommand()) register(listagreements.NewListAgreementsCommand()) register(allocate.NewAllocateCommand()) register(listbudgets.NewListBudgetsCommand()) register(createbudget.NewCreateBudgetCommand()) register(listplans.NewListPlansCommand()) register(setbudget.NewSetBudgetCommand()) register(setplan.NewSetPlanCommand()) register(showbudget.NewShowBudgetCommand()) register(updateallocation.NewUpdateAllocationCommand()) }