Files
Kanboard-Prod/vendor/lusitanian/oauth/tests/Unit/OAuth1/Service/XingTest.php
2014-11-06 06:41:47 -05:00

240 lines
7.5 KiB
PHP

<?php
namespace OAuthTest\Unit\OAuth1\Service;
use OAuth\OAuth1\Service\Xing;
class XingTest extends \PHPUnit_Framework_TestCase
{
private $client;
private $storage;
private $xing;
protected function setUp()
{
parent::setUp();
$this->client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface');
$this->storage = $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface');
$this->xing = new Xing(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$this->client,
$this->storage,
$this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface')
);
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
*/
public function testConstructCorrectInterfaceWithoutCustomUri()
{
$this->assertInstanceOf(
'\\OAuth\\OAuth1\\Service\\ServiceInterface', $this->xing
);
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
*/
public function testConstructCorrectInstanceWithoutCustomUri()
{
$this->assertInstanceOf(
'\\OAuth\\OAuth1\\Service\\AbstractService', $this->xing
);
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
*/
public function testConstructCorrectInstanceWithCustomUri()
{
$service = new Xing(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$this->client,
$this->storage,
$this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface'),
$this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface')
);
$this->assertInstanceOf('\\OAuth\\OAuth1\\Service\\AbstractService', $service);
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getRequestTokenEndpoint
*/
public function testGetRequestTokenEndpoint()
{
$this->assertSame(
'https://api.xing.com/v1/request_token',
$this->xing->getRequestTokenEndpoint()->getAbsoluteUri()
);
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getAuthorizationEndpoint
*/
public function testGetAuthorizationEndpoint()
{
$this->assertSame(
'https://api.xing.com/v1/authorize',
$this->xing->getAuthorizationEndpoint()->getAbsoluteUri()
);
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getAccessTokenEndpoint
*/
public function testGetAccessTokenEndpoint()
{
$this->assertSame(
'https://api.xing.com/v1/access_token',
$this->xing->getAccessTokenEndpoint()->getAbsoluteUri()
);
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getRequestTokenEndpoint
* @covers OAuth\OAuth1\Service\Xing::parseRequestTokenResponse
*/
public function testParseRequestTokenResponseThrowsExceptionOnNulledResponse()
{
$this->client
->expects($this->once())
->method('retrieveResponse')
->will($this->returnValue(null));
$this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException');
$this->xing->requestRequestToken();
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getRequestTokenEndpoint
* @covers OAuth\OAuth1\Service\Xing::parseRequestTokenResponse
*/
public function testParseRequestTokenResponseThrowsExceptionOnResponseNotAnArray()
{
$this->client
->expects($this->once())
->method('retrieveResponse')
->will($this->returnValue('notanarray'));
$this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException');
$this->xing->requestRequestToken();
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getRequestTokenEndpoint
* @covers OAuth\OAuth1\Service\Xing::parseRequestTokenResponse
*/
public function testParseRequestTokenResponseThrowsExceptionOnResponseCallbackNotSet()
{
$this->client
->expects($this->once())
->method('retrieveResponse')
->will($this->returnValue('foo=bar'));
$this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException');
$this->xing->requestRequestToken();
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getRequestTokenEndpoint
* @covers OAuth\OAuth1\Service\Xing::parseRequestTokenResponse
*/
public function testParseRequestTokenResponseThrowsExceptionOnResponseCallbackNotTrue()
{
$this->client
->expects($this->once())
->method('retrieveResponse')
->will($this->returnValue('oauth_callback_confirmed=false'));
$this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException');
$this->xing->requestRequestToken();
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getRequestTokenEndpoint
* @covers OAuth\OAuth1\Service\Xing::parseRequestTokenResponse
* @covers OAuth\OAuth1\Service\Xing::parseAccessTokenResponse
*/
public function testParseRequestTokenResponseValid()
{
$this->client
->expects($this->once())
->method('retrieveResponse')
->will($this->returnValue(
'oauth_callback_confirmed=true&oauth_token=foo&oauth_token_secret=bar'
));
$this->assertInstanceOf(
'\\OAuth\\OAuth1\\Token\\StdOAuth1Token',
$this->xing->requestRequestToken()
);
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getRequestTokenEndpoint
* @covers OAuth\OAuth1\Service\Xing::parseAccessTokenResponse
*/
public function testParseAccessTokenResponseThrowsExceptionOnError()
{
$this->client
->expects($this->once())
->method('retrieveResponse')
->will($this->returnValue('error=bar'));
$token = $this->getMock('\\OAuth\\OAuth1\\Token\\TokenInterface');
$this->storage
->expects($this->any())
->method('retrieveAccessToken')
->will($this->returnValue($token));
$this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException');
$this->xing->requestAccessToken('foo', 'bar', $token);
}
/**
* @covers OAuth\OAuth1\Service\Xing::__construct
* @covers OAuth\OAuth1\Service\Xing::getRequestTokenEndpoint
* @covers OAuth\OAuth1\Service\Xing::parseAccessTokenResponse
*/
public function testParseAccessTokenResponseValid()
{
$this->client
->expects($this->once())
->method('retrieveResponse')
->will($this->returnValue('oauth_token=foo&oauth_token_secret=bar'));
$token = $this->getMock('\\OAuth\\OAuth1\\Token\\TokenInterface');
$this->storage
->expects($this->any())
->method('retrieveAccessToken')
->will($this->returnValue($token));
$this->assertInstanceOf(
'\\OAuth\\OAuth1\\Token\\StdOAuth1Token',
$this->xing->requestAccessToken('foo', 'bar', $token)
);
}
}