feat: sync contingents for TYPO3 calendar hotels
This commit is contained in:
1 parent
ec36b61275
commit
97c6330a9a
24 files changed
+1067
-180
No files matched your search
@@ -79,4 +79,40 @@ class CmsDataProviderTest extends TestCase
|
||||
|
||||
self::assertNull($provider->getHotelDetails('UNKNOWN'));
|
||||
}
|
||||
|
||||
public function testFetchCalendarHotelsKeepsCodeAndName(): void
|
||||
{
|
||||
$client = new MockHttpClient(function (string $method, string $url) {
|
||||
self::assertSame('https://cms.test/api/calendar-hotels', $url);
|
||||
|
||||
return new MockResponse(json_encode([
|
||||
['code' => 'ASCGR', 'name' => 'Ahrntal - Gruppenhaus Christiler', 'products' => [['uid' => 710, 'name' => 'Gruppenhaus Christiler', 'season' => 'w']]],
|
||||
['code' => 'DKI', 'name' => '', 'products' => []],
|
||||
['code' => '', 'name' => 'No code'],
|
||||
['name' => 'Missing code'],
|
||||
], JSON_THROW_ON_ERROR));
|
||||
}, 'https://cms.test/');
|
||||
|
||||
$hotels = (new CmsDataProvider($client, new ArrayAdapter()))->fetchCalendarHotels();
|
||||
|
||||
self::assertNotNull($hotels);
|
||||
self::assertSame([['ASCGR', 'Ahrntal - Gruppenhaus Christiler'], ['DKI', 'DKI']], array_map(
|
||||
static fn ($hotel) => [$hotel->code, $hotel->name],
|
||||
$hotels,
|
||||
));
|
||||
}
|
||||
|
||||
public function testFetchCalendarHotelsIsNullOnAnErrorResponse(): void
|
||||
{
|
||||
$client = new MockHttpClient(new MockResponse('Forbidden', ['http_code' => 403]), 'https://cms.test/');
|
||||
|
||||
self::assertNull((new CmsDataProvider($client, new ArrayAdapter()))->fetchCalendarHotels());
|
||||
}
|
||||
|
||||
public function testFetchCalendarHotelsIsNullWhenTheBodyIsNotAList(): void
|
||||
{
|
||||
$client = new MockHttpClient(new MockResponse('{"success":false}'), 'https://cms.test/');
|
||||
|
||||
self::assertNull((new CmsDataProvider($client, new ArrayAdapter()))->fetchCalendarHotels());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user