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);
 | 
						|
    }
 | 
						|
}
 |