-
-
Save doctrinebot/7276b066b8bdf7deab7b to your computer and use it in GitHub Desktop.
Attachments to Doctrine Jira Issue DDC-1509 - https://github.com/doctrine/doctrine2/issues/2139
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Doctrine\Tests\ORM\Functional\Ticket; | |
use Doctrine\ORM\UnitOfWork; | |
require_once __DIR__ . '/../../../TestInit.php'; | |
class DDC1509Test extends \Doctrine\Tests\OrmFunctionalTestCase | |
{ | |
protected function setUp() | |
{ | |
parent::setUp(); | |
try { | |
$this->_schemaTool->createSchema(array( | |
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1509AbstractFile'), | |
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1509File'), | |
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1509Picture'), | |
)); | |
} catch(\Exception $ignored) {} | |
} | |
public function testFailingCase() | |
{ | |
// if (version_compare(\Doctrine\ORM\Version::VERSION, '2.1.4', 'lt')) { | |
// self::markTestSkipped("Is not working in Doctrine ORM 2.1.3"); | |
// } | |
// Remove all data so we can count in the end | |
$this->_em->createQuery("DELETE FROM " . __NAMESPACE__ . '\DDC1509Picture')->execute(); | |
$this->_em->createQuery("DELETE FROM " . __NAMESPACE__ . '\DDC1509File')->execute(); | |
$this->_em->createQuery("DELETE FROM " . __NAMESPACE__ . '\DDC1509AbstractFile')->execute(); | |
$file = new DDC1509File; | |
$thumbnail = new DDC1509File; | |
$picture = new DDC1509Picture; | |
$picture->setFile($file); | |
$picture->setThumbnail($thumbnail); | |
/* @var $em \Doctrine\ORM\EntityManager */ | |
$em = $this->_em; | |
$em->persist($picture); | |
$em->flush(); | |
$em->clear(); | |
$id = $picture->getPictureId(); | |
$pic = $em->merge($picture); | |
/* @var $pic DDC1509Picture */ | |
self::assertNotNull($pic->getThumbnail()); | |
self::assertNotNull($pic->getFile()); | |
} | |
} | |
/** | |
* @Entity | |
*/ | |
class DDC1509Picture | |
{ | |
/** | |
* @Column(type="integer") | |
* @Id | |
* @GeneratedValue(strategy="AUTO") | |
*/ | |
private $id; | |
/** | |
* @ManyToOne(targetEntity="DDC1509AbstractFile", cascade={"persist", "remove"}) | |
*/ | |
private $thumbnail; | |
/** | |
* @ManyToOne(targetEntity="DDC1509AbstractFile", cascade={"persist", "remove"}) | |
*/ | |
private $file; | |
/** | |
* Get pictureId | |
*/ | |
public function getPictureId() | |
{ | |
return $this->id; | |
} | |
/** | |
* Set file | |
*/ | |
public function setFile($value = null) | |
{ | |
$this->file = $value; | |
} | |
/** | |
* Get file | |
*/ | |
public function getFile() | |
{ | |
return $this->file; | |
} | |
public function getThumbnail() | |
{ | |
return $this->thumbnail; | |
} | |
public function setThumbnail($thumbnail) | |
{ | |
$this->thumbnail = $thumbnail; | |
} | |
} | |
/** | |
* @Entity | |
* @InheritanceType("SINGLE_TABLE") | |
* @DiscriminatorColumn(name="discr", type="string") | |
* @DiscriminatorMap({"file" = "DDC1509File"}) | |
*/ | |
class DDC1509AbstractFile | |
{ | |
/** | |
* @Column(type="integer") | |
* @Id | |
* @GeneratedValue(strategy="AUTO") | |
*/ | |
public $id; | |
/** | |
* Get fileId | |
*/ | |
public function getFileId() | |
{ | |
return $this->id; | |
} | |
} | |
/** | |
* @Entity | |
*/ | |
class DDC1509File extends DDC1509AbstractFile | |
{ | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment