41 lines
1.0 KiB
PHP
41 lines
1.0 KiB
PHP
|
<?php declare(strict_types=1);
|
||
|
|
||
|
/**
|
||
|
* @license Apache 2.0
|
||
|
*/
|
||
|
|
||
|
namespace OpenApi\Tests;
|
||
|
|
||
|
use OpenApi\Analysis;
|
||
|
use OpenApi\Annotations\Info;
|
||
|
use OpenApi\Annotations\Response;
|
||
|
use OpenApi\Context;
|
||
|
|
||
|
class RefTest extends OpenApiTestCase
|
||
|
{
|
||
|
public function testRef()
|
||
|
{
|
||
|
$openapi = $this->createOpenApiWithInfo();
|
||
|
$info = $openapi->ref('#/info');
|
||
|
$this->assertInstanceOf(Info::class, $info);
|
||
|
|
||
|
$comment = <<<END
|
||
|
@OA\Get(
|
||
|
path="/api/~/endpoint",
|
||
|
@OA\Response(response="default", description="A response")
|
||
|
)
|
||
|
END;
|
||
|
$openapi->merge($this->parseComment($comment));
|
||
|
$analysis = new Analysis([], new Context());
|
||
|
$analysis->addAnnotation($openapi, Context::detect());
|
||
|
$analysis->process();
|
||
|
|
||
|
$analysis->validate();
|
||
|
// escape / as ~1
|
||
|
// escape ~ as ~0
|
||
|
$response = $openapi->ref('#/paths/~1api~1~0~1endpoint/get/responses/default');
|
||
|
$this->assertInstanceOf(Response::class, $response);
|
||
|
$this->assertSame('A response', $response->description);
|
||
|
}
|
||
|
}
|