github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+incompatible/cf/commands/user/unset_space_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/models" 7 testcmd "github.com/cloudfoundry/cli/testhelpers/commands" 8 testconfig "github.com/cloudfoundry/cli/testhelpers/configuration" 9 testreq "github.com/cloudfoundry/cli/testhelpers/requirements" 10 testterm "github.com/cloudfoundry/cli/testhelpers/terminal" 11 . "github.com/onsi/ginkgo" 12 . "github.com/onsi/gomega" 13 14 . "github.com/cloudfoundry/cli/testhelpers/matchers" 15 ) 16 17 var _ = Describe("unset-space-role command", func() { 18 It("fails with usage when not called with exactly four args", func() { 19 requirementsFactory, spaceRepo, userRepo := getUnsetSpaceRoleDeps() 20 21 ui, _ := callUnsetSpaceRole([]string{"username", "org", "space"}, spaceRepo, userRepo, requirementsFactory) 22 Expect(ui.FailedWithUsage).To(BeTrue()) 23 }) 24 25 It("fails requirements when not logged in", func() { 26 requirementsFactory, spaceRepo, userRepo := getUnsetSpaceRoleDeps() 27 args := []string{"username", "org", "space", "role"} 28 29 requirementsFactory.LoginSuccess = false 30 _, passed := callUnsetSpaceRole(args, spaceRepo, userRepo, requirementsFactory) 31 Expect(passed).To(BeFalse()) 32 }) 33 34 It("unsets the user's space role", func() { 35 user := models.UserFields{} 36 user.Username = "some-user" 37 user.Guid = "some-user-guid" 38 org := models.Organization{} 39 org.Name = "some-org" 40 org.Guid = "some-org-guid" 41 42 requirementsFactory, spaceRepo, userRepo := getUnsetSpaceRoleDeps() 43 requirementsFactory.LoginSuccess = true 44 requirementsFactory.UserFields = user 45 requirementsFactory.Organization = org 46 spaceRepo.FindByNameInOrgSpace = models.Space{} 47 spaceRepo.FindByNameInOrgSpace.Name = "some-space" 48 spaceRepo.FindByNameInOrgSpace.Guid = "some-space-guid" 49 50 args := []string{"my-username", "my-org", "my-space", "SpaceManager"} 51 52 ui, _ := callUnsetSpaceRole(args, spaceRepo, userRepo, requirementsFactory) 53 54 Expect(spaceRepo.FindByNameInOrgName).To(Equal("my-space")) 55 Expect(spaceRepo.FindByNameInOrgOrgGuid).To(Equal("some-org-guid")) 56 57 Expect(ui.Outputs).To(ContainSubstrings( 58 []string{"Removing role", "SpaceManager", "some-user", "some-org", "some-space", "my-user"}, 59 []string{"OK"}, 60 )) 61 Expect(userRepo.UnsetSpaceRoleRole).To(Equal(models.SPACE_MANAGER)) 62 Expect(userRepo.UnsetSpaceRoleUserGuid).To(Equal("some-user-guid")) 63 Expect(userRepo.UnsetSpaceRoleSpaceGuid).To(Equal("some-space-guid")) 64 }) 65 }) 66 67 func getUnsetSpaceRoleDeps() (requirementsFactory *testreq.FakeReqFactory, spaceRepo *testapi.FakeSpaceRepository, userRepo *testapi.FakeUserRepository) { 68 requirementsFactory = &testreq.FakeReqFactory{} 69 spaceRepo = &testapi.FakeSpaceRepository{} 70 userRepo = &testapi.FakeUserRepository{} 71 return 72 } 73 74 func callUnsetSpaceRole(args []string, spaceRepo *testapi.FakeSpaceRepository, userRepo *testapi.FakeUserRepository, requirementsFactory *testreq.FakeReqFactory) (*testterm.FakeUI, bool) { 75 ui := &testterm.FakeUI{} 76 config := testconfig.NewRepositoryWithDefaults() 77 cmd := NewUnsetSpaceRole(ui, config, spaceRepo, userRepo) 78 passed := testcmd.RunCommand(cmd, args, requirementsFactory) 79 return ui, passed 80 }