XmlMappingDriverTest.php 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace Doctrine\Tests\ORM\Mapping;
  3. use Doctrine\ORM\Mapping\ClassMetadata,
  4. Doctrine\ORM\Mapping\Driver\XmlDriver,
  5. Doctrine\ORM\Mapping\Driver\YamlDriver;
  6. require_once __DIR__ . '/../../TestInit.php';
  7. class XmlMappingDriverTest extends AbstractMappingDriverTest
  8. {
  9. protected function _loadDriver()
  10. {
  11. return new XmlDriver(__DIR__ . DIRECTORY_SEPARATOR . 'xml');
  12. }
  13. public function testClassTableInheritanceDiscriminatorMap()
  14. {
  15. $className = 'Doctrine\Tests\ORM\Mapping\CTI';
  16. $mappingDriver = $this->_loadDriver();
  17. $class = new ClassMetadata($className);
  18. $mappingDriver->loadMetadataForClass($className, $class);
  19. $expectedMap = array(
  20. "foo" => "Doctrine\Tests\ORM\Mapping\CTIFoo",
  21. "bar" => "Doctrine\Tests\ORM\Mapping\CTIBar",
  22. "baz" => "Doctrine\Tests\ORM\Mapping\CTIBaz",
  23. );
  24. $this->assertEquals(3, count($class->discriminatorMap));
  25. $this->assertEquals($expectedMap, $class->discriminatorMap);
  26. }
  27. /**
  28. * @param string $xmlMappingFile
  29. * @dataProvider dataValidSchema
  30. */
  31. public function testValidateXmlSchema($xmlMappingFile)
  32. {
  33. $xsdSchemaFile = __DIR__ . "/../../../../../doctrine-mapping.xsd";
  34. $dom = new \DOMDocument('UTF-8');
  35. $dom->load($xmlMappingFile);
  36. $this->assertTrue($dom->schemaValidate($xsdSchemaFile));
  37. }
  38. static public function dataValidSchema()
  39. {
  40. return array(
  41. array(__DIR__ . "/xml/Doctrine.Tests.ORM.Mapping.CTI.dcm.xml"),
  42. array(__DIR__ . "/xml/Doctrine.Tests.ORM.Mapping.User.dcm.xml"),
  43. array(__DIR__ . "/xml/CatNoId.dcm.xml"),
  44. );
  45. }
  46. }
  47. class CTI
  48. {
  49. public $id;
  50. }
  51. class CTIFoo extends CTI {}
  52. class CTIBar extends CTI {}
  53. class CTIBaz extends CTI {}