args = []string{} }) Describe("requirements", func() { It("requires you to be logged in", func() { Expect(testcmd.RunCLICommand("migrate-service-instances", args, requirementsFactory, updateCommandDependency, false, ui)).To(BeFalse()) }) It("requires five arguments to run", func() { args = []string{"one", "two", "three"} Expect(testcmd.RunCLICommand("migrate-service-instances", args, requirementsFactory, updateCommandDependency, false, ui)).To(BeFalse()) }) It("requires CC API version 2.47 or lower", func() { requirementsFactory.NewMaxAPIVersionRequirementReturns(requirements.Failing{Message: "max api version not met"}) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) args = []string{"one", "two", "three", "four", "five"} ui.Inputs = append(ui.Inputs, "no") Expect(testcmd.RunCLICommand("migrate-service-instances", args, requirementsFactory, updateCommandDependency, false, ui)).To(BeFalse()) }) It("passes requirements if user is logged in and provided five args to run", func() { requirementsFactory.NewMaxAPIVersionRequirementReturns(requirements.Passing{}) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) args = []string{"one", "two", "three", "four", "five"} ui.Inputs = append(ui.Inputs, "no") serviceRepo.GetServiceInstanceCountForServicePlanReturns(1, nil) Expect(testcmd.RunCLICommand("migrate-service-instances", args, requirementsFactory, updateCommandDependency, false, ui)).To(BeTrue())
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() { _, err := cmd.Requirements(factory, flagContext) Expect(err).To(HaveOccurred()) Expect(ui.Outputs()).To(ContainSubstrings( []string{"FAILED"}, []string{"Incorrect Usage. Requires an argument"}, ))