securityGroup1 := models.SecurityGroupFields{Name: "Nacho Security"} securityGroup2 := models.SecurityGroupFields{Name: "Nacho Prime"} securityGroups := []models.SecurityGroupFields{securityGroup1, securityGroup2} space := models.Space{} space.Name = "whose-space-is-it-anyway" space.Organization = org space.Applications = apps space.Domains = domains space.ServiceInstances = services space.SecurityGroups = securityGroups space.SpaceQuotaGuid = "runaway-guid" quota := models.SpaceQuota{} quota.Guid = "runaway-guid" quota.Name = "runaway" quota.MemoryLimit = 102400 quota.InstanceMemoryLimit = -1 quota.RoutesLimit = 111 quota.ServicesLimit = 222 quota.NonBasicServicesAllowed = false requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true requirementsFactory.Space = space quotaRepo.FindByGuidReturns(quota, nil) }) Context("when the space has a space quota", func() {
It("fails requirements when called without a quota name", func() { runCommand() Expect(ui.FailedWithUsage).To(BeTrue()) }) It("fails requirements when an org is not targeted", func() { requirementsFactory.TargetedOrgSuccess = false Expect(runCommand()).To(BeFalse()) }) Context("When the quota provided exists", func() { BeforeEach(func() { quota := models.SpaceQuota{} quota.Name = "my-quota" quota.Guid = "my-quota-guid" quota.OrgGuid = "my-org-guid" quotaRepo.FindByNameReturns(quota, nil) }) It("deletes a quota with a given name when the user confirms", func() { ui.Inputs = []string{"y"} runCommand("my-quota") Expect(quotaRepo.DeleteArgsForCall(0)).To(Equal("my-quota-guid")) Expect(ui.Prompts).To(ContainSubstrings( []string{"Really delete the quota", "my-quota"}, )) Expect(ui.Outputs).To(ContainSubstrings(