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"})) }) })
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: "", }, }
runCommand() Expect(ui.FailedWithUsage).To(BeTrue()) }) It("fails requirements when an org is not targeted", func() { requirementsFactory.TargetedOrgSuccess = false Expect(testcmd.CommandDidPassRequirements).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"},
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.FindByNameName = space.Name spaceRepo.Spaces = []models.Space{space} 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")) })