2010-02-01 21:48:27 +00:00
< ? php
namespace Doctrine\Tests\ORM\Mapping ;
use Doctrine\ORM\Mapping\ClassMetadata ,
Doctrine\ORM\Mapping\Driver\XmlDriver ,
Doctrine\ORM\Mapping\Driver\YamlDriver ;
require_once __DIR__ . '/../../TestInit.php' ;
class YamlMappingDriverTest extends AbstractMappingDriverTest
{
protected function _loadDriver ()
{
2010-08-23 08:21:41 +02:00
if ( ! class_exists ( 'Symfony\Component\Yaml\Yaml' , true )) {
2010-04-07 20:35:33 +02:00
$this -> markTestSkipped ( 'Please install Symfony YAML Component into the include path of your PHP installation.' );
}
2010-02-01 21:48:27 +00:00
return new YamlDriver ( __DIR__ . DIRECTORY_SEPARATOR . 'yaml' );
}
2010-09-16 22:27:04 +02:00
2010-09-21 23:14:45 +02:00
/**
* @ group DDC - 671
*
* Entities for this test are in AbstractMappingDriverTest
*/
2010-09-16 22:27:04 +02:00
public function testJoinTablesWithMappedSuperclassForYamlDriver ()
{
2010-07-06 20:19:43 +02:00
$em = $this -> _getTestEntityManager ();
2010-09-21 23:14:45 +02:00
$em -> getConfiguration () -> setMetadataDriverImpl ( $this -> _loadDriver ());
2010-09-20 19:23:41 +02:00
2010-09-21 23:14:45 +02:00
$classPage = $em -> getClassMetadata ( 'Doctrine\Tests\ORM\Mapping\Page' );
$this -> assertEquals ( 'Doctrine\Tests\ORM\Mapping\Page' , $classPage -> associationMappings [ 'parentDirectory' ][ 'sourceEntity' ]);
$classDirectory = $em -> getClassMetadata ( 'Doctrine\Tests\ORM\Mapping\Directory' );
$this -> assertEquals ( 'Doctrine\Tests\ORM\Mapping\Directory' , $classDirectory -> associationMappings [ 'parentDirectory' ][ 'sourceEntity' ]);
2010-09-20 19:23:41 +02:00
$dql = " SELECT f FROM Doctrine \T ests \ ORM \ Mapping \ Page f JOIN f.parentDirectory d " .
" WHERE (d.url = :url) AND (f.extension = :extension) " ;
$query = $em -> createQuery ( $dql )
-> setParameter ( 'url' , " test " )
-> setParameter ( 'extension' , " extension " );
2010-09-21 23:14:45 +02:00
$this -> assertEquals (
'SELECT c0_.id AS id0, c0_.extension AS extension1, c0_.parent_directory_id AS parent_directory_id2 FROM core_content_pages c0_ INNER JOIN core_content_directories c1_ ON c0_.parent_directory_id = c1_.id WHERE (c1_.url = ?) AND (c0_.extension = ?)' ,
$query -> getSql ()
);
2010-07-06 20:19:43 +02:00
}
2010-09-16 22:27:04 +02:00
2010-07-06 20:19:43 +02:00
}