eZ\Publish\Core\Persistence\Legacy\Tests\Content\FieldValue\Converter\AuthorTest::testToStorageValue PHP Method

testToStorageValue() public method

public testToStorageValue ( )
    public function testToStorageValue()
    {
        $value = new FieldValue();
        $value->data = $this->authors;
        $storageFieldValue = new StorageFieldValue();
        $this->converter->toStorageValue($value, $storageFieldValue);
        $doc = new DOMDocument('1.0', 'utf-8');
        self::assertTrue($doc->loadXML($storageFieldValue->dataText));
        $authorsXml = $doc->getElementsByTagName('author');
        self::assertSame(count($this->authors), $authorsXml->length);
        // Loop against XML nodes and compare them to the real Author objects.
        // Then remove Author from $this->authors
        // This way, we can check if all authors have been converted in XML
        foreach ($authorsXml as $authorXml) {
            foreach ($this->authors as $i => $author) {
                if ($authorXml->getAttribute('id') == $author['id']) {
                    self::assertSame($author['name'], $authorXml->getAttribute('name'));
                    self::assertSame($author['email'], $authorXml->getAttribute('email'));
                    unset($this->authors[$i]);
                    break;
                }
            }
        }
        self::assertEmpty($this->authors, 'All authors have not been converted as expected');
    }