public function testOAuthAwareExceptionGetsInfo()
 {
     $expectedToken = array('access_token' => 'access_token', 'refresh_token' => 'refresh_token', 'expires_in' => '666', 'oauth_token_secret' => 'secret');
     $oauthTokenMock = $this->getOAuthTokenMock();
     $oauthTokenMock->expects($this->exactly(3))->method('getResourceOwnerName')->will($this->returnValue('github'));
     $oauthTokenMock->expects($this->exactly(2))->method('getRawToken')->will($this->returnValue($expectedToken));
     $oauthTokenMock->expects($this->once())->method('getAccessToken')->will($this->returnValue($expectedToken['access_token']));
     $oauthTokenMock->expects($this->once())->method('getRefreshToken')->will($this->returnValue($expectedToken['refresh_token']));
     $oauthTokenMock->expects($this->once())->method('getExpiresIn')->will($this->returnValue($expectedToken['expires_in']));
     $oauthTokenMock->expects($this->once())->method('getTokenSecret')->will($this->returnValue($expectedToken['oauth_token_secret']));
     $resourceOwnerMock = $this->getResourceOwnerMock();
     $resourceOwnerMock->expects($this->once())->method('getUserInformation')->with($expectedToken)->will($this->returnValue($this->getUserResponseMock()));
     $resourceOwnerMapMock = $this->getResourceOwnerMapMock();
     $resourceOwnerMapMock->expects($this->once())->method('getResourceOwnerByName')->with($this->equalTo('github'))->will($this->returnValue($resourceOwnerMock));
     $resourceOwnerMapMock->expects($this->once())->method('hasResourceOwnerByName')->with($this->equalTo('github'))->will($this->returnValue(true));
     $userProviderMock = $this->getOAuthAwareUserProviderMock();
     $userProviderMock->expects($this->once())->method('loadUserByOAuthUserResponse')->will($this->throwException(new OAuthAwareException()));
     $userCheckerMock = $this->getUserCheckerMock();
     $oauthProvider = new OAuthProvider($userProviderMock, $resourceOwnerMapMock, $userCheckerMock);
     try {
         $oauthProvider->authenticate($oauthTokenMock);
         $this->assertTrue(false, "Exception was not thrown.");
     } catch (OAuthAwareException $e) {
         $this->assertTrue(true, "Exception was thrown.");
         $this->assertInstanceOf('HWI\\Bundle\\OAuthBundle\\Security\\Core\\Exception\\OAuthAwareExceptionInterface', $e);
         $this->assertEquals('github', $e->getResourceOwnerName());
         $this->assertEquals($expectedToken['access_token'], $e->getAccessToken());
         $this->assertEquals($expectedToken['refresh_token'], $e->getRefreshToken());
         $this->assertEquals($expectedToken['expires_in'], $e->getExpiresIn());
         $this->assertEquals($expectedToken['oauth_token_secret'], $e->getTokenSecret());
         $this->assertEquals($expectedToken, $e->getRawToken());
     }
 }
 /**
  * @param OAuthAwareUserProviderInterface $userProvider User provider
  * @param ResourceOwnerMap $resourceOwnerMap Resource owner map
  * @param UserCheckerInterface $userChecker User checker
  */
 public function __construct(OAuthAwareUserProviderInterface $userProvider, ResourceOwnerMap $resourceOwnerMap, UserCheckerInterface $userChecker)
 {
     parent::__construct($userProvider, $resourceOwnerMap, $userChecker);
     $this->userProvider = $userProvider;
     $this->resourceOwnerMap = $resourceOwnerMap;
     $this->userChecker = $userChecker;
 }
 public function testOAuthAwareExceptionGetsInfo()
 {
     $oauthTokenMock = $this->getOAuthTokenMock();
     $oauthTokenMock->expects($this->exactly(2))->method('getResourceOwnerName')->will($this->returnValue('github'));
     $oauthTokenMock->expects($this->exactly(2))->method('getCredentials')->will($this->returnValue('creds'));
     $resourceOwnerMock = $this->getResourceOwnerMock();
     $resourceOwnerMock->expects($this->once())->method('getUserInformation')->with($this->equalTo('creds'))->will($this->returnValue($this->getUserResponseMock()));
     $resourceOwnerMapMock = $this->getResourceOwnerMapMock();
     $resourceOwnerMapMock->expects($this->once())->method('getResourceOwnerByName')->with($this->equalTo('github'))->will($this->returnValue($resourceOwnerMock));
     $userProviderMock = $this->getOAuthAwareUserProviderMock();
     $userProviderMock->expects($this->once())->method('loadUserByOAuthUserResponse')->will($this->throwException(new OAuthAwareException()));
     $oauthProvider = new OAuthProvider($userProviderMock, $resourceOwnerMapMock);
     try {
         $token = $oauthProvider->authenticate($oauthTokenMock);
         $this->assertTrue(false, "Exception was not thrown.");
     } catch (OAuthAwareException $e) {
         $this->assertTrue(true, "Exception was thrown.");
         $this->assertInstanceOf('HWI\\Bundle\\OAuthBundle\\Security\\Core\\Exception\\OAuthAwareExceptionInterface', $e);
         $this->assertEquals('github', $e->getResourceOwnerName());
         $this->assertEquals('creds', $e->getAccessToken());
     }
 }