wip: booking process, refactoring
This commit is contained in:
@@ -3,21 +3,56 @@
|
||||
namespace App\Tests\BusProNet\DataLoader;
|
||||
|
||||
use App\BusProNet\Model\Travel;
|
||||
use App\BusProNet\XmlLoader\HotelLoader;
|
||||
use App\BusProNet\XmlLoader\TravelLoader;
|
||||
use App\BusProNet\XmlParser\TravelParser;
|
||||
use League\Flysystem\FilesystemOperator;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Cache\Adapter\ArrayAdapter;
|
||||
|
||||
class TravelDataLoaderTest extends TestCase
|
||||
{
|
||||
public function testParse(): void
|
||||
public function testLoadById(): void
|
||||
{
|
||||
$loader = new TravelLoader('');
|
||||
$filename = __DIR__.'/../../Resources/travel_data.xml';
|
||||
$travelId = 11478;
|
||||
$xmlContent = '<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Export für dreipunktnull büro für mediengestaltung-->
|
||||
<reisen>
|
||||
<reise id="1" idbuspro="1234" code="DPWMP" erstellt_am="14.07.2025 15:02:01">
|
||||
<termin id="1" idbuspro="11478" idprodukt="1234" termin="06.01.2025" bis="25.01.2025" code="DPWMP060125" reiseart="F">
|
||||
<text>Davos - Sportclub Waldschlössli</text>
|
||||
<abpreis>534.2</abpreis>
|
||||
<hotel idbuspro="123">
|
||||
<text>Test Hotel</text>
|
||||
</hotel>
|
||||
</termin>
|
||||
</reise>
|
||||
</reisen>';
|
||||
|
||||
$xml = $loader->loadById($travelId, $filename);
|
||||
$this->assertInstanceOf(\SimpleXMLElement::class, $xml);
|
||||
$filesystem = $this->createMock(FilesystemOperator::class);
|
||||
$filesystem->expects($this->once())
|
||||
->method('read')
|
||||
->with('test_file.xml')
|
||||
->willReturn($xmlContent);
|
||||
|
||||
$travel = $loader->parseXml($xml);
|
||||
$hotelLoader = $this->createMock(HotelLoader::class);
|
||||
$travelParser = $this->createMock(TravelParser::class);
|
||||
|
||||
$expectedTravel = new Travel();
|
||||
$expectedTravel->code = 'DPWMP060125';
|
||||
$expectedTravel->type = 'F';
|
||||
$expectedTravel->dateFrom = new \DateTimeImmutable('2025-01-06');
|
||||
$expectedTravel->dateTo = new \DateTimeImmutable('2025-01-25');
|
||||
$expectedTravel->label = 'Davos - Sportclub Waldschlössli';
|
||||
$expectedTravel->priceFrom = 534.2;
|
||||
|
||||
$travelParser->expects($this->once())
|
||||
->method('parse')
|
||||
->willReturn($expectedTravel);
|
||||
|
||||
$cache = new ArrayAdapter();
|
||||
$loader = new TravelLoader($hotelLoader, $travelParser, 'http://example.com', $cache, $filesystem);
|
||||
|
||||
$travel = $loader->loadById(11478, null, 'test_file.xml');
|
||||
|
||||
$this->assertInstanceOf(Travel::class, $travel);
|
||||
$this->assertEquals('DPWMP060125', $travel->code);
|
||||
@@ -26,11 +61,5 @@ class TravelDataLoaderTest extends TestCase
|
||||
$this->assertInstanceOf(\DateTimeImmutable::class, $travel->dateTo);
|
||||
$this->assertEquals('Davos - Sportclub Waldschlössli', $travel->label);
|
||||
$this->assertEquals(534.2, $travel->priceFrom);
|
||||
|
||||
$this->assertCount(8, $travel->selectionGroups);
|
||||
$this->assertCount(27, $travel->additionalServices);
|
||||
$this->assertCount(5, $travel->transportationServices);
|
||||
$this->assertCount(7, $travel->pickupsTo);
|
||||
$this->assertCount(12, $travel->rooms);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user