/** @test */ public function itShouldParseMessedUpKeys() { $xmlString = '<data> <items> <item index="2">a</item> <item index="5">b</item> <item index="44">c</item> <bla>d</bla> <item index="9">e</item> </items> </data>'; $parser = new Parser(); $parser->setPluralizer(function ($string) { return $string . 's'; }); $data = $parser->parse($xmlString); $this->assertEquals(['data' => ['items' => [2 => 'a', 5 => 'b', 44 => 'c', 'bla' => 'd', 9 => 'e']]], $data); $xml = '<data> <item key="22">guff</item> <item key="2">more guff</item> </data>'; $parser = new Parser(); $parser->setIndexAttributeKey('key'); $parser->setIndexKey('item'); $data = $parser->parse($xml); $this->assertEquals(['data' => [22 => 'guff', 2 => 'more guff']], $data); $xml = '<data> <item index="22">guff</item> <item index="2">more guff</item> </data>'; $parser = new Parser(); $parser->setIndexKey('item'); $data = $parser->parse($xml); $this->assertEquals(['data' => [22 => 'guff', 2 => 'more guff']], $data); }