actualRequirements, err := cmd.Requirements(factory, flagContext) Expect(err).NotTo(HaveOccurred()) Expect(factory.NewLoginRequirementCallCount()).To(Equal(1)) Expect(actualRequirements).To(ContainElement(loginRequirement)) }) It("returns a MinAPIVersionRequirement", func() { actualRequirements, err := cmd.Requirements(factory, flagContext) Expect(err).NotTo(HaveOccurred()) Expect(factory.NewMinAPIVersionRequirementCallCount()).To(Equal(1)) expectedVersion, err := semver.Make("2.36.0") Expect(err).NotTo(HaveOccurred()) commandName, requiredVersion := factory.NewMinAPIVersionRequirementArgsForCall(0) Expect(commandName).To(Equal("purge-service-instance")) Expect(requiredVersion).To(Equal(expectedVersion)) Expect(actualRequirements).To(ContainElement(minAPIVersionRequirement)) }) }) }) Describe("Execute", func() { BeforeEach(func() { err := flagContext.Parse("service-instance-name") Expect(err).NotTo(HaveOccurred()) cmd.Requirements(factory, flagContext) })
Context("when an app instance limit is passed", func() { BeforeEach(func() { flagContext = flags.NewFlagContext(cmd.MetaData().Flags) flagContext.Parse("domain-name", "-a", "2") }) It("returns a MinAPIVersionRequirement as the second requirement", func() { actualRequirements, err := cmd.Requirements(requirementsFactory, flagContext) Expect(err).NotTo(HaveOccurred()) expectedVersion, err := semver.Make("2.33.0") Expect(err).NotTo(HaveOccurred()) Expect(requirementsFactory.NewMinAPIVersionRequirementCallCount()).To(Equal(1)) feature, requiredVersion := requirementsFactory.NewMinAPIVersionRequirementArgsForCall(0) Expect(feature).To(Equal("Option '-a'")) Expect(requiredVersion).To(Equal(expectedVersion)) Expect(actualRequirements[1]).To(Equal(minAPIVersionRequirement)) }) }) Context("when reserved route ports limit is passed", func() { BeforeEach(func() { flagContext = flags.NewFlagContext(cmd.MetaData().Flags) flagContext.Parse("domain-name", "--reserved-route-ports", "3") }) It("returns a MinAPIVersionRequirement as the second requirement", func() { actualRequirements, err := cmd.Requirements(requirementsFactory, flagContext) Expect(err).NotTo(HaveOccurred())
Expect(ui.Outputs()).To(ContainSubstrings( []string{"Incorrect Usage", "Requires an argument"}, )) }) Context("the minimum API version requirement", func() { BeforeEach(func() { requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) requirementsFactory.NewTargetedOrgRequirementReturns(new(requirementsfakes.FakeTargetedOrgRequirement)) requirementsFactory.NewMinAPIVersionRequirementReturns(requirements.Failing{Message: "not min api"}) }) It("fails when the -a option is provided", func() { Expect(runCommand("my-quota", "-a", "10")).To(BeFalse()) Expect(requirementsFactory.NewMinAPIVersionRequirementCallCount()).To(Equal(1)) option, version := requirementsFactory.NewMinAPIVersionRequirementArgsForCall(0) Expect(option).To(Equal("Option '-a'")) Expect(version).To(Equal(cf.SpaceAppInstanceLimitMinimumAPIVersion)) }) It("does not fail when the -a option is not provided", func() { Expect(runCommand("my-quota", "-m", "10G")).To(BeTrue()) }) }) }) Context("when the user is logged in", func() { BeforeEach(func() { quota = models.SpaceQuota{ GUID: "my-quota-guid", Name: "my-quota",