YamlMappingDriverTest.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 YamlMappingDriverTest extends AbstractMappingDriverTest
  8. {
  9. protected function _loadDriver()
  10. {
  11. if (!class_exists('Symfony\Component\Yaml\Yaml', true)) {
  12. $this->markTestSkipped('Please install Symfony YAML Component into the include path of your PHP installation.');
  13. }
  14. return new YamlDriver(__DIR__ . DIRECTORY_SEPARATOR . 'yaml');
  15. }
  16. /**
  17. * @group DDC-671
  18. *
  19. * Entities for this test are in AbstractMappingDriverTest
  20. */
  21. public function testJoinTablesWithMappedSuperclassForYamlDriver()
  22. {
  23. $yamlDriver = $this->_loadDriver();
  24. $yamlDriver->addPaths(array(__DIR__ . DIRECTORY_SEPARATOR . 'yaml'));
  25. $em = $this->_getTestEntityManager();
  26. $em->getConfiguration()->setMetadataDriverImpl($yamlDriver);
  27. $factory = new \Doctrine\ORM\Mapping\ClassMetadataFactory();
  28. $factory->setEntityManager($em);
  29. $classPage = new ClassMetadata('Doctrine\Tests\Models\DirectoryTree\File');
  30. $classPage = $factory->getMetadataFor('Doctrine\Tests\Models\DirectoryTree\File');
  31. $this->assertEquals('Doctrine\Tests\Models\DirectoryTree\File', $classPage->associationMappings['parentDirectory']['sourceEntity']);
  32. $classDirectory = new ClassMetadata('Doctrine\Tests\Models\DirectoryTree\Directory');
  33. $classDirectory = $factory->getMetadataFor('Doctrine\Tests\Models\DirectoryTree\Directory');
  34. $this->assertEquals('Doctrine\Tests\Models\DirectoryTree\Directory', $classDirectory->associationMappings['parentDirectory']['sourceEntity']);
  35. }
  36. /**
  37. * @group DDC-1468
  38. *
  39. * @expectedException Doctrine\ORM\Mapping\MappingException
  40. * @expectedExceptionMessage Invalid mapping file 'Doctrine.Tests.Models.Generic.SerializationModel.dcm.yml' for class 'Doctrine\Tests\Models\Generic\SerializationModel'.
  41. */
  42. public function testInvalidMappingFileException()
  43. {
  44. $this->createClassMetadata('Doctrine\Tests\Models\Generic\SerializationModel');
  45. }
  46. }