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