fix: normalize non-numeric body dimension values of existing drafts
This commit is contained in:
@@ -6,6 +6,7 @@ namespace App\Tests\Form\Model;
|
||||
|
||||
use App\BusProNet\Model\Travel;
|
||||
use App\Form\Model\BookingDto;
|
||||
use App\Form\Model\ParticipantDto;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
@@ -63,4 +64,27 @@ class BookingDtoTest extends TestCase
|
||||
$this->assertSame($travel, $dto->travel);
|
||||
$this->assertSame(42, $dto->travel->id);
|
||||
}
|
||||
|
||||
public function testUnserializeNormalizesLegacyBodyDimensionsOnParticipants(): void
|
||||
{
|
||||
$travel = new Travel();
|
||||
$travel->id = 42;
|
||||
$travel->dateFrom = new \DateTimeImmutable('2025-06-01');
|
||||
$travel->dateTo = new \DateTimeImmutable('2025-06-08');
|
||||
|
||||
$participant = new ParticipantDto();
|
||||
$participant->height = '149-157';
|
||||
$participant->weight = '75';
|
||||
$participant->shoeSize = '043';
|
||||
|
||||
$dto = new BookingDto($travel, 1);
|
||||
$dto->participants = [$participant];
|
||||
|
||||
$restored = unserialize(serialize($dto));
|
||||
|
||||
$this->assertInstanceOf(BookingDto::class, $restored);
|
||||
$this->assertNull($restored->participants[0]->height);
|
||||
$this->assertSame('75', $restored->participants[0]->weight);
|
||||
$this->assertSame('43', $restored->participants[0]->shoeSize);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user