BeforeEach(func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true }) It("unassigns a quota from a space", func() { space := models.Space{ SpaceFields: models.SpaceFields{ Name: "my-space", Guid: "my-space-guid", }, } quota := models.SpaceQuota{Name: "my-quota", Guid: "my-quota-guid"} quotaRepo.FindByNameReturns(quota, nil) spaceRepo.FindByNameReturns(space, nil) runCommand("my-space", "my-quota") Expect(ui.Outputs).To(ContainSubstrings( []string{"Unassigning space quota", "my-quota", "my-space", "my-user"}, []string{"OK"}, )) Expect(quotaRepo.FindByNameArgsForCall(0)).To(Equal("my-quota")) spaceGuid, quotaGuid := quotaRepo.UnassignQuotaFromSpaceArgsForCall(0) Expect(spaceGuid).To(Equal("my-space-guid")) Expect(quotaGuid).To(Equal("my-quota-guid")) }) })
Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"Error"}, )) Expect(spaceRepo.CreateSpaceName).To(Equal("")) }) }) Context("when the -q flag is provided", func() { It("assigns the space-quota specified to the space", func() { spaceQuota := models.SpaceQuota{ Name: "my-space-quota", Guid: "my-space-quota-guid", } spaceQuotaRepo.FindByNameReturns(spaceQuota, nil) runCommand("-q", "my-space-quota", "my-space") Expect(spaceQuotaRepo.FindByNameArgsForCall(0)).To(Equal(spaceQuota.Name)) Expect(spaceRepo.CreateSpaceSpaceQuotaGuid).To(Equal(spaceQuota.Guid)) }) Context("when the space-quota provided does not exist", func() { It("fails", func() { spaceQuotaRepo.FindByNameReturns(models.SpaceQuota{}, errors.New("Error")) runCommand("-q", "my-space-quota", "my-space") Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"Error"},
Context("when logged in", func() { JustBeforeEach(func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true Expect(runCommand("my-space", "quota-name")).To(HavePassedRequirements()) }) Context("when the space and quota both exist", func() { BeforeEach(func() { quotaRepo.FindByNameReturns( models.SpaceQuota{ Name: "quota-name", Guid: "quota-guid", MemoryLimit: 1024, InstanceMemoryLimit: 512, RoutesLimit: 111, ServicesLimit: 222, NonBasicServicesAllowed: true, OrgGuid: "my-org-guid", }, nil) spaceRepo.Spaces = []models.Space{ models.Space{ SpaceFields: models.SpaceFields{ Name: "my-space", Guid: "my-space-guid", }, SpaceQuotaGuid: "", }, }
MemoryLimit: 1024, InstanceMemoryLimit: 512, RoutesLimit: 111, ServicesLimit: 222, NonBasicServicesAllowed: false, OrgGuid: "my-org-guid", } quotaPaidService = models.SpaceQuota{NonBasicServicesAllowed: true} requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true }) JustBeforeEach(func() { quotaRepo.FindByNameReturns(quota, nil) }) Context("when the -m flag is provided", func() { It("updates the memory limit", func() { runCommand("-m", "15G", "my-quota") Expect(quotaRepo.UpdateArgsForCall(0).Name).To(Equal("my-quota")) Expect(quotaRepo.UpdateArgsForCall(0).MemoryLimit).To(Equal(int64(15360))) }) It("alerts the user when parsing the memory limit fails", func() { runCommand("-m", "whoops", "wit mah hussle", "my-org") Expect(ui.Outputs).To(ContainSubstrings([]string{"FAILED"})) }) })
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( []string{"Deleting space quota", "my-quota", "as", "my-user"}, []string{"OK"},