mirror of
https://github.com/elyby/accounts.git
synced 2025-05-31 14:11:46 +05:30
Add tests for the legacy tokens
This commit is contained in:
@ -3,40 +3,30 @@ declare(strict_types=1);
|
||||
|
||||
namespace api\tests\unit\components\User;
|
||||
|
||||
use api\components\OAuth2\Component;
|
||||
use api\components\OAuth2\Entities\AccessTokenEntity;
|
||||
use api\components\User\IdentityFactory;
|
||||
use api\components\User\JwtIdentity;
|
||||
use api\components\User\LegacyOAuth2Identity;
|
||||
use api\tests\unit\TestCase;
|
||||
use Carbon\Carbon;
|
||||
use League\OAuth2\Server\AbstractServer;
|
||||
use League\OAuth2\Server\Storage\AccessTokenInterface;
|
||||
use Yii;
|
||||
use common\tests\fixtures;
|
||||
use yii\web\UnauthorizedHttpException;
|
||||
|
||||
class IdentityFactoryTest extends TestCase {
|
||||
|
||||
public function _fixtures(): array {
|
||||
return [
|
||||
fixtures\LegacyOauthAccessTokenFixture::class,
|
||||
fixtures\LegacyOauthAccessTokenScopeFixture::class,
|
||||
];
|
||||
}
|
||||
|
||||
public function testFindIdentityByAccessToken() {
|
||||
// Find identity by jwt token
|
||||
// Find identity by the JWT
|
||||
$identity = IdentityFactory::findIdentityByAccessToken('eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJlbHktc2NvcGVzIjoiYWNjb3VudHNfd2ViX3VzZXIiLCJpYXQiOjE1NjQ2MTA1NDIsImV4cCI6MTU2NDYxNDE0Miwic3ViIjoiZWx5fDEifQ.4Oidvuo4spvUf9hkpHR72eeqZUh2Zbxh_L8Od3vcgTj--0iOrcOEp6zwmEW6vF7BTHtjz2b3mXce61bqsCjXjQ');
|
||||
$this->assertInstanceOf(JwtIdentity::class, $identity);
|
||||
|
||||
// Find identity by oauth2 token
|
||||
$accessToken = new AccessTokenEntity(mock(AbstractServer::class));
|
||||
$accessToken->setExpireTime(time() + 3600);
|
||||
$accessToken->setId('mock-token');
|
||||
|
||||
/** @var AccessTokenInterface|\Mockery\MockInterface $accessTokensStorage */
|
||||
$accessTokensStorage = mock(AccessTokenInterface::class);
|
||||
$accessTokensStorage->shouldReceive('get')->with('mock-token')->andReturn($accessToken);
|
||||
|
||||
/** @var Component|\Mockery\MockInterface $component */
|
||||
$component = mock(Component::class);
|
||||
$component->shouldReceive('getAccessTokenStorage')->andReturn($accessTokensStorage);
|
||||
Yii::$app->set('oauth', $component);
|
||||
|
||||
$identity = IdentityFactory::findIdentityByAccessToken('mock-token');
|
||||
// Find identity by the legacy OAuth2 token
|
||||
$identity = IdentityFactory::findIdentityByAccessToken('ZZQP8sS9urzriy8N9h6FwFNMOH3PkZ5T5PLqS6SX');
|
||||
$this->assertInstanceOf(LegacyOAuth2Identity::class, $identity);
|
||||
}
|
||||
|
||||
|
@ -3,52 +3,37 @@ declare(strict_types=1);
|
||||
|
||||
namespace api\tests\unit\components\User;
|
||||
|
||||
use api\components\OAuth2\Component;
|
||||
use api\components\OAuth2\Entities\AccessTokenEntity;
|
||||
use api\components\User\LegacyOAuth2Identity;
|
||||
use api\tests\unit\TestCase;
|
||||
use Yii;
|
||||
use common\tests\fixtures;
|
||||
use yii\web\UnauthorizedHttpException;
|
||||
|
||||
class LegacyOAuth2IdentityTest extends TestCase {
|
||||
|
||||
public function testFindIdentityByAccessToken() {
|
||||
$accessToken = new AccessTokenEntity(mock(AbstractServer::class));
|
||||
$accessToken->setExpireTime(time() + 3600);
|
||||
$accessToken->setId('mock-token');
|
||||
$this->mockFoundedAccessToken($accessToken);
|
||||
public function _fixtures(): array {
|
||||
return [
|
||||
fixtures\LegacyOauthAccessTokenFixture::class,
|
||||
fixtures\LegacyOauthAccessTokenScopeFixture::class,
|
||||
];
|
||||
}
|
||||
|
||||
$identity = LegacyOAuth2Identity::findIdentityByAccessToken('mock-token');
|
||||
$this->assertSame('mock-token', $identity->getId());
|
||||
public function testFindIdentityByAccessToken() {
|
||||
$identity = LegacyOAuth2Identity::findIdentityByAccessToken('ZZQP8sS9urzriy8N9h6FwFNMOH3PkZ5T5PLqS6SX');
|
||||
$this->assertSame('ZZQP8sS9urzriy8N9h6FwFNMOH3PkZ5T5PLqS6SX', $identity->getId());
|
||||
}
|
||||
|
||||
public function testFindIdentityByAccessTokenWithNonExistsToken() {
|
||||
$this->expectException(UnauthorizedHttpException::class);
|
||||
$this->expectExceptionMessage('Incorrect token');
|
||||
|
||||
LegacyOAuth2Identity::findIdentityByAccessToken('not exists token');
|
||||
LegacyOAuth2Identity::findIdentityByAccessToken('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
|
||||
}
|
||||
|
||||
public function testFindIdentityByAccessTokenWithExpiredToken() {
|
||||
$this->expectException(UnauthorizedHttpException::class);
|
||||
$this->expectExceptionMessage('Token expired');
|
||||
|
||||
$accessToken = new AccessTokenEntity(mock(AbstractServer::class));
|
||||
$accessToken->setExpireTime(time() - 3600);
|
||||
$this->mockFoundedAccessToken($accessToken);
|
||||
|
||||
LegacyOAuth2Identity::findIdentityByAccessToken('mock-token');
|
||||
}
|
||||
|
||||
private function mockFoundedAccessToken(AccessTokenEntity $accessToken) {
|
||||
/** @var AccessTokenInterface|\Mockery\MockInterface $accessTokensStorage */
|
||||
$accessTokensStorage = mock(AccessTokenInterface::class);
|
||||
$accessTokensStorage->shouldReceive('get')->with('mock-token')->andReturn($accessToken);
|
||||
|
||||
/** @var Component|\Mockery\MockInterface $component */
|
||||
$component = mock(Component::class);
|
||||
$component->shouldReceive('getAccessTokenStorage')->andReturn($accessTokensStorage);
|
||||
Yii::$app->set('oauth', $component);
|
||||
LegacyOAuth2Identity::findIdentityByAccessToken('rc0sOF1SLdOxuD3bJcCQENmGTeYrGgy12qJScMx4');
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user