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); } }