mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-09 02:59:27 +03:00
Merge pull request #1861 from goetas/test-jms
Improve jms testing by checking that collisions are not generated
This commit is contained in:
commit
6ebb9cc9b4
@ -50,6 +50,8 @@ class JMSUser
|
||||
/**
|
||||
* User Roles Comment.
|
||||
*
|
||||
* @var string[]
|
||||
*
|
||||
* @Serializer\Type("array<string>")
|
||||
* @Serializer\Accessor(getter="getRoles", setter="setRoles")
|
||||
* @Serializer\Expose
|
||||
|
@ -237,7 +237,7 @@ class JMSFunctionalTest extends WebTestCase
|
||||
'type' => 'integer',
|
||||
],
|
||||
'complex' => [
|
||||
'$ref' => '#/components/schemas/JMSComplex2',
|
||||
'$ref' => '#/components/schemas/JMSComplexDefault',
|
||||
],
|
||||
'user' => [
|
||||
'$ref' => '#/components/schemas/JMSUser',
|
||||
@ -306,6 +306,17 @@ class JMSFunctionalTest extends WebTestCase
|
||||
], json_decode($this->getModel('VirtualProperty')->toJson(), true));
|
||||
}
|
||||
|
||||
public function testNoCollisionsAreGenerated()
|
||||
{
|
||||
self::assertFalse($this->hasModel('JMSComplex2'));
|
||||
self::assertFalse($this->hasModel('JMSUser2'));
|
||||
self::assertFalse($this->hasModel('JMSChatRoom2'));
|
||||
self::assertFalse($this->hasModel('JMSChatRoomUser2'));
|
||||
self::assertFalse($this->hasModel('JMSChatLivingRoom2'));
|
||||
|
||||
self::assertFalse($this->hasModel('JMSPicture2'));
|
||||
}
|
||||
|
||||
public function testNamingStrategyWithConstraints()
|
||||
{
|
||||
$this->assertEquals([
|
||||
|
@ -18,6 +18,7 @@ use Hateoas\Configuration\Embedded;
|
||||
use JMS\SerializerBundle\JMSSerializerBundle;
|
||||
use Nelmio\ApiDocBundle\NelmioApiDocBundle;
|
||||
use Nelmio\ApiDocBundle\Tests\Functional\Entity\BazingaUser;
|
||||
use Nelmio\ApiDocBundle\Tests\Functional\Entity\JMSComplex;
|
||||
use Nelmio\ApiDocBundle\Tests\Functional\Entity\NestedGroup\JMSPicture;
|
||||
use Nelmio\ApiDocBundle\Tests\Functional\Entity\PrivateProtectedExposure;
|
||||
use Nelmio\ApiDocBundle\Tests\Functional\ModelDescriber\VirtualTypeClassDoesNotExistsHandlerDefinedDescriber;
|
||||
@ -248,6 +249,20 @@ class TestKernel extends Kernel
|
||||
'type' => BazingaUser::class,
|
||||
'groups' => ['foo'],
|
||||
],
|
||||
[
|
||||
'alias' => 'JMSComplex',
|
||||
'type' => JMSComplex::class,
|
||||
'groups' => [
|
||||
'list',
|
||||
'details',
|
||||
'User' => ['list'],
|
||||
],
|
||||
],
|
||||
[
|
||||
'alias' => 'JMSComplexDefault',
|
||||
'type' => JMSComplex::class,
|
||||
'groups' => null,
|
||||
],
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
@ -26,6 +26,14 @@ class WebTestCase extends BaseWebTestCase
|
||||
return static::$kernel->getContainer()->get(sprintf('nelmio_api_doc.generator.%s', $area))->generate();
|
||||
}
|
||||
|
||||
public function hasModel(string $name): bool
|
||||
{
|
||||
$api = $this->getOpenApiDefinition();
|
||||
$key = array_search($name, array_column($api->components->schemas, 'schema'));
|
||||
|
||||
return false !== $key;
|
||||
}
|
||||
|
||||
protected function getModel($name): OA\Schema
|
||||
{
|
||||
$api = $this->getOpenApiDefinition();
|
||||
|
Loading…
x
Reference in New Issue
Block a user