58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php declare(strict_types=1); | ||
|  | 
 | ||
|  | /** | ||
|  |  * @license Apache 2.0 | ||
|  |  */ | ||
|  | 
 | ||
|  | namespace OpenApi\Tests\Processors; | ||
|  | 
 | ||
|  | use OpenApi\Analysis; | ||
|  | use OpenApi\Annotations\Get; | ||
|  | use OpenApi\Annotations\OpenApi; | ||
|  | use OpenApi\Annotations\PathItem; | ||
|  | use OpenApi\Annotations\Post; | ||
|  | use OpenApi\Context; | ||
|  | use OpenApi\Generator; | ||
|  | use OpenApi\Processors\BuildPaths; | ||
|  | use OpenApi\Processors\MergeIntoOpenApi; | ||
|  | use OpenApi\Tests\OpenApiTestCase; | ||
|  | 
 | ||
|  | class BuildPathsTest extends OpenApiTestCase | ||
|  | { | ||
|  |     public function testMergePathsWithSamePath() | ||
|  |     { | ||
|  |         $openapi = new OpenApi([]); | ||
|  |         $openapi->paths = [ | ||
|  |             new PathItem(['path' => '/comments']), | ||
|  |             new PathItem(['path' => '/comments']), | ||
|  |         ]; | ||
|  |         $analysis = new Analysis([$openapi], new Context()); | ||
|  |         $analysis->openapi = $openapi; | ||
|  |         $analysis->process(new BuildPaths()); | ||
|  |         $this->assertCount(1, $openapi->paths); | ||
|  |         $this->assertSame('/comments', $openapi->paths[0]->path); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testMergeOperationsWithSamePath() | ||
|  |     { | ||
|  |         $openapi = new OpenApi([]); | ||
|  |         $analysis = new Analysis( | ||
|  |             [ | ||
|  |                 $openapi, | ||
|  |                 new Get(['path' => '/comments']), | ||
|  |                 new Post(['path' => '/comments']), | ||
|  |             ], | ||
|  |             new Context() | ||
|  |         ); | ||
|  |         $analysis->process(new MergeIntoOpenApi()); | ||
|  |         $analysis->process(new BuildPaths()); | ||
|  |         $this->assertCount(1, $openapi->paths); | ||
|  |         $path = $openapi->paths[0]; | ||
|  |         $this->assertSame('/comments', $path->path); | ||
|  |         $this->assertInstanceOf(PathItem::class, $path); | ||
|  |         $this->assertInstanceOf(Get::class, $path->get); | ||
|  |         $this->assertInstanceOf(Post::class, $path->post); | ||
|  |         $this->assertSame(Generator::UNDEFINED, $path->put); | ||
|  |     } | ||
|  | } |