It("should fail with usage", func() { flagContext.Parse("blahblah") reqs, err := cmd.Requirements(requirementsFactory, flagContext) Expect(err).NotTo(HaveOccurred()) err = testcmd.RunRequirements(reqs) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("Incorrect Usage")) Expect(err.Error()).To(ContainSubstring("No argument required")) }) }) It("requires CC API version 2.47 or greater", func() { requirementsFactory.NewMaxAPIVersionRequirementReturns(requirements.Failing{Message: "max api 2.47"}) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) Expect(runCommand()).To(BeFalse()) }) }) Context("when logged in and some service auth tokens exist", func() { BeforeEach(func() { requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) requirementsFactory.NewMaxAPIVersionRequirementReturns(requirements.Passing{}) authTokenRepo.FindAllAuthTokens = []models.ServiceAuthTokenFields{ {Label: "a label", Provider: "a provider"}, {Label: "a second label", Provider: "a second provider"}, } })
UI: ui, Config: configRepo, RepoLocator: repoLocator, } cmd = &service.PurgeServiceOffering{} cmd.SetDependency(deps, false) flagContext = flags.NewFlagContext(cmd.MetaData().Flags) factory = new(requirementsfakes.FakeFactory) loginRequirement = &passingRequirement{Name: "login-requirement"} factory.NewLoginRequirementReturns(loginRequirement) maxAPIVersionRequirement = &passingRequirement{Name: "max-api-version-requirement"} factory.NewMaxAPIVersionRequirementReturns(maxAPIVersionRequirement) }) Describe("Requirements", func() { Context("when not provided exactly one arg", func() { BeforeEach(func() { flagContext.Parse("service", "extra-arg") }) It("fails with usage", func() { Expect(func() { cmd.Requirements(factory, flagContext) }).To(Panic()) Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"Incorrect Usage. Requires an argument"}, )) })