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