59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php declare(strict_types=1);
 | |
| 
 | |
| /**
 | |
|  * @license Apache 2.0
 | |
|  */
 | |
| 
 | |
| namespace OpenApi\Tests\Annotations;
 | |
| 
 | |
| use OpenApi\Annotations as OA;
 | |
| use OpenApi\Tests\OpenApiTestCase;
 | |
| 
 | |
| class OperationTest extends OpenApiTestCase
 | |
| {
 | |
|     public function securityData()
 | |
|     {
 | |
|         return [
 | |
|             'empty' => [
 | |
|                 [],
 | |
|                 '/** @OA\Get(security={ }) */',
 | |
|                 '{"security":[]}',
 | |
|             ],
 | |
|             'basic' => [
 | |
|                 [['api_key' => []]],
 | |
|                 '/** @OA\Get(security={ {"api_key":{}} }) */',
 | |
|                 '{"security":[{"api_key":[]}]}',
 | |
|             ],
 | |
|             'optional' => [
 | |
|                 [[]],
 | |
|                 '/** @OA\Get(security={ {} }) */',
 | |
|                 '{"security":[{}]}',
 | |
|             ],
 | |
|             'optional-oauth2' => [
 | |
|                 [[], ['petstore_auth' => ['write:pets', 'read:pets']]],
 | |
|                 '/** @OA\Get(security={ {}, {"petstore_auth":{"write:pets","read:pets"}} }) */',
 | |
|                 '{"security":[{},{"petstore_auth":["write:pets","read:pets"]}]}',
 | |
|             ],
 | |
|         ];
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @dataProvider securityData
 | |
|      */
 | |
|     public function testSecuritySerialization($security, $dockBlock, $expected)
 | |
|     {
 | |
|         // test with Get implementation...
 | |
|         $operation = new OA\Get([
 | |
|             'security' => $security,
 | |
|         ]);
 | |
|         $flags = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
 | |
|         $json = $operation->toJson($flags);
 | |
|         $this->assertEquals($expected, $json);
 | |
| 
 | |
|         $analysis = $this->analysisFromDockBlock($dockBlock);
 | |
|         $this->assertCount(1, $analysis);
 | |
|         $json = $analysis[0]->toJson($flags);
 | |
|         $this->assertEquals($expected, $json);
 | |
|     }
 | |
| }
 |