func deleteWithConfirmation(confirmation string) (ui *testterm.FakeUI, userRepo *testapi.FakeUserRepository) { ui = &testterm.FakeUI{ Inputs: []string{confirmation}, } user2 := models.UserFields{} user2.Username = "******" user2.Guid = "my-found-user-guid" userRepo = &testapi.FakeUserRepository{ FindByUsernameUserFields: user2, } configRepo := testconfig.NewRepositoryWithDefaults() accessToken, err := testconfig.EncodeAccessToken(configuration.TokenInfo{ Username: "******", }) Expect(err).NotTo(HaveOccurred()) configRepo.SetAccessToken(accessToken) cmd := NewDeleteUser(ui, configRepo, userRepo) ctxt := testcmd.NewContext("delete-user", []string{"my-user"}) reqFactory := &testreq.FakeReqFactory{LoginSuccess: true} testcmd.RunCommand(cmd, ctxt, reqFactory) return }
requirementsFactory.LoginSuccess = false callUnsetSpaceRole(args, spaceRepo, userRepo, requirementsFactory) Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) requirementsFactory.LoginSuccess = true callUnsetSpaceRole(args, spaceRepo, userRepo, requirementsFactory) Expect(testcmd.CommandDidPassRequirements).To(BeTrue()) Expect(requirementsFactory.UserUsername).To(Equal("username")) Expect(requirementsFactory.OrganizationName).To(Equal("org")) }) It("TestUnsetSpaceRole", func() { user := models.UserFields{} user.Username = "******" user.Guid = "some-user-guid" org := models.Organization{} org.Name = "some-org" org.Guid = "some-org-guid" requirementsFactory, spaceRepo, userRepo := getUnsetSpaceRoleDeps() requirementsFactory.LoginSuccess = true requirementsFactory.UserFields = user requirementsFactory.Organization = org spaceRepo.FindByNameInOrgSpace = models.Space{} spaceRepo.FindByNameInOrgSpace.Name = "some-space" spaceRepo.FindByNameInOrgSpace.Guid = "some-space-guid" args := []string{"my-username", "my-org", "my-space", "SpaceManager"} ui := callUnsetSpaceRole(args, spaceRepo, userRepo, requirementsFactory)
import ( "cf/models" . "cf/requirements" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" testapi "testhelpers/api" testassert "testhelpers/assert" testterm "testhelpers/terminal" ) var _ = Describe("Testing with ginkgo", func() { It("TestUserReqExecute", func() { user := models.UserFields{} user.Username = "******" user.Guid = "my-user-guid" userRepo := &testapi.FakeUserRepository{FindByUsernameUserFields: user} ui := new(testterm.FakeUI) userReq := NewUserRequirement("foo", ui, userRepo) success := userReq.Execute() Expect(success).To(BeTrue()) Expect(userRepo.FindByUsernameUsername).To(Equal("foo")) Expect(userReq.GetUser()).To(Equal(user)) }) It("TestUserReqWhenUserDoesNotExist", func() { userRepo := &testapi.FakeUserRepository{FindByUsernameNotFound: true} ui := new(testterm.FakeUI)
Expect(userRepo.DeleteUserGuid).To(Equal("my-found-user-guid")) }) It("TestDeleteUserWhenNotConfirming", func() { ui, userRepo := deleteWithConfirmation("Nope") Expect(len(ui.Outputs)).To(Equal(0)) testassert.SliceContains(ui.Prompts, testassert.Lines{{"Really delete"}}) Expect(userRepo.FindByUsernameUsername).To(Equal("")) Expect(userRepo.DeleteUserGuid).To(Equal("")) }) It("TestDeleteUserWithForceOption", func() { foundUserFields := models.UserFields{} foundUserFields.Guid = "my-found-user-guid" userRepo := &testapi.FakeUserRepository{FindByUsernameUserFields: foundUserFields} reqFactory := &testreq.FakeReqFactory{LoginSuccess: true} ui := callDeleteUser([]string{"-f", "my-user"}, userRepo, reqFactory) Expect(len(ui.Outputs)).To(Equal(2)) Expect(len(ui.Prompts)).To(Equal(0)) testassert.SliceContains(ui.Outputs, testassert.Lines{ {"Deleting user", "my-user"}, {"OK"}, }) Expect(userRepo.FindByUsernameUsername).To(Equal("my-user")) Expect(userRepo.DeleteUserGuid).To(Equal("my-found-user-guid")) })
uaaReq := testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/Users?attributes=id,userName&filter=userName+Eq+%22damien%2Buser1%40pivotallabs.com%22", Response: testnet.TestResponse{Status: http.StatusOK, Body: usersResponse}, }) uaa, handler, repo := createUsersRepoWithoutCCEndpoints([]testnet.TestRequest{uaaReq}) defer uaa.Close() user, apiResponse := repo.FindByUsername("*****@*****.**") Expect(handler.AllRequestsCalled()).To(BeTrue()) Expect(apiResponse.IsSuccessful()).To(BeTrue()) expectedUserFields := models.UserFields{} expectedUserFields.Username = "******" expectedUserFields.Guid = "my-guid" Expect(user).To(Equal(expectedUserFields)) }) It("TestFindByUsernameWhenNotFound", func() { uaaReq := testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/Users?attributes=id,userName&filter=userName+Eq+%22my-user%22", Response: testnet.TestResponse{Status: http.StatusOK, Body: `{"resources": []}`}, }) uaa, handler, repo := createUsersRepoWithoutCCEndpoints([]testnet.TestRequest{uaaReq}) defer uaa.Close() _, apiResponse := repo.FindByUsername("my-user") Expect(handler.AllRequestsCalled()).To(BeTrue())