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  })