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