github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/commands/user/unset_org_role_test.go (about) 1 package user_test 2 3 import ( 4 testapi "github.com/cloudfoundry/cli/cf/api/fakes" 5 "github.com/cloudfoundry/cli/cf/command_registry" 6 "github.com/cloudfoundry/cli/cf/configuration/core_config" 7 "github.com/cloudfoundry/cli/cf/models" 8 testcmd "github.com/cloudfoundry/cli/testhelpers/commands" 9 testconfig "github.com/cloudfoundry/cli/testhelpers/configuration" 10 testreq "github.com/cloudfoundry/cli/testhelpers/requirements" 11 testterm "github.com/cloudfoundry/cli/testhelpers/terminal" 12 . "github.com/onsi/ginkgo" 13 . "github.com/onsi/gomega" 14 15 . "github.com/cloudfoundry/cli/testhelpers/matchers" 16 ) 17 18 var _ = Describe("unset-org-role command", func() { 19 var ( 20 ui *testterm.FakeUI 21 userRepo *testapi.FakeUserRepository 22 configRepo core_config.Repository 23 requirementsFactory *testreq.FakeReqFactory 24 deps command_registry.Dependency 25 ) 26 27 updateCommandDependency := func(pluginCall bool) { 28 deps.Ui = ui 29 deps.Config = configRepo 30 deps.RepoLocator = deps.RepoLocator.SetUserRepository(userRepo) 31 command_registry.Commands.SetCommand(command_registry.Commands.FindCommand("unset-org-role").SetDependency(deps, pluginCall)) 32 } 33 34 runCommand := func(args ...string) bool { 35 return testcmd.RunCliCommand("unset-org-role", args, requirementsFactory, updateCommandDependency, false) 36 } 37 38 BeforeEach(func() { 39 ui = &testterm.FakeUI{} 40 userRepo = &testapi.FakeUserRepository{} 41 requirementsFactory = &testreq.FakeReqFactory{} 42 configRepo = testconfig.NewRepositoryWithDefaults() 43 }) 44 45 It("fails with usage when invoked without exactly three args", func() { 46 runCommand("username", "org") 47 Expect(ui.Outputs).To(ContainSubstrings( 48 []string{"Incorrect Usage", "Requires", "arguments"}, 49 )) 50 51 runCommand("woah", "too", "many", "args") 52 Expect(ui.Outputs).To(ContainSubstrings( 53 []string{"Incorrect Usage", "Requires", "arguments"}, 54 )) 55 }) 56 57 Describe("requirements", func() { 58 It("fails when not logged in", func() { 59 requirementsFactory.LoginSuccess = false 60 61 Expect(runCommand("username", "org", "role")).To(BeFalse()) 62 }) 63 64 It("succeeds when logged in", func() { 65 requirementsFactory.LoginSuccess = true 66 passed := runCommand("username", "org", "role") 67 Expect(passed).To(BeTrue()) 68 69 Expect(requirementsFactory.UserUsername).To(Equal("username")) 70 Expect(requirementsFactory.OrganizationName).To(Equal("org")) 71 }) 72 }) 73 74 Context("when logged in", func() { 75 BeforeEach(func() { 76 requirementsFactory.LoginSuccess = true 77 78 user := models.UserFields{} 79 user.Username = "some-user" 80 user.Guid = "some-user-guid" 81 org := models.Organization{} 82 org.Name = "some-org" 83 org.Guid = "some-org-guid" 84 85 requirementsFactory.UserFields = user 86 requirementsFactory.Organization = org 87 }) 88 89 It("unsets a user's org role", func() { 90 runCommand("my-username", "my-org", "OrgManager") 91 92 Expect(ui.Outputs).To(ContainSubstrings( 93 []string{"Removing role", "OrgManager", "my-username", "my-org", "my-user"}, 94 []string{"OK"}, 95 )) 96 97 Expect(userRepo.UnsetOrgRoleRole).To(Equal(models.ORG_MANAGER)) 98 Expect(userRepo.UnsetOrgRoleUserGuid).To(Equal("some-user-guid")) 99 Expect(userRepo.UnsetOrgRoleOrganizationGuid).To(Equal("some-org-guid")) 100 }) 101 }) 102 })