fix: corrupted logic of model transformer
This commit is contained in:
@@ -59,12 +59,8 @@ class RoomSelectionToIdTransformer implements DataTransformerInterface
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_int($value)) {
|
if ($value instanceof RoomSelectionDto) {
|
||||||
return $value;
|
return $value->id;
|
||||||
}
|
|
||||||
|
|
||||||
if (is_string($value) && ctype_digit($value)) {
|
|
||||||
return (int) $value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new TransformationFailedException(sprintf(
|
throw new TransformationFailedException(sprintf(
|
||||||
|
|||||||
@@ -11,12 +11,15 @@ use Symfony\Component\Form\Exception\TransformationFailedException;
|
|||||||
|
|
||||||
class RoomSelectionToIdTransformerTest extends TestCase
|
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));
|
$transformer = new RoomSelectionToIdTransformer([$roomSelection]);
|
||||||
self::assertSame(12, $transformer->reverseTransform('12'));
|
|
||||||
|
self::assertSame(7, $transformer->reverseTransform($roomSelection));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testReverseTransformReturnsNullForEmptyValues(): void
|
public function testReverseTransformReturnsNullForEmptyValues(): void
|
||||||
@@ -33,7 +36,7 @@ class RoomSelectionToIdTransformerTest extends TestCase
|
|||||||
|
|
||||||
$this->expectException(TransformationFailedException::class);
|
$this->expectException(TransformationFailedException::class);
|
||||||
|
|
||||||
$transformer->reverseTransform('1.5');
|
$transformer->reverseTransform('12');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testTransformReturnsMatchingRoomSelectionDto(): void
|
public function testTransformReturnsMatchingRoomSelectionDto(): void
|
||||||
|
|||||||
Reference in New Issue
Block a user