github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/cf/api/password/password_test.go (about) 1 package password_test 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "time" 7 8 "code.cloudfoundry.org/cli/cf/api/apifakes" 9 "code.cloudfoundry.org/cli/cf/net" 10 "code.cloudfoundry.org/cli/cf/terminal/terminalfakes" 11 testconfig "code.cloudfoundry.org/cli/util/testhelpers/configuration" 12 testnet "code.cloudfoundry.org/cli/util/testhelpers/net" 13 14 . "code.cloudfoundry.org/cli/cf/api/password" 15 "code.cloudfoundry.org/cli/cf/trace/tracefakes" 16 . "code.cloudfoundry.org/cli/util/testhelpers/matchers" 17 . "github.com/onsi/ginkgo" 18 . "github.com/onsi/gomega" 19 ) 20 21 var _ = Describe("CloudControllerPasswordRepository", func() { 22 It("updates your password", func() { 23 req := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ 24 Method: "PUT", 25 Path: "/Users/my-user-guid/password", 26 Matcher: testnet.RequestBodyMatcher(`{"password":"new-password","oldPassword":"old-password"}`), 27 Response: testnet.TestResponse{Status: http.StatusOK}, 28 }) 29 30 passwordUpdateServer, handler, repo := createPasswordRepo(req) 31 defer passwordUpdateServer.Close() 32 33 apiErr := repo.UpdatePassword("old-password", "new-password") 34 Expect(handler).To(HaveAllRequestsCalled()) 35 Expect(apiErr).NotTo(HaveOccurred()) 36 }) 37 }) 38 39 func createPasswordRepo(req testnet.TestRequest) (passwordServer *httptest.Server, handler *testnet.TestHandler, repo Repository) { 40 passwordServer, handler = testnet.NewServer([]testnet.TestRequest{req}) 41 42 configRepo := testconfig.NewRepositoryWithDefaults() 43 configRepo.SetUaaEndpoint(passwordServer.URL) 44 gateway := net.NewCloudControllerGateway(configRepo, time.Now, new(terminalfakes.FakeUI), new(tracefakes.FakePrinter), "") 45 repo = NewCloudControllerRepository(configRepo, gateway) 46 return 47 }