NelmioApiDocBundle/Tests/Describer/ParameterRefMergeDescriberTest.php

65 lines
2.0 KiB
PHP

<?php
/*
* This file is part of the NelmioApiDocBundle package.
*
* (c) Nelmio
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Nelmio\ApiDocBundle\Tests\Describer;
use EXSyst\Component\Swagger\Swagger;
use Nelmio\ApiDocBundle\Describer\ParameterRefMergeDescriber;
class ParameterRefMergeDescriberTest extends AbstractDescriberTest
{
public function testDescribe()
{
// this sample config was taken from a json generated by swagger without ParameterRefMergeDescriber
$apiDef = [
'swagger' => '2.0',
'info' => ['title' => 'Ref Test'],
'paths' => [
'/api/{version}/product' => [
'get' => [
'parameters' => [
[
'$ref' => '#/parameters/versionParam',
],
[
'name' => 'version',
'in' => 'path',
'required' => true,
'type' => 'string',
'pattern' => 'v\\d+',
],
],
],
],
],
'parameters' => [
'versionParam' => [
'name' => 'version',
'in' => 'path',
'required' => true,
'type' => 'string',
],
],
];
$api = new Swagger($apiDef);
$this->describer->describe($api);
$describedData = $api->toArray();
// only one parameter should remain as they were duplicates
$this->assertCount(1, $describedData['paths']['/api/{version}/product']['get']['parameters']);
}
protected function setUp()
{
$this->describer = new ParameterRefMergeDescriber();
}
}