You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.0 KiB
90 lines
2.0 KiB
<?php |
|
|
|
namespace yiiunit\extensions\authclient; |
|
|
|
use yii\authclient\Collection; |
|
use yii\authclient\ClientInterface; |
|
use yii\authclient\ClientTrait; |
|
use yii\base\Object; |
|
use yiiunit\extensions\authclient\TestCase; |
|
|
|
class CollectionTest extends TestCase |
|
{ |
|
// Tests : |
|
|
|
public function testSetGet() |
|
{ |
|
$collection = new Collection(); |
|
|
|
$clients = [ |
|
'testClient1' => new TestClient(), |
|
'testClient2' => new TestClient(), |
|
]; |
|
$collection->setClients($clients); |
|
$this->assertEquals($clients, $collection->getClients(), 'Unable to setup clients!'); |
|
} |
|
|
|
/** |
|
* @depends testSetGet |
|
*/ |
|
public function testGetProviderById() |
|
{ |
|
$collection = new Collection(); |
|
|
|
$clientId = 'testClientId'; |
|
$client = new TestClient(); |
|
$clients = [ |
|
$clientId => $client |
|
]; |
|
$collection->setClients($clients); |
|
|
|
$this->assertEquals($client, $collection->getClient($clientId), 'Unable to get client by id!'); |
|
} |
|
|
|
/** |
|
* @depends testGetProviderById |
|
*/ |
|
public function testCreateProvider() |
|
{ |
|
$collection = new Collection(); |
|
|
|
$clientId = 'testClientId'; |
|
$clientClassName = TestClient::className(); |
|
$clients = [ |
|
$clientId => [ |
|
'class' => $clientClassName |
|
] |
|
]; |
|
$collection->setClients($clients); |
|
|
|
$provider = $collection->getClient($clientId); |
|
$this->assertTrue(is_object($provider), 'Unable to create client by config!'); |
|
$this->assertTrue(is_a($provider, $clientClassName), 'Client has wrong class name!'); |
|
} |
|
|
|
/** |
|
* @depends testSetGet |
|
*/ |
|
public function testHasProvider() |
|
{ |
|
$collection = new Collection(); |
|
|
|
$clientName = 'testClientName'; |
|
$clients = [ |
|
$clientName => [ |
|
'class' => 'TestClient1' |
|
], |
|
]; |
|
$collection->setClients($clients); |
|
|
|
$this->assertTrue($collection->hasClient($clientName), 'Existing client check fails!'); |
|
$this->assertFalse($collection->hasClient('unExistingClientName'), 'Not existing client check fails!'); |
|
} |
|
} |
|
|
|
class TestClient extends Object implements ClientInterface |
|
{ |
|
use ClientTrait; |
|
|
|
public function authenticate() {} |
|
} |