wip: submit booking to api
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Tests\BusProNet\XmlParser;
|
||||
|
||||
use App\BusProNet\XmlParser\AgencyParser;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\DomCrawler\Crawler;
|
||||
|
||||
class AgencyParserTest extends TestCase
|
||||
{
|
||||
private AgencyParser $parser;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->parser = new AgencyParser();
|
||||
}
|
||||
|
||||
public function testParseAgencies(): void
|
||||
{
|
||||
$xmlContent = '<?xml version="1.0" encoding="utf-8"?>
|
||||
<ergebnis>
|
||||
<satz typ="AGENTUREN" />
|
||||
<agenturen>
|
||||
<agentur id="124487">
|
||||
<name>ADAC Hansa e.V.</name>
|
||||
<code>295</code>
|
||||
<strasse>Musterstr. 123</strasse>
|
||||
<plz>99999</plz>
|
||||
<ort>Musterort</ort>
|
||||
<telefon>0361-442930</telefon>
|
||||
</agentur>
|
||||
<agentur id="75861">
|
||||
<name>ADAC im Fördepark</name>
|
||||
<code>103</code>
|
||||
<strasse>Sebastianusstr. 24</strasse>
|
||||
<plz>41468</plz>
|
||||
<ort>Neuss</ort>
|
||||
</agentur>
|
||||
</agenturen>
|
||||
</ergebnis>';
|
||||
|
||||
$crawler = new Crawler($xmlContent);
|
||||
$resultNode = $crawler->filterXPath('//ergebnis');
|
||||
$agencies = $this->parser->parse($resultNode);
|
||||
|
||||
$this->assertCount(2, $agencies);
|
||||
|
||||
// Test first agency (complete data)
|
||||
$this->assertEquals(124487, $agencies[0]->id);
|
||||
$this->assertEquals('ADAC Hansa e.V.', $agencies[0]->name);
|
||||
$this->assertEquals('295', $agencies[0]->code);
|
||||
$this->assertEquals('Musterstr. 123', $agencies[0]->street);
|
||||
$this->assertEquals('99999', $agencies[0]->postCode);
|
||||
$this->assertEquals('Musterort', $agencies[0]->city);
|
||||
$this->assertEquals('0361-442930', $agencies[0]->phone);
|
||||
|
||||
// Test second agency (missing phone)
|
||||
$this->assertEquals(75861, $agencies[1]->id);
|
||||
$this->assertEquals('ADAC im Fördepark', $agencies[1]->name);
|
||||
$this->assertEquals('103', $agencies[1]->code);
|
||||
$this->assertEquals('Sebastianusstr. 24', $agencies[1]->street);
|
||||
$this->assertEquals('41468', $agencies[1]->postCode);
|
||||
$this->assertEquals('Neuss', $agencies[1]->city);
|
||||
$this->assertNull($agencies[1]->phone);
|
||||
}
|
||||
|
||||
public function testParseMinimalAgency(): void
|
||||
{
|
||||
$xmlContent = '<?xml version="1.0" encoding="utf-8"?>
|
||||
<ergebnis>
|
||||
<satz typ="AGENTUREN" />
|
||||
<agenturen>
|
||||
<agentur id="12345">
|
||||
<name>Test Agency</name>
|
||||
<code>001</code>
|
||||
</agentur>
|
||||
</agenturen>
|
||||
</ergebnis>';
|
||||
|
||||
$crawler = new Crawler($xmlContent);
|
||||
$resultNode = $crawler->filterXPath('//ergebnis');
|
||||
$agencies = $this->parser->parse($resultNode);
|
||||
|
||||
$this->assertCount(1, $agencies);
|
||||
$this->assertEquals(12345, $agencies[0]->id);
|
||||
$this->assertEquals('Test Agency', $agencies[0]->name);
|
||||
$this->assertEquals('001', $agencies[0]->code);
|
||||
$this->assertNull($agencies[0]->street);
|
||||
$this->assertNull($agencies[0]->postCode);
|
||||
$this->assertNull($agencies[0]->city);
|
||||
$this->assertNull($agencies[0]->phone);
|
||||
}
|
||||
|
||||
public function testParseEmptyAgenciesList(): void
|
||||
{
|
||||
$xmlContent = '<?xml version="1.0" encoding="utf-8"?>
|
||||
<ergebnis>
|
||||
<satz typ="AGENTUREN" />
|
||||
<agenturen>
|
||||
</agenturen>
|
||||
</ergebnis>';
|
||||
|
||||
$crawler = new Crawler($xmlContent);
|
||||
$resultNode = $crawler->filterXPath('//ergebnis');
|
||||
$agencies = $this->parser->parse($resultNode);
|
||||
|
||||
$this->assertCount(0, $agencies);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user