public function testCalculateExpiresIn()
 {
     $expiresAt = new DateTime();
     $expiresAt->add(new DateInterval('PT60S'));
     $accessToken = new AccessToken();
     $accessToken->setExpiresAt($expiresAt);
     $this->assertFalse($accessToken->isExpired());
     $this->assertEquals(60, $accessToken->getExpiresIn());
 }
 /**
  * Prepare the actual HttpResponse for the token
  *
  * @param  AccessToken       $accessToken
  * @param  RefreshToken|null $refreshToken
  * @param  bool              $useRefreshTokenScopes
  * @return ResponseInterface
  */
 protected function prepareTokenResponse(AccessToken $accessToken, RefreshToken $refreshToken = null, $useRefreshTokenScopes = false)
 {
     $owner = $accessToken->getOwner();
     $scopes = $useRefreshTokenScopes ? $refreshToken->getScopes() : $accessToken->getScopes();
     $responseBody = ['access_token' => $accessToken->getToken(), 'token_type' => 'Bearer', 'expires_in' => $accessToken->getExpiresIn(), 'scope' => implode(' ', $scopes), 'owner_id' => $owner ? $owner->getTokenOwnerId() : null];
     if (null !== $refreshToken) {
         $responseBody['refresh_token'] = $refreshToken->getToken();
     }
     return new Response\JsonResponse(array_filter($responseBody));
 }