parser = new AgencyParser(); } public function testParseAgencies(): void { $xmlContent = ' ADAC Hansa e.V. 295 Musterstr. 123 99999 Musterort 0361-442930 ADAC im Fördepark 103 Sebastianusstr. 24 41468 Neuss '; $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 = ' Test Agency 001 '; $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 = ' '; $crawler = new Crawler($xmlContent); $resultNode = $crawler->filterXPath('//ergebnis'); $agencies = $this->parser->parse($resultNode); $this->assertCount(0, $agencies); } }