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