github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+incompatible/cf/commands/user/set_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 func callSetOrgRole(args []string, requirementsFactory *testreq.FakeReqFactory, userRepo *testapi.FakeUserRepository) (ui *testterm.FakeUI) { 19 ui = new(testterm.FakeUI) 20 config := testconfig.NewRepositoryWithDefaults() 21 cmd := NewSetOrgRole(ui, config, userRepo) 22 testcmd.RunCommand(cmd, args, requirementsFactory) 23 return 24 } 25 26 var _ = Describe("set-org-role command", func() { 27 var ( 28 ui *testterm.FakeUI 29 requirementsFactory *testreq.FakeReqFactory 30 userRepo *testapi.FakeUserRepository 31 configRepo core_config.ReadWriter 32 ) 33 34 BeforeEach(func() { 35 configRepo = testconfig.NewRepositoryWithDefaults() 36 37 ui = &testterm.FakeUI{} 38 requirementsFactory = &testreq.FakeReqFactory{} 39 userRepo = &testapi.FakeUserRepository{} 40 }) 41 42 runCommand := func(args ...string) bool { 43 return testcmd.RunCommand(NewSetOrgRole(ui, configRepo, userRepo), args, requirementsFactory) 44 } 45 46 Describe("requirements", func() { 47 It("fails when not logged in", func() { 48 Expect(runCommand("hey", "there", "jude")).To(BeFalse()) 49 }) 50 51 It("fails with usage when not provided exactly three args", func() { 52 runCommand("one fish", "two fish") // red fish, blue fish 53 Expect(ui.FailedWithUsage).To(BeTrue()) 54 }) 55 }) 56 57 Context("when logged in", func() { 58 BeforeEach(func() { 59 requirementsFactory.LoginSuccess = true 60 61 org := models.Organization{} 62 org.Guid = "my-org-guid" 63 org.Name = "my-org" 64 requirementsFactory.UserFields = models.UserFields{Guid: "my-user-guid", Username: "my-user"} 65 requirementsFactory.Organization = org 66 }) 67 68 It("sets the given org role on the given user", func() { 69 runCommand("some-user", "some-org", "OrgManager") 70 71 Expect(ui.Outputs).To(ContainSubstrings( 72 []string{"Assigning role", "OrgManager", "my-user", "my-org", "my-user"}, 73 []string{"OK"}, 74 )) 75 Expect(userRepo.SetOrgRoleUserGuid).To(Equal("my-user-guid")) 76 Expect(userRepo.SetOrgRoleOrganizationGuid).To(Equal("my-org-guid")) 77 Expect(userRepo.SetOrgRoleRole).To(Equal(models.ORG_MANAGER)) 78 }) 79 }) 80 })