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