github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+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/commands/user" 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.ReadWriter 23 requirementsFactory *testreq.FakeReqFactory 24 ) 25 26 runCommand := func(args ...string) bool { 27 cmd := NewUnsetOrgRole(ui, configRepo, userRepo) 28 return testcmd.RunCommand(cmd, args, requirementsFactory) 29 } 30 31 BeforeEach(func() { 32 ui = &testterm.FakeUI{} 33 userRepo = &testapi.FakeUserRepository{} 34 requirementsFactory = &testreq.FakeReqFactory{} 35 configRepo = testconfig.NewRepositoryWithDefaults() 36 }) 37 38 It("fails with usage when invoked without exactly three args", func() { 39 runCommand("username", "org") 40 Expect(ui.FailedWithUsage).To(BeTrue()) 41 42 runCommand("woah", "too", "many", "args") 43 Expect(ui.FailedWithUsage).To(BeTrue()) 44 }) 45 46 Describe("requirements", func() { 47 It("fails when not logged in", func() { 48 requirementsFactory.LoginSuccess = false 49 50 Expect(runCommand("username", "org", "role")).To(BeFalse()) 51 }) 52 53 It("succeeds when logged in", func() { 54 requirementsFactory.LoginSuccess = true 55 passed := runCommand("username", "org", "role") 56 Expect(passed).To(BeTrue()) 57 58 Expect(requirementsFactory.UserUsername).To(Equal("username")) 59 Expect(requirementsFactory.OrganizationName).To(Equal("org")) 60 }) 61 }) 62 63 Context("when logged in", func() { 64 BeforeEach(func() { 65 requirementsFactory.LoginSuccess = true 66 67 user := models.UserFields{} 68 user.Username = "some-user" 69 user.Guid = "some-user-guid" 70 org := models.Organization{} 71 org.Name = "some-org" 72 org.Guid = "some-org-guid" 73 74 requirementsFactory.UserFields = user 75 requirementsFactory.Organization = org 76 }) 77 78 It("unsets a user's org role", func() { 79 runCommand("my-username", "my-org", "OrgManager") 80 81 Expect(ui.Outputs).To(ContainSubstrings( 82 []string{"Removing role", "OrgManager", "my-username", "my-org", "my-user"}, 83 []string{"OK"}, 84 )) 85 86 Expect(userRepo.UnsetOrgRoleRole).To(Equal(models.ORG_MANAGER)) 87 Expect(userRepo.UnsetOrgRoleUserGuid).To(Equal("some-user-guid")) 88 Expect(userRepo.UnsetOrgRoleOrganizationGuid).To(Equal("some-org-guid")) 89 }) 90 }) 91 })