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

160 lines
6.2 KiB
PHP

<?php
namespace OAuthTest\Unit\OAuth2\Service;
use OAuth\OAuth2\Service\SoundCloud;
use OAuth\Common\Token\TokenInterface;
class SoundCloudTest extends \PHPUnit_Framework_TestCase
{
/**
* @covers OAuth\OAuth2\Service\SoundCloud::__construct
*/
public function testConstructCorrectInterfaceWithoutCustomUri()
{
$service = new SoundCloud(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'),
$this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface')
);
$this->assertInstanceOf('\\OAuth\\OAuth2\\Service\\ServiceInterface', $service);
}
/**
* @covers OAuth\OAuth2\Service\SoundCloud::__construct
*/
public function testConstructCorrectInstanceWithoutCustomUri()
{
$service = new SoundCloud(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'),
$this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface')
);
$this->assertInstanceOf('\\OAuth\\OAuth2\\Service\\AbstractService', $service);
}
/**
* @covers OAuth\OAuth2\Service\SoundCloud::__construct
*/
public function testConstructCorrectInstanceWithCustomUri()
{
$service = new SoundCloud(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'),
$this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'),
array(),
$this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface')
);
$this->assertInstanceOf('\\OAuth\\OAuth2\\Service\\AbstractService', $service);
}
/**
* @covers OAuth\OAuth2\Service\SoundCloud::__construct
* @covers OAuth\OAuth2\Service\SoundCloud::getAuthorizationEndpoint
*/
public function testGetAuthorizationEndpoint()
{
$service = new SoundCloud(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'),
$this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface')
);
$this->assertSame('https://soundcloud.com/connect', $service->getAuthorizationEndpoint()->getAbsoluteUri());
}
/**
* @covers OAuth\OAuth2\Service\SoundCloud::__construct
* @covers OAuth\OAuth2\Service\SoundCloud::getAccessTokenEndpoint
*/
public function testGetAccessTokenEndpoint()
{
$service = new SoundCloud(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'),
$this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface')
);
$this->assertSame('https://api.soundcloud.com/oauth2/token', $service->getAccessTokenEndpoint()->getAbsoluteUri());
}
/**
* @covers OAuth\OAuth2\Service\SoundCloud::__construct
* @covers OAuth\OAuth2\Service\SoundCloud::parseAccessTokenResponse
*/
public function testParseAccessTokenResponseThrowsExceptionOnNulledResponse()
{
$client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface');
$client->expects($this->once())->method('retrieveResponse')->will($this->returnValue(null));
$service = new SoundCloud(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$client,
$this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface')
);
$this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException');
$service->requestAccessToken('foo');
}
/**
* @covers OAuth\OAuth2\Service\SoundCloud::__construct
* @covers OAuth\OAuth2\Service\SoundCloud::parseAccessTokenResponse
*/
public function testParseAccessTokenResponseThrowsExceptionOnError()
{
$client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface');
$client->expects($this->once())->method('retrieveResponse')->will($this->returnValue('error=some_error'));
$service = new SoundCloud(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$client,
$this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface')
);
$this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException');
$service->requestAccessToken('foo');
}
/**
* @covers OAuth\OAuth2\Service\SoundCloud::__construct
* @covers OAuth\OAuth2\Service\SoundCloud::parseAccessTokenResponse
*/
public function testParseAccessTokenResponseValidWithoutRefreshToken()
{
$client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface');
$client->expects($this->once())->method('retrieveResponse')->will($this->returnValue('{"access_token":"foo","expires_in":"bar"}'));
$service = new SoundCloud(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$client,
$this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface')
);
$this->assertInstanceOf('\\OAuth\\OAuth2\\Token\\StdOAuth2Token', $service->requestAccessToken('foo'));
}
/**
* @covers OAuth\OAuth2\Service\SoundCloud::__construct
* @covers OAuth\OAuth2\Service\SoundCloud::parseAccessTokenResponse
*/
public function testParseAccessTokenResponseValidWithRefreshToken()
{
$client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface');
$client->expects($this->once())->method('retrieveResponse')->will($this->returnValue('{"access_token":"foo","expires_in":"bar","refresh_token":"baz"}'));
$service = new SoundCloud(
$this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'),
$client,
$this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface')
);
$this->assertInstanceOf('\\OAuth\\OAuth2\\Token\\StdOAuth2Token', $service->requestAccessToken('foo'));
}
}