testterm "github.com/cloudfoundry/cli/testhelpers/terminal" . "github.com/cloudfoundry/cli/testhelpers/matchers" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("UnsetSpaceRole", func() { var ( ui *testterm.FakeUI configRepo coreconfig.Repository userRepo *apifakes.FakeUserRepository spaceRepo *apifakes.FakeSpaceRepository flagRepo *featureflagsfakes.FakeFeatureFlagRepository cmd commandregistry.Command deps commandregistry.Dependency factory *requirementsfakes.FakeFactory flagContext flags.FlagContext loginRequirement requirements.Requirement userRequirement *requirementsfakes.FakeUserRequirement organizationRequirement *requirementsfakes.FakeOrganizationRequirement ) BeforeEach(func() { ui = &testterm.FakeUI{} configRepo = testconfig.NewRepositoryWithDefaults() userRepo = new(apifakes.FakeUserRepository) repoLocator := deps.RepoLocator.SetUserRepository(userRepo) spaceRepo = new(apifakes.FakeSpaceRepository) repoLocator = repoLocator.SetSpaceRepository(spaceRepo)
deps.Config = configRepo commandregistry.Commands.SetCommand(commandregistry.Commands.FindCommand("delete-domain").SetDependency(deps, pluginCall)) } 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() {
[]string{"Incorrect Usage", "Requires", "arguments"}, )) }) 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"},
deps = commandregistry.NewDependency(os.Stdout, new(tracefakes.FakePrinter)) }) runCommand := func(args ...string) bool { 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")