fix: show booked room count in edit summary
This commit is contained in:
1 parent
2705401393
commit
897a1ac7f9
2 files changed
+48
-10
No files matched your search
@@ -300,6 +300,51 @@ class RoomPricingCalculatorTest extends TestCase
|
||||
$this->assertEquals(2, $result[0]['participantCount']);
|
||||
$this->assertEquals(210.0, $result[0]['unitPrice']);
|
||||
$this->assertEquals(420.0, $result[0]['totalPrice']);
|
||||
$this->assertEquals(1, $result[0]['quantity']);
|
||||
}
|
||||
|
||||
public function testCalculateRoomPricingInEditModeShowsBookedRoomCountNotOccupants(): void
|
||||
{
|
||||
// Booking 104407: 16 participants in one 6-bed room, one 4-bed room and three doubles.
|
||||
$bookingDto = new BookingDto(new Travel(), 16);
|
||||
$bookingDto->participants = [];
|
||||
foreach ([0, 1, 2, 3, 4, 5] as $index) {
|
||||
$bookingDto->participants[$index] = $this->participantInRoom(863);
|
||||
}
|
||||
foreach ([6, 7, 8, 9] as $index) {
|
||||
$bookingDto->participants[$index] = $this->participantInRoom(95);
|
||||
}
|
||||
foreach ([10, 11, 12, 13, 14, 15] as $index) {
|
||||
$bookingDto->participants[$index] = $this->participantInRoom(3);
|
||||
}
|
||||
|
||||
$booking = new Booking();
|
||||
$booking->rooms = [
|
||||
863 => $this->bookedRoom(863, 6, 1, [0, 1, 2, 3, 4, 5], 194.0),
|
||||
95 => $this->bookedRoom(95, 4, 1, [6, 7, 8, 9], 204.0),
|
||||
3 => $this->bookedRoom(3, 2, 3, [10, 11, 12, 13, 14, 15], 224.0),
|
||||
];
|
||||
$bookingDto->booking = $booking;
|
||||
|
||||
$result = $this->calculator->calculateRoomPricing($bookingDto);
|
||||
$quantities = array_column($result, 'quantity', 'roomId');
|
||||
|
||||
$this->assertSame([863 => 1, 95 => 1, 3 => 3], $quantities);
|
||||
$this->assertEquals(1344.0, $result[2]['totalPrice']);
|
||||
}
|
||||
|
||||
/** @param int[] $mapping */
|
||||
private function bookedRoom(int $id, int $maxPax, int $totalCount, array $mapping, float $price): Room
|
||||
{
|
||||
$room = new Room();
|
||||
$room->id = $id;
|
||||
$room->label = 'Room '.$id;
|
||||
$room->maxPax = $maxPax;
|
||||
$room->totalCount = $totalCount;
|
||||
$room->mapping = $mapping;
|
||||
$room->individualPrice = array_fill_keys($mapping, $price);
|
||||
|
||||
return $room;
|
||||
}
|
||||
|
||||
private function participantInRoom(int $roomId): ParticipantDto
|
||||
|
||||
Reference in new issue
Block a user