public function testToFieldValue()
{
$storageFieldValue = new StorageFieldValue();
$storageFieldValue->dataText = <<<EOT
<?xml version="1.0" encoding="utf-8"?>
<ezauthor>
<authors>
<author id="1" name="Boba Fett" email="[email protected]"/>
<author id="2" name="Darth Vader" email="[email protected]"/>
<author id="3" name="Luke Skywalker" email="[email protected]"/>
</authors>
</ezauthor>
EOT;
$doc = new DOMDocument('1.0', 'utf-8');
self::assertTrue($doc->loadXML($storageFieldValue->dataText));
$authorsXml = $doc->getElementsByTagName('author');
$fieldValue = new FieldValue();
$this->converter->toFieldValue($storageFieldValue, $fieldValue);
self::assertInternalType('array', $fieldValue->data);
$authorsXml = $doc->getElementsByTagName('author');
self::assertSame($authorsXml->length, count($fieldValue->data));
$aAuthors = $fieldValue->data;
foreach ($fieldValue->data as $i => $author) {
foreach ($authorsXml as $authorXml) {
if ($authorXml->getAttribute('id') == $author['id']) {
self::assertSame($authorXml->getAttribute('name'), $author['name']);
self::assertSame($authorXml->getAttribute('email'), $author['email']);
unset($aAuthors[$i]);
break;
}
}
}
self::assertEmpty($aAuthors, 'All authors have not been converted as expected from storage');
}