github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/api/uaa/refresh_token_test.go (about) 1 package uaa_test 2 3 import ( 4 "fmt" 5 "net/http" 6 7 . "code.cloudfoundry.org/cli/api/uaa" 8 9 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 . "github.com/onsi/gomega/ghttp" 12 ) 13 14 var _ = Describe("UAA Client", func() { 15 var ( 16 client *Client 17 ) 18 19 BeforeEach(func() { 20 client = NewTestUAAClientAndStore() 21 }) 22 23 Describe("RefreshAccessToken", func() { 24 var ( 25 returnedAccessToken string 26 sentRefreshToken string 27 returnedRefreshToken string 28 ) 29 BeforeEach(func() { 30 returnedAccessToken = "I-ACCESS-TOKEN" 31 sentRefreshToken = "I-R-REFRESH-TOKEN" 32 returnedRefreshToken = "I-R-NEW-REFRESH-TOKEN" 33 response := fmt.Sprintf(`{ 34 "access_token": "%s", 35 "token_type": "bearer", 36 "refresh_token": "%s", 37 "expires_in": 599, 38 "scope": "cloud_controller.read password.write cloud_controller.write openid uaa.user", 39 "jti": "4150c08afa2848278e5ad57201024e32" 40 }`, returnedAccessToken, returnedRefreshToken) 41 42 server.AppendHandlers( 43 CombineHandlers( 44 VerifyRequest(http.MethodPost, "/oauth/token"), 45 VerifyHeaderKV("Accept", "application/json"), 46 VerifyHeaderKV("Content-Type", "application/x-www-form-urlencoded"), 47 VerifyBody([]byte(fmt.Sprintf("client_id=client-id&client_secret=client-secret&grant_type=refresh_token&refresh_token=%s", sentRefreshToken))), 48 RespondWith(http.StatusOK, response), 49 )) 50 }) 51 52 It("refreshes the tokens", func() { 53 token, err := client.RefreshAccessToken(sentRefreshToken) 54 Expect(err).ToNot(HaveOccurred()) 55 Expect(token).To(Equal(RefreshToken{ 56 AccessToken: returnedAccessToken, 57 RefreshToken: returnedRefreshToken, 58 Type: "bearer", 59 })) 60 61 Expect(server.ReceivedRequests()).To(HaveLen(1)) 62 }) 63 }) 64 })