/**
  * @param string|null $accessToken
  * @return Client
  */
 public function createClient($accessToken = null)
 {
     $client = new Client();
     if ($this->token instanceof OAuthToken && null === $accessToken) {
         $client->authenticate($this->token->getAccessToken(), null, Client::AUTH_HTTP_TOKEN);
     } elseif (null !== $accessToken) {
         $client->authenticate($accessToken, null, Client::AUTH_HTTP_TOKEN);
     }
     return $client;
 }
 public function testOAuth()
 {
     $accessToken = array('access_token' => '986d3212c8aca7122993035d82742270f168db5e');
     $token = new OAuthToken($accessToken, array('ROLE_ADMIN'));
     $this->assertEquals('986d3212c8aca7122993035d82742270f168db5e', $token->getAccessToken());
     $user = new OAuthUser('anna_admin');
     $this->assertEquals('anna_admin', $user->getUsername());
     $token->setUser($user);
     $this->assertSame('ROLE_ADMIN', current($token->getRoles()[0]));
 }
 public function testGets()
 {
     $expectedToken = array('access_token' => 'access_token', 'refresh_token' => 'refresh_token', 'expires_in' => '666');
     $token = new OAuthToken($expectedToken, array('ROLE_TEST'));
     $token->setResourceOwnerName('github');
     $this->assertEquals($expectedToken, $token->getRawToken());
     $this->assertEquals($expectedToken['access_token'], $token->getAccessToken());
     $this->assertEquals($expectedToken['refresh_token'], $token->getRefreshToken());
     $this->assertEquals($expectedToken['expires_in'], $token->getExpiresIn());
     $this->assertEquals('github', $token->getResourceOwnerName());
 }
 /**
  * {@inheritDoc}
  */
 public function authenticate(TokenInterface $token)
 {
     $resourceOwner = $this->resourceOwnerMap->getResourceOwnerByName($token->getResourceOwnerName());
     $userResponse = $resourceOwner->getUserInformation($token->getAccessToken());
     try {
         $user = $this->userProvider->loadUserByOAuthUserResponse($userResponse);
     } catch (OAuthAwareExceptionInterface $e) {
         $e->setAccessToken($token->getAccessToken());
         $e->setResourceOwnerName($token->getResourceOwnerName());
         throw $e;
     }
     $token = new OAuthToken($token->getAccessToken(), $user->getRoles());
     $token->setResourceOwnerName($resourceOwner->getName());
     $token->setUser($user);
     $token->setAuthenticated(true);
     return $token;
 }
 public function testGetAccessToken()
 {
     $this->assertEquals('access_token', $this->token->getAccessToken());
 }
 /**
  * {@inheritdoc}
  */
 public function getAccessToken()
 {
     return $this->oAuthToken->getAccessToken();
 }