chore: remote obsolete contingents-related plumbing
This commit is contained in:
@@ -1,188 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Tests\Controller\Api;
|
||||
|
||||
use App\Controller\Api\ContingentController;
|
||||
use App\Service\ContingentDataService;
|
||||
use App\Service\TravelDataProvider;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\DependencyInjection\Container;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Serializer\Encoder\JsonEncoder;
|
||||
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
|
||||
use Symfony\Component\Serializer\Serializer;
|
||||
|
||||
class ContingentControllerTest extends TestCase
|
||||
{
|
||||
public function testByDateQueryResolvesCodeReferences(): void
|
||||
{
|
||||
$contingentDataService = $this->createMock(ContingentDataService::class);
|
||||
$travelDataProvider = $this->createMock(TravelDataProvider::class);
|
||||
|
||||
$travelDataProvider
|
||||
->expects($this->once())
|
||||
->method('mapHotelCodeToId')
|
||||
->with('SBW-HOTEL')
|
||||
->willReturn(157047);
|
||||
|
||||
$travelDataProvider
|
||||
->expects($this->once())
|
||||
->method('mapDateCodeToId')
|
||||
->with('SBW131225')
|
||||
->willReturn(11606);
|
||||
|
||||
$contingentDataService
|
||||
->expects($this->once())
|
||||
->method('getAvailableContingents')
|
||||
->with(157047, 11606)
|
||||
->willReturn([]);
|
||||
|
||||
$controller = $this->createController($contingentDataService, $travelDataProvider);
|
||||
$request = Request::create('/api/contingents', 'GET', [
|
||||
'hotelRef' => 'SBW-HOTEL',
|
||||
'dateRef' => 'sbw-13/12/25',
|
||||
]);
|
||||
|
||||
$response = $controller->byDate($request);
|
||||
|
||||
$this->assertSame(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
public function testByDateQueryRequiresDateReference(): void
|
||||
{
|
||||
$contingentDataService = $this->createMock(ContingentDataService::class);
|
||||
$travelDataProvider = $this->createMock(TravelDataProvider::class);
|
||||
|
||||
$controller = $this->createController($contingentDataService, $travelDataProvider);
|
||||
$request = Request::create('/api/contingents', 'GET', [
|
||||
'hotelRef' => '157047',
|
||||
]);
|
||||
|
||||
$response = $controller->byDate($request);
|
||||
$payload = json_decode((string) $response->getContent(), true);
|
||||
|
||||
$this->assertSame(400, $response->getStatusCode());
|
||||
$this->assertSame('dateRef is required', $payload['error']);
|
||||
}
|
||||
|
||||
public function testByDateQueryReturnsNotFoundForUnknownDateReference(): void
|
||||
{
|
||||
$contingentDataService = $this->createMock(ContingentDataService::class);
|
||||
$travelDataProvider = $this->createMock(TravelDataProvider::class);
|
||||
|
||||
$travelDataProvider
|
||||
->expects($this->once())
|
||||
->method('mapHotelCodeToId')
|
||||
->with('SBW-HOTEL')
|
||||
->willReturn(157047);
|
||||
|
||||
$travelDataProvider
|
||||
->expects($this->once())
|
||||
->method('mapDateCodeToId')
|
||||
->with('UNKNOWN')
|
||||
->willReturn(null);
|
||||
|
||||
$contingentDataService
|
||||
->expects($this->never())
|
||||
->method('getAvailableContingents');
|
||||
|
||||
$controller = $this->createController($contingentDataService, $travelDataProvider);
|
||||
$request = Request::create('/api/contingents', 'GET', [
|
||||
'hotelRef' => 'SBW-HOTEL',
|
||||
'dateRef' => 'unknown',
|
||||
]);
|
||||
|
||||
$response = $controller->byDate($request);
|
||||
$payload = json_decode((string) $response->getContent(), true);
|
||||
|
||||
$this->assertSame(404, $response->getStatusCode());
|
||||
$this->assertSame('Not found', $payload['message']);
|
||||
}
|
||||
|
||||
public function testRoomsQueryRequiresDateRange(): void
|
||||
{
|
||||
$contingentDataService = $this->createMock(ContingentDataService::class);
|
||||
$travelDataProvider = $this->createMock(TravelDataProvider::class);
|
||||
|
||||
$controller = $this->createController($contingentDataService, $travelDataProvider);
|
||||
$request = Request::create('/api/contingents/rooms', 'GET', [
|
||||
'hotelRef' => '157047',
|
||||
'dateRef' => '11606',
|
||||
]);
|
||||
|
||||
$response = $controller->rooms($request);
|
||||
$payload = json_decode((string) $response->getContent(), true);
|
||||
|
||||
$this->assertSame(400, $response->getStatusCode());
|
||||
$this->assertSame('dateFrom and dateTo are required', $payload['error']);
|
||||
}
|
||||
|
||||
public function testByDateQueryUsesNumericReferencesAsIdentifiers(): void
|
||||
{
|
||||
$contingentDataService = $this->createMock(ContingentDataService::class);
|
||||
$travelDataProvider = $this->createMock(TravelDataProvider::class);
|
||||
|
||||
$travelDataProvider
|
||||
->expects($this->never())
|
||||
->method('mapHotelCodeToId');
|
||||
|
||||
$travelDataProvider
|
||||
->expects($this->never())
|
||||
->method('mapDateCodeToId');
|
||||
|
||||
$contingentDataService
|
||||
->expects($this->once())
|
||||
->method('getAvailableContingents')
|
||||
->with(157047, 11606)
|
||||
->willReturn([]);
|
||||
|
||||
$controller = $this->createController($contingentDataService, $travelDataProvider);
|
||||
$request = Request::create('/api/contingents', 'GET', [
|
||||
'hotelRef' => '157047',
|
||||
'dateRef' => '11606',
|
||||
]);
|
||||
$response = $controller->byDate($request);
|
||||
|
||||
$this->assertSame(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
public function testRoomsQueryForwardsOptionalMyEpUrl(): void
|
||||
{
|
||||
$contingentDataService = $this->createMock(ContingentDataService::class);
|
||||
$travelDataProvider = $this->createMock(TravelDataProvider::class);
|
||||
|
||||
$contingentDataService
|
||||
->expects($this->once())
|
||||
->method('getAvailableRooms')
|
||||
->with('2026-03-01', '2026-03-08', 157047, 11606, 'https://my.ep-reisen.de')
|
||||
->willReturn([]);
|
||||
|
||||
$controller = $this->createController($contingentDataService, $travelDataProvider);
|
||||
$request = Request::create('/api/contingents/rooms', 'GET', [
|
||||
'hotelRef' => '157047',
|
||||
'dateRef' => '11606',
|
||||
'dateFrom' => '2026-03-01',
|
||||
'dateTo' => '2026-03-08',
|
||||
'my_ep_url' => 'https://my.ep-reisen.de',
|
||||
]);
|
||||
|
||||
$response = $controller->rooms($request);
|
||||
|
||||
$this->assertSame(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
private function createController(
|
||||
ContingentDataService $contingentDataService,
|
||||
TravelDataProvider $travelDataProvider,
|
||||
): ContingentController {
|
||||
$controller = new ContingentController($contingentDataService, $travelDataProvider);
|
||||
|
||||
$container = new Container();
|
||||
$container->set('serializer', new Serializer([new ObjectNormalizer()], [new JsonEncoder()]));
|
||||
$controller->setContainer($container);
|
||||
|
||||
return $controller;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user