From 01a923b47950ca320c9a1d7addb823e7bbd4cdf7 Mon Sep 17 00:00:00 2001 From: Maxime COLIN Date: Tue, 21 Jan 2025 10:25:36 +0100 Subject: [PATCH] Introduce testNotListedValueInEnumArray --- .../Hydration/SimpleObjectHydratorTest.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/Tests/ORM/Hydration/SimpleObjectHydratorTest.php b/tests/Tests/ORM/Hydration/SimpleObjectHydratorTest.php index 59a667ab07e..89cfa9584d9 100644 --- a/tests/Tests/ORM/Hydration/SimpleObjectHydratorTest.php +++ b/tests/Tests/ORM/Hydration/SimpleObjectHydratorTest.php @@ -7,11 +7,13 @@ use Doctrine\DBAL\Types\Type as DBALType; use Doctrine\ORM\Internal\Hydration\HydrationException; use Doctrine\ORM\Internal\Hydration\SimpleObjectHydrator; +use Doctrine\ORM\Mapping\MappingException; use Doctrine\ORM\Query\ResultSetMapping; use Doctrine\Tests\DbalTypes\GH8565EmployeePayloadType; use Doctrine\Tests\DbalTypes\GH8565ManagerPayloadType; use Doctrine\Tests\Models\CMS\CmsAddress; use Doctrine\Tests\Models\Company\CompanyPerson; +use Doctrine\Tests\Models\Enums\Scale; use Doctrine\Tests\Models\GH8565\GH8565Employee; use Doctrine\Tests\Models\GH8565\GH8565Manager; use Doctrine\Tests\Models\GH8565\GH8565Person; @@ -155,4 +157,23 @@ public function testWrongValuesShouldNotBeConvertedToPhpValue(): void $result = $hydrator->hydrateAll($stmt, $rsm); self::assertEquals($result[0], $expectedEntity); } + + public function testNotListedValueInEnumArray(): void + { + $this->expectException(MappingException::class); + $rsm = new ResultSetMapping(); + $rsm->addEntityResult(Scale::class, 's'); + $rsm->addFieldResult('s', 's__id', 'id'); + $rsm->addFieldResult('s', 's__supported_units', 'supportedUnits'); + $resultSet = [ + [ + 's__id' => 1, + 's__supported_units' => 'g,m,unknown_case', + ], + ]; + + $stmt = $this->createResultMock($resultSet); + $hydrator = new SimpleObjectHydrator($this->entityManager); + $hydrator->hydrateAll($stmt, $rsm); + } }