parser = new AvailabilitiesParser();
}
public function testParseRoomsNormalizesHotelAvailabilityStatuses(): void
{
$xml = <<<'XML'
XML;
$rooms = $this->parser->parseRooms(new Crawler($xml))->getItems();
$this->assertContainsOnlyInstancesOf(Room::class, $rooms);
$this->assertSame(Constants::STATUS_AVAILABLE, $rooms[1]->status);
$this->assertSame(Constants::STATUS_ON_REQUEST, $rooms[2]->status);
$this->assertSame(Constants::STATUS_BLOCKED, $rooms[3]->status);
}
public function testParseRoomsLogsUnrecognizedStatus(): void
{
$logger = $this->createMock(LoggerInterface::class);
$logger->expects($this->once())
->method('warning')
->with(
'Unrecognized room availability status from BusProNet XML',
['status' => 'foo']
);
$parser = new AvailabilitiesParser($logger);
$xml = <<<'XML'
XML;
$rooms = $parser->parseRooms(new Crawler($xml))->getItems();
$this->assertSame('foo', $rooms[1]->status);
}
}