/**
  * Get a new access token.
  *
  * @return AccessToken|null
  */
 protected function acquireAccessToken()
 {
     $accessToken = null;
     if ($this->refreshTokenGrantType) {
         // Get an access token using the stored refresh token.
         if ($this->refreshToken) {
             $this->refreshTokenGrantType->setRefreshToken($this->refreshToken->getToken());
         }
         if ($this->refreshTokenGrantType->hasRefreshToken()) {
             $accessToken = $this->refreshTokenGrantType->getToken();
         }
     }
     if (!$accessToken && $this->grantType) {
         // Get a new access token.
         $accessToken = $this->grantType->getToken();
     }
     return $accessToken ?: null;
 }
 public function testAccessTokenGetters()
 {
     $data = ['access_token' => 'testToken', 'token_type' => 'bearer', 'expires_in' => 300, 'scope' => 'profile administration', 'refresh_token' => 'testRefreshToken'];
     $token = new AccessToken($data['access_token'], $data['token_type'], $data);
     $this->assertEquals($data['access_token'], $token->getToken());
     $this->assertEquals($data['token_type'], $token->getType());
     $this->assertEquals($data['scope'], $token->getScope());
     $this->assertGreaterThan(time(), $token->getExpires()->getTimestamp());
     $this->assertFalse($token->isExpired());
     $this->assertEquals($data, $token->getData());
     $this->assertEquals('refresh_token', $token->getRefreshToken()->getType());
     $this->assertEquals($data['refresh_token'], $token->getRefreshToken()->getToken());
 }
 /**
  * Save an access token to the session.
  *
  * @param AccessToken $token
  */
 protected function addTokenToSession(AccessToken $token)
 {
     $this->session->set('accessToken', $token->getToken());
     $this->session->set('tokenType', $token->getType());
     if ($token->getExpires()) {
         $this->session->set('expires', $token->getExpires()->getTimestamp());
     }
     if ($token->getRefreshToken()) {
         $this->session->set('refreshToken', $token->getRefreshToken()->getToken());
     }
 }