mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-02 15:51:48 +03:00
b603381139
2. Up min Symfony verion to 5.0. Adopt code to sf 5.0+ 3. Local env to run tests 4. Repare tests
109 lines
3.1 KiB
PHP
109 lines
3.1 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the NelmioApiDocBundle.
|
|
*
|
|
* (c) Nelmio <hello@nelm.io>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace NelmioApiDocBundle\Tests\Parser;
|
|
|
|
use Nelmio\ApiDocBundle\Parser\JsonSerializableParser;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class JsonSerializableParserTest extends TestCase
|
|
{
|
|
/**
|
|
* @var JsonSerializableParser
|
|
*/
|
|
private $parser;
|
|
|
|
public function setUp(): void
|
|
{
|
|
$this->parser = new JsonSerializableParser();
|
|
}
|
|
|
|
/**
|
|
* @dataProvider dataTestParser
|
|
*/
|
|
public function testParser($property, $expected)
|
|
{
|
|
$result = $this->parser->parse(array('class' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JsonSerializableTest'));
|
|
foreach ($expected as $name => $value) {
|
|
$this->assertArrayHasKey($property, $result);
|
|
$this->assertArrayHasKey($name, $result[$property]);
|
|
$this->assertEquals($result[$property][$name], $expected[$name]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @dataProvider dataTestSupports
|
|
*/
|
|
public function testSupports($class, $expected)
|
|
{
|
|
$this->assertEquals($this->parser->supports(array('class' => $class)), $expected);
|
|
}
|
|
|
|
public function dataTestParser()
|
|
{
|
|
return array(
|
|
array(
|
|
'property' => 'id',
|
|
'expected' => array(
|
|
'dataType' => 'integer',
|
|
'default' => 123
|
|
)
|
|
),
|
|
array(
|
|
'property' => 'name',
|
|
'expected' => array(
|
|
'dataType' => 'string',
|
|
'default' => 'My name',
|
|
)
|
|
),
|
|
array(
|
|
'property' => 'child',
|
|
'expected' => array(
|
|
'dataType' => 'object',
|
|
'children' => array(
|
|
'value' => array(
|
|
'dataType' => 'array',
|
|
'actualType' => 'array',
|
|
'subType' => null,
|
|
'required' => null,
|
|
'description' => null,
|
|
'readonly' => null,
|
|
'default' => null,
|
|
)
|
|
)
|
|
)
|
|
)
|
|
);
|
|
}
|
|
|
|
public function dataTestSupports()
|
|
{
|
|
return array(
|
|
array(
|
|
'class' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JsonSerializableTest',
|
|
'expected' => true
|
|
),
|
|
array(
|
|
'class' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JsonSerializableRequiredConstructorTest',
|
|
'expected' => false
|
|
),
|
|
array(
|
|
'class' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JsonSerializableOptionalConstructorTest',
|
|
'expected' => true
|
|
),
|
|
array(
|
|
'class' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\Popo',
|
|
'expected' => false
|
|
)
|
|
);
|
|
}
|
|
}
|