53 lines
1.6 KiB
PHP
53 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Tests\Form\DataTransformer;
|
|
|
|
use App\Form\DataTransformer\RoomSelectionToIdTransformer;
|
|
use App\Form\Model\RoomSelectionDto;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Symfony\Component\Form\Exception\TransformationFailedException;
|
|
|
|
class RoomSelectionToIdTransformerTest extends TestCase
|
|
{
|
|
public function testReverseTransformAcceptsRoomSelectionDto(): void
|
|
{
|
|
$roomSelection = new RoomSelectionDto();
|
|
$roomSelection->id = 7;
|
|
$roomSelection->label = 'Doppelzimmer';
|
|
|
|
$transformer = new RoomSelectionToIdTransformer([$roomSelection]);
|
|
|
|
self::assertSame(7, $transformer->reverseTransform($roomSelection));
|
|
}
|
|
|
|
public function testReverseTransformReturnsNullForEmptyValues(): void
|
|
{
|
|
$transformer = new RoomSelectionToIdTransformer([]);
|
|
|
|
self::assertNull($transformer->reverseTransform(null));
|
|
self::assertNull($transformer->reverseTransform(''));
|
|
}
|
|
|
|
public function testReverseTransformRejectsInvalidValues(): void
|
|
{
|
|
$transformer = new RoomSelectionToIdTransformer([]);
|
|
|
|
$this->expectException(TransformationFailedException::class);
|
|
|
|
$transformer->reverseTransform('12');
|
|
}
|
|
|
|
public function testTransformReturnsMatchingRoomSelectionDto(): void
|
|
{
|
|
$roomSelection = new RoomSelectionDto();
|
|
$roomSelection->id = 7;
|
|
$roomSelection->label = 'Doppelzimmer';
|
|
|
|
$transformer = new RoomSelectionToIdTransformer([$roomSelection]);
|
|
|
|
self::assertSame($roomSelection, $transformer->transform(7));
|
|
}
|
|
}
|