It("does not return a min api requirement", func() { Expect(reqFactory.NewMinAPIVersionRequirementCallCount()).To(Equal(0)) }) }) Context("when the -a flag is provided", func() { BeforeEach(func() { flagContext.Parse("myquota", "-a", "2") actualRequirements, err = cmd.Requirements(reqFactory, flagContext) Expect(err).NotTo(HaveOccurred()) }) It("returns a min api version requirement", func() { Expect(reqFactory.NewMinAPIVersionRequirementCallCount()).To(Equal(1)) commandName, requiredVersion := reqFactory.NewMinAPIVersionRequirementArgsForCall(0) Expect(commandName).To(Equal("Option '-a'")) expectVersion, _ := semver.Make("2.40.0") Expect(requiredVersion).To(Equal(expectVersion)) Expect(actualRequirements).To(ContainElement(minApiVersionReq)) }) }) Context("when the --reserved-route-ports is provided", func() { BeforeEach(func() { flagContext.Parse("myquota", "--reserved-route-ports", "2") actualRequirements, err = cmd.Requirements(reqFactory, flagContext) Expect(err).NotTo(HaveOccurred()) }) It("return a minimum api version requirement", func() {
Expect(actualRequirements).To(ContainElement(targetedSpaceRequirement)) }) }) Context("when provided the -r flag", func() { BeforeEach(func() { flagContext.Parse("service-instance", "-r", "route-service-url") }) It("returns a MinAPIVersionRequirement", func() { actualRequirements, err := cmd.Requirements(factory, flagContext) Expect(err).NotTo(HaveOccurred()) Expect(factory.NewMinAPIVersionRequirementCallCount()).To(Equal(1)) Expect(actualRequirements).To(ContainElement(minAPIVersionRequirement)) feature, requiredVersion := factory.NewMinAPIVersionRequirementArgsForCall(0) Expect(feature).To(Equal("Option '-r'")) expectedRequiredVersion, err := semver.Make("2.51.0") Expect(err).NotTo(HaveOccurred()) Expect(requiredVersion).To(Equal(expectedRequiredVersion)) }) }) }) Describe("Execute", func() { var runCLIErr error BeforeEach(func() { err := flagContext.Parse("service-instance") Expect(err).NotTo(HaveOccurred()) cmd.Requirements(factory, flagContext)
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",