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.1 KiB
						
					
					
				
			
		
		
	
	
							90 lines
						
					
					
						
							2.1 KiB
						
					
					
				| <?php | |
|  | |
| namespace yiiunit\extensions\authclient\provider; | |
|  | |
| use yii\authclient\provider\Collection; | |
| use yii\authclient\provider\ProviderInterface; | |
| use yii\authclient\provider\ProviderTrait; | |
| use yii\base\Object; | |
| use yiiunit\extensions\authclient\TestCase; | |
|  | |
| class CollectionTest extends TestCase | |
| { | |
| 	// Tests : | |
|  | |
| 	public function testSetGet() | |
| 	{ | |
| 		$collection = new Collection(); | |
|  | |
| 		$providers = [ | |
| 			'testProvider1' => new TestProvider(), | |
| 			'testProvider2' => new TestProvider(), | |
| 		]; | |
| 		$collection->setProviders($providers); | |
| 		$this->assertEquals($providers, $collection->getProviders(), 'Unable to setup providers!'); | |
| 	} | |
|  | |
| 	/** | |
| 	 * @depends testSetGet | |
| 	 */ | |
| 	public function testGetProviderById() | |
| 	{ | |
| 		$collection = new Collection(); | |
|  | |
| 		$providerId = 'testProviderId'; | |
| 		$provider = new TestProvider(); | |
| 		$providers = [ | |
| 			$providerId => $provider | |
| 		]; | |
| 		$collection->setProviders($providers); | |
|  | |
| 		$this->assertEquals($provider, $collection->getProvider($providerId), 'Unable to get provider by id!'); | |
| 	} | |
|  | |
| 	/** | |
| 	 * @depends testGetProviderById | |
| 	 */ | |
| 	public function testCreateProvider() | |
| 	{ | |
| 		$collection = new Collection(); | |
|  | |
| 		$providerId = 'testProviderId'; | |
| 		$providerClassName = TestProvider::className(); | |
| 		$providers = [ | |
| 			$providerId => [ | |
| 				'class' => $providerClassName | |
| 			] | |
| 		]; | |
| 		$collection->setProviders($providers); | |
|  | |
| 		$provider = $collection->getProvider($providerId); | |
| 		$this->assertTrue(is_object($provider), 'Unable to create provider by config!'); | |
| 		$this->assertTrue(is_a($provider, $providerClassName), 'Provider has wrong class name!'); | |
| 	} | |
|  | |
| 	/** | |
| 	 * @depends testSetGet | |
| 	 */ | |
| 	public function testHasProvider() | |
| 	{ | |
| 		$collection = new Collection(); | |
|  | |
| 		$providerName = 'testProviderName'; | |
| 		$providers = [ | |
| 			$providerName => [ | |
| 				'class' => 'TestProvider1' | |
| 			], | |
| 		]; | |
| 		$collection->setProviders($providers); | |
|  | |
| 		$this->assertTrue($collection->hasProvider($providerName), 'Existing provider check fails!'); | |
| 		$this->assertFalse($collection->hasProvider('unExistingProviderName'), 'Not existing provider check fails!'); | |
| 	} | |
| } | |
|  | |
| class TestProvider extends Object implements ProviderInterface | |
| { | |
| 	use ProviderTrait; | |
|  | |
| 	public function authenticate() {} | |
| } |