From a8acb343367e9cc718b26919e29d30fe67e8efef Mon Sep 17 00:00:00 2001 From: soyuka Date: Mon, 14 Sep 2026 13:12:33 +0200 Subject: [PATCH] fix(tests): isolate joined inheritance routes --- .../BarJoined.php | 4 +-- .../BarJoinedA.php | 4 +-- .../BarJoinedB.php | 4 +-- .../SerializerGroupsOwner.php} | 6 ++--- .../JoinedInheritanceSerializerGroupsTest.php | 25 ++++++++++--------- 5 files changed, 22 insertions(+), 21 deletions(-) rename tests/Fixtures/TestBundle/Entity/{Issue8113 => JoinedInheritanceSerializerGroups}/BarJoined.php (76%) rename tests/Fixtures/TestBundle/Entity/{Issue8113 => JoinedInheritanceSerializerGroups}/BarJoinedA.php (74%) rename tests/Fixtures/TestBundle/Entity/{Issue8113 => JoinedInheritanceSerializerGroups}/BarJoinedB.php (74%) rename tests/Fixtures/TestBundle/Entity/{Issue8113/Foo.php => JoinedInheritanceSerializerGroups/SerializerGroupsOwner.php} (76%) diff --git a/tests/Fixtures/TestBundle/Entity/Issue8113/BarJoined.php b/tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/BarJoined.php similarity index 76% rename from tests/Fixtures/TestBundle/Entity/Issue8113/BarJoined.php rename to tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/BarJoined.php index 9af753cf5a1..a8fb4ee7640 100644 --- a/tests/Fixtures/TestBundle/Entity/Issue8113/BarJoined.php +++ b/tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/BarJoined.php @@ -11,13 +11,13 @@ declare(strict_types=1); -namespace ApiPlatform\Tests\Fixtures\TestBundle\Entity\Issue8113; +namespace ApiPlatform\Tests\Fixtures\TestBundle\Entity\JoinedInheritanceSerializerGroups; use ApiPlatform\Metadata\ApiResource; use ApiPlatform\Metadata\Get; use Doctrine\ORM\Mapping as ORM; -#[ApiResource(operations: [new Get()])] +#[ApiResource(operations: [new Get(shortName: 'JoinedInheritanceSerializerGroupsBase', uriTemplate: '/joined-inheritance-serializer-groups/base/{id}')])] #[ORM\Entity] #[ORM\InheritanceType('JOINED')] #[ORM\DiscriminatorColumn(name: 'discr', type: 'string')] diff --git a/tests/Fixtures/TestBundle/Entity/Issue8113/BarJoinedA.php b/tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/BarJoinedA.php similarity index 74% rename from tests/Fixtures/TestBundle/Entity/Issue8113/BarJoinedA.php rename to tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/BarJoinedA.php index 405cf44f4c0..5ba7a2fb186 100644 --- a/tests/Fixtures/TestBundle/Entity/Issue8113/BarJoinedA.php +++ b/tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/BarJoinedA.php @@ -11,14 +11,14 @@ declare(strict_types=1); -namespace ApiPlatform\Tests\Fixtures\TestBundle\Entity\Issue8113; +namespace ApiPlatform\Tests\Fixtures\TestBundle\Entity\JoinedInheritanceSerializerGroups; use ApiPlatform\Metadata\ApiResource; use ApiPlatform\Metadata\Get; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Serializer\Attribute\Groups; -#[ApiResource(operations: [new Get()])] +#[ApiResource(operations: [new Get(shortName: 'JoinedInheritanceSerializerGroupsBarA', uriTemplate: '/joined-inheritance-serializer-groups/bar-a/{id}')])] #[ORM\Entity] class BarJoinedA extends BarJoined { diff --git a/tests/Fixtures/TestBundle/Entity/Issue8113/BarJoinedB.php b/tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/BarJoinedB.php similarity index 74% rename from tests/Fixtures/TestBundle/Entity/Issue8113/BarJoinedB.php rename to tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/BarJoinedB.php index 7f481517d1e..7155be2c34c 100644 --- a/tests/Fixtures/TestBundle/Entity/Issue8113/BarJoinedB.php +++ b/tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/BarJoinedB.php @@ -11,14 +11,14 @@ declare(strict_types=1); -namespace ApiPlatform\Tests\Fixtures\TestBundle\Entity\Issue8113; +namespace ApiPlatform\Tests\Fixtures\TestBundle\Entity\JoinedInheritanceSerializerGroups; use ApiPlatform\Metadata\ApiResource; use ApiPlatform\Metadata\Get; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Serializer\Attribute\Groups; -#[ApiResource(operations: [new Get()])] +#[ApiResource(operations: [new Get(shortName: 'JoinedInheritanceSerializerGroupsBarB', uriTemplate: '/joined-inheritance-serializer-groups/bar-b/{id}')])] #[ORM\Entity] class BarJoinedB extends BarJoined { diff --git a/tests/Fixtures/TestBundle/Entity/Issue8113/Foo.php b/tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/SerializerGroupsOwner.php similarity index 76% rename from tests/Fixtures/TestBundle/Entity/Issue8113/Foo.php rename to tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/SerializerGroupsOwner.php index 33766618f0f..607fca3628b 100644 --- a/tests/Fixtures/TestBundle/Entity/Issue8113/Foo.php +++ b/tests/Fixtures/TestBundle/Entity/JoinedInheritanceSerializerGroups/SerializerGroupsOwner.php @@ -11,16 +11,16 @@ declare(strict_types=1); -namespace ApiPlatform\Tests\Fixtures\TestBundle\Entity\Issue8113; +namespace ApiPlatform\Tests\Fixtures\TestBundle\Entity\JoinedInheritanceSerializerGroups; use ApiPlatform\Metadata\ApiResource; use ApiPlatform\Metadata\Get; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Serializer\Attribute\Groups; -#[ApiResource(operations: [new Get(normalizationContext: ['groups' => ['foo']])])] +#[ApiResource(operations: [new Get(shortName: 'JoinedInheritanceSerializerGroupsOwner', uriTemplate: '/joined-inheritance-serializer-groups/{id}', normalizationContext: ['groups' => ['foo']])])] #[ORM\Entity] -class Foo +class SerializerGroupsOwner { #[ORM\Id] #[ORM\Column(type: 'integer')] diff --git a/tests/Functional/Doctrine/JoinedInheritanceSerializerGroupsTest.php b/tests/Functional/Doctrine/JoinedInheritanceSerializerGroupsTest.php index 8b4221de2e0..b0b6f1a4db0 100644 --- a/tests/Functional/Doctrine/JoinedInheritanceSerializerGroupsTest.php +++ b/tests/Functional/Doctrine/JoinedInheritanceSerializerGroupsTest.php @@ -14,10 +14,11 @@ namespace ApiPlatform\Tests\Functional\Doctrine; use ApiPlatform\Test\ApiTestCase; -use ApiPlatform\Tests\Fixtures\TestBundle\Entity\Issue8113\BarJoined; -use ApiPlatform\Tests\Fixtures\TestBundle\Entity\Issue8113\BarJoinedA; -use ApiPlatform\Tests\Fixtures\TestBundle\Entity\Issue8113\BarJoinedB; -use ApiPlatform\Tests\Fixtures\TestBundle\Entity\Issue8113\Foo; +use ApiPlatform\Tests\Fixtures\TestBundle\Entity\Foo as ExistingFoo; +use ApiPlatform\Tests\Fixtures\TestBundle\Entity\JoinedInheritanceSerializerGroups\BarJoined; +use ApiPlatform\Tests\Fixtures\TestBundle\Entity\JoinedInheritanceSerializerGroups\BarJoinedA; +use ApiPlatform\Tests\Fixtures\TestBundle\Entity\JoinedInheritanceSerializerGroups\BarJoinedB; +use ApiPlatform\Tests\Fixtures\TestBundle\Entity\JoinedInheritanceSerializerGroups\SerializerGroupsOwner; use ApiPlatform\Tests\RecreateSchemaTrait; use ApiPlatform\Tests\SetupClassResourcesTrait; @@ -33,7 +34,7 @@ final class JoinedInheritanceSerializerGroupsTest extends ApiTestCase */ public static function getResources(): array { - return [Foo::class, BarJoined::class, BarJoinedA::class, BarJoinedB::class]; + return [ExistingFoo::class, SerializerGroupsOwner::class, BarJoined::class, BarJoinedA::class, BarJoinedB::class]; } public function testJoinedInheritanceSubclassGroupsEmbedRelation(): void @@ -42,27 +43,27 @@ public function testJoinedInheritanceSubclassGroupsEmbedRelation(): void $this->markTestSkipped('Not tested with mongodb.'); } - $this->recreateSchema([Foo::class, BarJoined::class, BarJoinedA::class, BarJoinedB::class]); + $this->recreateSchema([SerializerGroupsOwner::class, BarJoined::class, BarJoinedA::class, BarJoinedB::class]); $manager = $this->getManager(); $barJoinedA = new BarJoinedA(); $barJoinedA->setY('y_value'); $manager->persist($barJoinedA); - $foo = new Foo(); - $foo->setBarJoined($barJoinedA); - $manager->persist($foo); + $serializerGroupsOwner = new SerializerGroupsOwner(); + $serializerGroupsOwner->setBarJoined($barJoinedA); + $manager->persist($serializerGroupsOwner); $manager->flush(); - $response = self::createClient()->request('GET', '/foos/1', [ + $response = self::createClient()->request('GET', '/joined-inheritance-serializer-groups/1', [ 'headers' => ['Accept' => 'application/ld+json'], ]); $this->assertResponseIsSuccessful(); $this->assertJsonContains([ - '@id' => '/foos/1', + '@id' => '/joined-inheritance-serializer-groups/1', 'barJoined' => [ - '@type' => 'BarJoinedA', + '@type' => 'JoinedInheritanceSerializerGroupsBarA', 'y' => 'y_value', ], ]);