mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-15 14:03:15 +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.
|
* User Roles Comment.
|
||||||
*
|
*
|
||||||
|
* @var string[]
|
||||||
|
*
|
||||||
* @Serializer\Type("array<string>")
|
* @Serializer\Type("array<string>")
|
||||||
* @Serializer\Accessor(getter="getRoles", setter="setRoles")
|
* @Serializer\Accessor(getter="getRoles", setter="setRoles")
|
||||||
* @Serializer\Expose
|
* @Serializer\Expose
|
||||||
|
@ -237,7 +237,7 @@ class JMSFunctionalTest extends WebTestCase
|
|||||||
'type' => 'integer',
|
'type' => 'integer',
|
||||||
],
|
],
|
||||||
'complex' => [
|
'complex' => [
|
||||||
'$ref' => '#/components/schemas/JMSComplex2',
|
'$ref' => '#/components/schemas/JMSComplexDefault',
|
||||||
],
|
],
|
||||||
'user' => [
|
'user' => [
|
||||||
'$ref' => '#/components/schemas/JMSUser',
|
'$ref' => '#/components/schemas/JMSUser',
|
||||||
@ -306,6 +306,17 @@ class JMSFunctionalTest extends WebTestCase
|
|||||||
], json_decode($this->getModel('VirtualProperty')->toJson(), true));
|
], 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()
|
public function testNamingStrategyWithConstraints()
|
||||||
{
|
{
|
||||||
$this->assertEquals([
|
$this->assertEquals([
|
||||||
|
@ -18,6 +18,7 @@ use Hateoas\Configuration\Embedded;
|
|||||||
use JMS\SerializerBundle\JMSSerializerBundle;
|
use JMS\SerializerBundle\JMSSerializerBundle;
|
||||||
use Nelmio\ApiDocBundle\NelmioApiDocBundle;
|
use Nelmio\ApiDocBundle\NelmioApiDocBundle;
|
||||||
use Nelmio\ApiDocBundle\Tests\Functional\Entity\BazingaUser;
|
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\NestedGroup\JMSPicture;
|
||||||
use Nelmio\ApiDocBundle\Tests\Functional\Entity\PrivateProtectedExposure;
|
use Nelmio\ApiDocBundle\Tests\Functional\Entity\PrivateProtectedExposure;
|
||||||
use Nelmio\ApiDocBundle\Tests\Functional\ModelDescriber\VirtualTypeClassDoesNotExistsHandlerDefinedDescriber;
|
use Nelmio\ApiDocBundle\Tests\Functional\ModelDescriber\VirtualTypeClassDoesNotExistsHandlerDefinedDescriber;
|
||||||
@ -248,6 +249,20 @@ class TestKernel extends Kernel
|
|||||||
'type' => BazingaUser::class,
|
'type' => BazingaUser::class,
|
||||||
'groups' => ['foo'],
|
'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();
|
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
|
protected function getModel($name): OA\Schema
|
||||||
{
|
{
|
||||||
$api = $this->getOpenApiDefinition();
|
$api = $this->getOpenApiDefinition();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user