diff --git a/src/Form/DataTransformer/RoomSelectionToIdTransformer.php b/src/Form/DataTransformer/RoomSelectionToIdTransformer.php index 0a30674..d1775fc 100644 --- a/src/Form/DataTransformer/RoomSelectionToIdTransformer.php +++ b/src/Form/DataTransformer/RoomSelectionToIdTransformer.php @@ -59,12 +59,8 @@ class RoomSelectionToIdTransformer implements DataTransformerInterface return null; } - if (is_int($value)) { - return $value; - } - - if (is_string($value) && ctype_digit($value)) { - return (int) $value; + if ($value instanceof RoomSelectionDto) { + return $value->id; } throw new TransformationFailedException(sprintf( diff --git a/tests/Form/DataTransformer/RoomSelectionToIdTransformerTest.php b/tests/Form/DataTransformer/RoomSelectionToIdTransformerTest.php index 16bccec..f4e6496 100644 --- a/tests/Form/DataTransformer/RoomSelectionToIdTransformerTest.php +++ b/tests/Form/DataTransformer/RoomSelectionToIdTransformerTest.php @@ -11,12 +11,15 @@ use Symfony\Component\Form\Exception\TransformationFailedException; class RoomSelectionToIdTransformerTest extends TestCase { - public function testReverseTransformAcceptsIntegerAndNumericStringIds(): void + public function testReverseTransformAcceptsRoomSelectionDto(): void { - $transformer = new RoomSelectionToIdTransformer([]); + $roomSelection = new RoomSelectionDto(); + $roomSelection->id = 7; + $roomSelection->label = 'Doppelzimmer'; - self::assertSame(12, $transformer->reverseTransform(12)); - self::assertSame(12, $transformer->reverseTransform('12')); + $transformer = new RoomSelectionToIdTransformer([$roomSelection]); + + self::assertSame(7, $transformer->reverseTransform($roomSelection)); } public function testReverseTransformReturnsNullForEmptyValues(): void @@ -33,7 +36,7 @@ class RoomSelectionToIdTransformerTest extends TestCase $this->expectException(TransformationFailedException::class); - $transformer->reverseTransform('1.5'); + $transformer->reverseTransform('12'); } public function testTransformReturnsMatchingRoomSelectionDto(): void