coupon-admin/vendor/zircote/swagger-php/tests/Processors/BuildPathsTest.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);
}
}