feat: turn search_trips into the website's travel search
This commit is contained in:
1 parent
bfdedefae3
commit
4ab2714bde
12 files changed
+693
-151
No files matched your search
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Tests\Enum;
|
||||
|
||||
use App\Enum\RoomType;
|
||||
use PHPUnit\Framework\Attributes\DataProvider;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* Pins the classification to TYPO3's RoomTypeResolver, which the website search filters on.
|
||||
*/
|
||||
class RoomTypeTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @return iterable<string, array{?string, ?string, ?int, ?int, ?RoomType}>
|
||||
*/
|
||||
public static function rooms(): iterable
|
||||
{
|
||||
yield 'single room' => ['EZ', 'Einzelzimmer Dusche/WC', 1, 1, RoomType::ForOne];
|
||||
yield 'double room' => ['DZ', 'Doppelzimmer', 2, 1, RoomType::ForTwo];
|
||||
yield 'six-bed room' => ['6BZ', 'Sechsbettzimmer', 6, 4, RoomType::ForSix];
|
||||
yield 'nine and more' => ['MBZ', 'Gruppenraum', 12, 8, RoomType::ForNinePlus];
|
||||
yield 'shared bed by "Bett im"' => ['MBZET', 'Bett im Mehrbettzimmer Etagendusche/-WC', 1, 1, RoomType::WithOthers];
|
||||
yield 'shared bed by "mit anderen"' => ['APP', 'Apartment mit anderen Kunden', 4, 1, RoomType::WithOthers];
|
||||
yield 'marker in any case' => ['X', 'BETT IM LAGER', 1, 1, RoomType::WithOthers];
|
||||
yield 'minPax when maxPax is missing' => ['DZ', 'Doppelzimmer', null, 2, RoomType::ForTwo];
|
||||
yield 'no occupancy at all' => ['X', 'Unbekannt', 0, 0, RoomType::WithOthers];
|
||||
yield 'baby row is no room' => ['Baby', 'Babypreis für 0-2 Jährige', 1, 1, null];
|
||||
}
|
||||
|
||||
#[DataProvider('rooms')]
|
||||
public function testClassifiesByCapacityWithTheSharedBedAndBabyExceptions(?string $code, ?string $label, ?int $maxPax, ?int $minPax, ?RoomType $expected): void
|
||||
{
|
||||
self::assertSame($expected, RoomType::classify($code, $label, $maxPax, $minPax));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user