}) Describe("Execute", func() { var ( org models.Organization err error ) BeforeEach(func() { flagContext.Parse("the-user-name", "the-org-name", "the-space-name", "SpaceManager") cmd.Requirements(factory, flagContext) org = models.Organization{} org.GUID = "the-org-guid" org.Name = "the-org-name" organizationRequirement.GetOrganizationReturns(org) }) JustBeforeEach(func() { err = cmd.Execute(flagContext) }) Context("when the space is not found", func() { BeforeEach(func() { spaceRepo.FindByNameInOrgReturns(models.Space{}, errors.New("space-repo-error")) }) It("doesn't call CC", func() { Expect(userRepo.UnsetSpaceRoleByGUIDCallCount()).To(BeZero()) Expect(userRepo.UnsetSpaceRoleByUsernameCallCount()).To(BeZero()) })
BeforeEach(func() { ui = &testterm.FakeUI{ Inputs: []string{"yes"}, } domainRepo = new(apifakes.FakeDomainRepository) requirementsFactory = new(requirementsfakes.FakeFactory) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) requirementsFactory.NewTargetedOrgRequirementReturns(new(requirementsfakes.FakeTargetedOrgRequirement)) fakeOrgRequirement := new(requirementsfakes.FakeOrganizationRequirement) fakeOrgRequirement.GetOrganizationReturns(models.Organization{ OrganizationFields: models.OrganizationFields{ Name: "my-org", }, }) requirementsFactory.NewOrganizationRequirementReturns(fakeOrgRequirement) configRepo = testconfig.NewRepositoryWithDefaults() }) runCommand := func(args ...string) bool { return testcmd.RunCLICommand("delete-domain", args, requirementsFactory, updateCommandDependency, false, ui) } Describe("requirements", func() { It("fails when the user is not logged in", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Failing{Message: "not logged in"})
)) }) It("fails requirements when not logged in", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Failing{Message: "not logged in"}) Expect(runCommand("my-org", "my-quota")).To(BeFalse()) }) Context("when logged in", func() { BeforeEach(func() { org := models.Organization{} org.Name = "my-org" org.GUID = "my-org-guid" orgReq := new(requirementsfakes.FakeOrganizationRequirement) orgReq.GetOrganizationReturns(org) requirementsFactory.NewOrganizationRequirementReturns(orgReq) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) }) It("assigns a quota to an org", func() { quota := models.QuotaFields{Name: "my-quota", GUID: "my-quota-guid"} quotaRepo.FindByNameReturns(quota, nil) runCommand("my-org", "my-quota") Expect(ui.Outputs()).To(ContainSubstrings( []string{"Setting quota", "my-quota", "my-org", "my-user"}, []string{"OK"}, ))
return testcmd.RunCLICommand("space-users", args, requirementsFactory, updateCommandDependency, false, ui) } Describe("requirements", func() { It("fails when not logged in", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Failing{Message: "not logged in"}) Expect(runCommand("my-org", "my-space")).To(BeFalse()) }) It("succeeds when logged in", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) organizationReq := new(requirementsfakes.FakeOrganizationRequirement) organizationReq.GetOrganizationReturns( models.Organization{ OrganizationFields: models.OrganizationFields{ Name: "some-org", }, }, ) spaceRepo.FindByNameInOrgReturns( models.Space{ SpaceFields: models.SpaceFields{ Name: "whatever-space", }, }, nil) requirementsFactory.NewOrganizationRequirementReturns(organizationReq) passed := runCommand("some-org", "whatever-space") Expect(passed).To(BeTrue()) Expect(ui.Outputs()).To(ContainSubstrings([]string{"Getting users in org some-org / space whatever-space as my-user"})) })