123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <?php
- namespace Doctrine\Tests\ORM\Functional\Ticket;
- use Doctrine\ORM\UnitOfWork;
- /**
- * @group DDC-1509
- */
- 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()
- {
- $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 */
- $this->assertNotNull($pic->getThumbnail());
- $this->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
- {
- }
|