github.com/cloudfoundry-attic/cli-with-i18n@v6.32.1-0.20171002233121-7401370d3b85+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 client *Client 16 17 BeforeEach(func() { 18 client = NewTestUAAClientAndStore() 19 }) 20 21 Describe("RefreshAccessToken", func() { 22 var ( 23 returnedAccessToken string 24 sentRefreshToken string 25 returnedRefreshToken string 26 ) 27 28 BeforeEach(func() { 29 returnedAccessToken = "I-ACCESS-TOKEN" 30 sentRefreshToken = "I-R-REFRESH-TOKEN" 31 returnedRefreshToken = "I-R-NEW-REFRESH-TOKEN" 32 response := fmt.Sprintf(`{ 33 "access_token": "%s", 34 "token_type": "bearer", 35 "refresh_token": "%s", 36 "expires_in": 599, 37 "scope": "cloud_controller.read password.write cloud_controller.write openid uaa.user", 38 "jti": "4150c08afa2848278e5ad57201024e32" 39 }`, returnedAccessToken, returnedRefreshToken) 40 41 server.AppendHandlers( 42 CombineHandlers( 43 verifyRequestHost(TestAuthorizationResource), 44 VerifyRequest(http.MethodPost, "/oauth/token"), 45 VerifyHeaderKV("Accept", "application/json"), 46 VerifyHeaderKV("Content-Type", "application/x-www-form-urlencoded"), 47 VerifyHeaderKV("Authorization", "Basic Y2xpZW50LWlkOmNsaWVudC1zZWNyZXQ="), 48 VerifyBody([]byte(fmt.Sprintf("client_id=client-id&client_secret=client-secret&grant_type=refresh_token&refresh_token=%s", sentRefreshToken))), 49 RespondWith(http.StatusOK, response), 50 )) 51 }) 52 53 It("refreshes the tokens", func() { 54 token, err := client.RefreshAccessToken(sentRefreshToken) 55 Expect(err).ToNot(HaveOccurred()) 56 Expect(token).To(Equal(RefreshedTokens{ 57 AccessToken: returnedAccessToken, 58 RefreshToken: returnedRefreshToken, 59 Type: "bearer", 60 })) 61 62 Expect(server.ReceivedRequests()).To(HaveLen(2)) 63 }) 64 }) 65 })