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
			| 
											12 years ago
										 | <?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() {}
 | ||
|  | }
 |