- Angenommen am {{ booking.acceptedAt | date('d.m.Y') }} um {{ booking.acceptedAt | date('H:i') }} Uhr -
-{{ ctx.accommodation.name }}
+ ++ {{ ctx.accommodation.name }} +
+ {# Booked services #} {% if booking.boardServiceLabel or booking.additionalServices | length > 0 %} -{{ booking.remarks | nl2br }}
+Beschreibung
', + 'features' => 'Ausstattung
', + 'room_types' => 'Zimmer
', + 'additional_information' => 'Weitere Infos
', + 'images' => ['resized' => ['l' => [['url' => 'l.jpg', 'alt' => 'Alt']]]], + 'icons' => ['sauna' => ['label' => 'Sauna', 'value' => true]], + 'region' => [ + 'name' => 'Alpenregion', + 'latitude' => 47.1, + 'longitude' => 11.2, + 'webcam' => 'https://webcam.test', + 'ski_area' => 'Skigebiet
', + 'ski_area_extended' => 'Mehr Skigebiet
', + 'description' => 'Region
', + 'news' => 'News
', + 'length' => '42', + 'altitude' => '1800', + 'lifts' => '5', + 'images' => ['resized' => ['l' => []]], + 'region_maps' => ['map1.jpg', 'map2.jpg'], + ], + ], JSON_THROW_ON_ERROR))); + + $provider = new CmsDataProvider($client, new ArrayAdapter(), 'test-key'); + + $data = $provider->getHotelDetails('HOTEL1'); + + self::assertNotNull($data); + self::assertSame('Hotel Alpin', $data->name); + self::assertSame("Musterstraße 1\n1234 Musterort", $data->address); + self::assertSame('Zimmer
', $data->roomTypes); + self::assertSame('Weitere Infos
', $data->additionalInformation); + self::assertSame(['sauna' => ['label' => 'Sauna', 'value' => true]], $data->icons); + self::assertNotNull($data->region); + self::assertSame('Alpenregion', $data->region->name); + self::assertSame('Skigebiet
', $data->region->skiArea); + self::assertSame('Mehr Skigebiet
', $data->region->skiAreaExtended); + self::assertSame(['map1.jpg', 'map2.jpg'], $data->region->regionMaps); + self::assertSame(42, $data->region->length); + self::assertSame(1800, $data->region->altitude); + self::assertSame(5, $data->region->lifts); + self::assertSame(47.1, $data->region->latitude); + self::assertSame(11.2, $data->region->longitude); + } + + public function testGetHotelDetailsReturnsNullOnFailure(): void + { + $client = new MockHttpClient(fn () => new MockResponse('', ['http_code' => 500])); + + $provider = new CmsDataProvider($client, new ArrayAdapter(), 'test-key'); + + self::assertNull($provider->getHotelDetails('UNKNOWN')); + } +}