testterm "code.cloudfoundry.org/cli/testhelpers/terminal" . "code.cloudfoundry.org/cli/testhelpers/matchers" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("UnsetOrgRole", func() { var ( ui *testterm.FakeUI configRepo coreconfig.Repository userRepo *testapi.FakeUserRepository 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 = &testapi.FakeUserRepository{} repoLocator := deps.RepoLocator.SetUserRepository(userRepo) flagRepo = new(featureflagsfakes.FakeFeatureFlagRepository) repoLocator = repoLocator.SetFeatureFlagRepository(flagRepo)
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")
var ( user1, user2 models.UserFields ) BeforeEach(func() { org := models.Organization{} org.Name = "the-org" org.GUID = "the-org-guid" user1 = models.UserFields{} user1.Username = "******" user2 = models.UserFields{} user2.Username = "******" requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) organizationReq := new(requirementsfakes.FakeOrganizationRequirement) organizationReq.GetOrganizationReturns(org) requirementsFactory.NewOrganizationRequirementReturns(organizationReq) }) Context("shows friendly messaage when no users in ORG_MANAGER role", func() { It("shows the special users in the given org", func() { userRepo.ListUsersInOrgForRoleStub = func(_ string, roleName models.Role) ([]models.UserFields, error) { userFields := map[models.Role][]models.UserFields{ models.RoleOrgManager: {}, models.RoleBillingManager: {user1}, models.RoleOrgAuditor: {user2}, }[roleName] return userFields, nil }
It("fails with usage", func() { runCommand("") Expect(ui.Outputs()).To(ContainSubstrings( []string{"Incorrect Usage", "Requires", "arguments"}, )) runCommand("org1") Expect(ui.Outputs()).To(ContainSubstrings( []string{"Incorrect Usage", "Requires", "arguments"}, )) }) Context("checks login", func() { It("passes when logged in", func() { fakeOrgRequirement := new(requirementsfakes.FakeOrganizationRequirement) fakeOrgRequirement.GetOrganizationReturns(models.Organization{ OrganizationFields: models.OrganizationFields{ Name: "my-org", }, }) requirementsFactory.NewOrganizationRequirementReturns(fakeOrgRequirement) Expect(runCommand("my-org", "example.com")).To(BeTrue()) Expect(ui.Outputs()).To(ContainSubstrings([]string{"my-org"})) }) It("fails when not logged in", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Failing{Message: "not logged in"}) Expect(runCommand("my-org", "example.com")).To(BeFalse()) })