diff --git a/lib/Doctrine/ORM/Tools/Export/Driver/XmlExporter.php b/lib/Doctrine/ORM/Tools/Export/Driver/XmlExporter.php index 1a8fde184..150fc9b40 100644 --- a/lib/Doctrine/ORM/Tools/Export/Driver/XmlExporter.php +++ b/lib/Doctrine/ORM/Tools/Export/Driver/XmlExporter.php @@ -193,7 +193,7 @@ class XmlExporter extends AbstractExporter } if (isset($field['unique']) && $field['unique']) { - $fieldXml->addAttribute('unique', $field['unique']); + $fieldXml->addAttribute('unique', $field['unique'] ? 'true' : 'false'); } if (isset($field['options'])) { diff --git a/tests/Doctrine/Tests/ORM/Tools/Export/AbstractClassMetadataExporterTest.php b/tests/Doctrine/Tests/ORM/Tools/Export/AbstractClassMetadataExporterTest.php index 060345c83..229b3d67a 100644 --- a/tests/Doctrine/Tests/ORM/Tools/Export/AbstractClassMetadataExporterTest.php +++ b/tests/Doctrine/Tests/ORM/Tools/Export/AbstractClassMetadataExporterTest.php @@ -209,6 +209,27 @@ abstract class AbstractClassMetadataExporterTest extends \Doctrine\Tests\OrmTest return $class; } + /** + * @depends testExportDirectoryAndFilesAreCreated + */ + public function testFieldsAreProperlySerialized() + { + $type = $this->_getType(); + if ($type == 'xml') { + $xml = simplexml_load_file(__DIR__ . '/export/'.$type.'/Doctrine.Tests.ORM.Tools.Export.ExportedUser.dcm.xml'); + + $xml->registerXPathNamespace("d", "http://doctrine-project.org/schemas/orm/doctrine-mapping"); + $nodes = $xml->xpath("/d:doctrine-mapping/d:entity/d:field[@name='name' and @type='string' and @nullable='true']"); + $this->assertEquals(1, count($nodes)); + + $nodes = $xml->xpath("/d:doctrine-mapping/d:entity/d:field[@name='name' and @type='string' and @unique='true']"); + $this->assertEquals(1, count($nodes)); + } + else { + $this->markTestSkipped('Test available only for '.$type.' driver'); + } + } + /** * @depends testFieldsAreExported * @param ClassMetadataInfo $class