123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?php
- namespace Doctrine\Tests\ORM\Functional\Ticket;
- use Doctrine\ORM\UnitOfWork;
- require_once __DIR__ . '/../../../TestInit.php';
- /**
- * @group DDC-1392
- */
- class DDC1392Test extends \Doctrine\Tests\OrmFunctionalTestCase
- {
- protected function setUp()
- {
- parent::setUp();
- try {
- $this->_schemaTool->createSchema(array(
- $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1392File'),
- $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1392Picture'),
- ));
- } catch (\Exception $ignored) {
- }
- }
- public function testFailingCase()
- {
- $file = new DDC1392File;
- $picture = new DDC1392Picture;
- $picture->setFile($file);
- $em = $this->_em;
- $em->persist($picture);
- $em->flush();
- $em->clear();
- $fileId = $file->getFileId();
- $pictureId = $picture->getPictureId();
- $this->assertTrue($fileId > 0);
- $picture = $em->find(__NAMESPACE__ . '\DDC1392Picture', $pictureId);
- $this->assertEquals(UnitOfWork::STATE_MANAGED, $em->getUnitOfWork()->getEntityState($picture->getFile()), "Lazy Proxy should be marked MANAGED.");
- $file = $picture->getFile();
- // With this activated there will be no problem
- //$file->__load();
- $picture->setFile(null);
- $em->clear();
- $em->merge($file);
- $em->flush();
- $q = $this->_em->createQuery("SELECT COUNT(e) FROM " . __NAMESPACE__ . '\DDC1392File e');
- $result = $q->getSingleScalarResult();
- self::assertEquals(1, $result);
- }
- }
- /**
- * @Entity
- */
- class DDC1392Picture
- {
- /**
- * @Column(name="picture_id", type="integer")
- * @Id @GeneratedValue
- */
- private $pictureId;
- /**
- * @ManyToOne(targetEntity="DDC1392File", cascade={"persist", "remove"})
- * @JoinColumn(name="file_id", referencedColumnName="file_id")
- */
- private $file;
- /**
- * Get pictureId
- */
- public function getPictureId()
- {
- return $this->pictureId;
- }
- /**
- * Set file
- */
- public function setFile($value = null)
- {
- $this->file = $value;
- }
- /**
- * Get file
- */
- public function getFile()
- {
- return $this->file;
- }
- }
- /**
- * @Entity
- */
- class DDC1392File
- {
- /**
- * @Column(name="file_id", type="integer")
- * @Id
- * @GeneratedValue(strategy="AUTO")
- */
- public $fileId;
- /**
- * Get fileId
- */
- public function getFileId()
- {
- return $this->fileId;
- }
- }
|