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