DDC-671 - Fetch YamlMappingDriverTest from Shurakais remote branch
This commit is contained in:
commit
8a92bf075b
@ -18,4 +18,73 @@ class YamlMappingDriverTest extends AbstractMappingDriverTest
|
|||||||
|
|
||||||
return new YamlDriver(__DIR__ . DIRECTORY_SEPARATOR . 'yaml');
|
return new YamlDriver(__DIR__ . DIRECTORY_SEPARATOR . 'yaml');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testJoinTablesWithMappedSuperclassForYamlDriver()
|
||||||
|
{
|
||||||
|
$em = $this->_getTestEntityManager();
|
||||||
|
$em->getConfiguration()->setMetadataDriverImpl(new \Doctrine\ORM\Mapping\Driver\YamlDriver(__DIR__ . '/yaml/'));
|
||||||
|
$qb = $em->createQueryBuilder();
|
||||||
|
|
||||||
|
$qb->select('f')
|
||||||
|
->from('Doctrine\Tests\ORM\Mapping\Page', 'f')
|
||||||
|
->join('f.parentDirectory', 'd')
|
||||||
|
->where(
|
||||||
|
$qb->expr()->andx(
|
||||||
|
$qb->expr()->eq('d.url', ':url'),
|
||||||
|
$qb->expr()->eq('f.extension', ':extension')
|
||||||
|
)
|
||||||
|
)
|
||||||
|
->setParameter('url', "test")
|
||||||
|
->setParameter('filename', "filename")
|
||||||
|
->setParameter('extension', "extension");
|
||||||
|
|
||||||
|
// Is there a way to generalize this more? (Instead of a2_., check if the table prefix in the ON clause is set within a FROM or JOIN clause..)
|
||||||
|
$this->assertTrue(strpos($qb->getQuery()->getSql(), 'a2_.') === false);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class Directory extends AbstractContentItem
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $subDirectories;
|
||||||
|
/**
|
||||||
|
* This is a collection of files that are contained in this Directory. Files, for example, could be Pages, but even other files
|
||||||
|
* like media files (css, images etc) are possible.
|
||||||
|
*
|
||||||
|
* @var \Doctrine\Common\Collections\Collection
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
protected $containedFiles;
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Page extends AbstractContentItem
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $extension = "html";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class AbstractContentItem
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Doctrine2 entity id
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
private $id;
|
||||||
|
/**
|
||||||
|
* The parent directory
|
||||||
|
* @var Directory
|
||||||
|
*/
|
||||||
|
protected $parentDirectory;
|
||||||
|
/**
|
||||||
|
* Filename (without extension) or directory name
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $name;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
Doctrine\Tests\ORM\Mapping\AbstractContentItem:
|
||||||
|
type: mappedSuperclass
|
||||||
|
table: abstract_item
|
||||||
|
id:
|
||||||
|
id:
|
||||||
|
type: integer
|
||||||
|
unsigned: true
|
||||||
|
generator:
|
||||||
|
strategy: AUTO
|
||||||
|
fields:
|
||||||
|
# FilesystemIdentifier
|
||||||
|
manyToOne:
|
||||||
|
parentDirectory:
|
||||||
|
targetEntity: Doctrine\Tests\ORM\Mapping\Directory
|
||||||
|
joinColumn:
|
||||||
|
name: parent_directory_id
|
||||||
|
referencedColumnName: id
|
@ -0,0 +1,17 @@
|
|||||||
|
Doctrine\Tests\ORM\Mapping\Directory:
|
||||||
|
type: entity
|
||||||
|
table: core_content_directories
|
||||||
|
fields:
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
length: 255
|
||||||
|
oneToMany:
|
||||||
|
subDirectories:
|
||||||
|
targetEntity: Doctrine\Tests\ORM\Mapping\Directory
|
||||||
|
mappedBy: parentDirectory
|
||||||
|
cascade:
|
||||||
|
[ all ]
|
||||||
|
containedFiles:
|
||||||
|
targetEntity: Doctrine\Tests\ORM\Mapping\Page
|
||||||
|
mappedBy: parentDirectory
|
||||||
|
cascade: [ remove ]
|
@ -0,0 +1,7 @@
|
|||||||
|
Doctrine\Tests\ORM\Mapping\Page:
|
||||||
|
type: entity
|
||||||
|
table: core_content_pages
|
||||||
|
fields:
|
||||||
|
extension:
|
||||||
|
type: string
|
||||||
|
length: 10
|
Loading…
x
Reference in New Issue
Block a user