|
51 | 51 | use JMS\Serializer\Tests\Fixtures\Discriminator\ImagePost; |
52 | 52 | use JMS\Serializer\Tests\Fixtures\Discriminator\Moped; |
53 | 53 | use JMS\Serializer\Tests\Fixtures\Discriminator\Post; |
| 54 | +use JMS\Serializer\Tests\Fixtures\Discriminator\Serialization\ExtendedUser; |
| 55 | +use JMS\Serializer\Tests\Fixtures\Discriminator\Serialization\User; |
54 | 56 | use JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Car as DiscriminatorGroupCar; |
55 | 57 | use JMS\Serializer\Tests\Fixtures\ExclusionStrategy\AlwaysExcludeExclusionStrategy; |
56 | 58 | use JMS\Serializer\Tests\Fixtures\FirstClassListCollection; |
@@ -1312,6 +1314,33 @@ public function testPolymorphicObjectsWithGroup() |
1312 | 1314 | ); |
1313 | 1315 | } |
1314 | 1316 |
|
| 1317 | + public function getDiscrimatorObjectsSamples(): array |
| 1318 | + { |
| 1319 | + $u1 = new User(5, 'userName', 'userDesc'); |
| 1320 | + $u2 = new ExtendedUser(5, 'userName', 'userDesc', 'extednedContent'); |
| 1321 | + $arr = new ArrayCollection([$u1, $u2]); |
| 1322 | + |
| 1323 | + return [ |
| 1324 | + [$u1, 'user_discriminator'], |
| 1325 | + [$u2, 'user_discriminator_extended'], |
| 1326 | + [$arr, 'user_discriminator_array'], |
| 1327 | + ]; |
| 1328 | + } |
| 1329 | + |
| 1330 | + /** |
| 1331 | + * Test serializing entity that uses Discriminator and extends some base model class |
| 1332 | + * |
| 1333 | + * @dataProvider getDiscrimatorObjectsSamples |
| 1334 | + */ |
| 1335 | + public function testDiscrimatorObjects($data, $contentId) |
| 1336 | + { |
| 1337 | + $context = SerializationContext::create()->setGroups(['entity.identification']); |
| 1338 | + self::assertEquals( |
| 1339 | + $this->getContent($contentId), |
| 1340 | + $this->serialize($data, $context) |
| 1341 | + ); |
| 1342 | + } |
| 1343 | + |
1315 | 1344 | /** |
1316 | 1345 | * @group polymorphic |
1317 | 1346 | */ |
|
0 commit comments