3 namespace Doctrine\Tests\ORM\Functional\Ticket;
4 use Doctrine\ORM\UnitOfWork;
6 require_once __DIR__ . '/../../../TestInit.php';
8 class DDC353Test extends \Doctrine\Tests\OrmFunctionalTestCase
10 protected function setUp()
14 $this->_schemaTool->createSchema(array(
15 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC353File'),
16 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC353Picture'),
18 } catch(\Exception $ignored) {}
21 public function testWorkingCase()
23 $file = new DDC353File;
25 $picture = new DDC353Picture;
26 $picture->setFile($file);
29 $em->persist($picture);
33 $fileId = $file->getFileId();
34 $this->assertTrue($fileId > 0);
36 $file = $em->getReference('Doctrine\Tests\ORM\Functional\Ticket\DDC353File', $fileId);
37 $this->assertEquals(UnitOfWork::STATE_MANAGED, $em->getUnitOfWork()->getEntityState($file), "Reference Proxy should be marked MANAGED.");
39 $picture = $em->find('Doctrine\Tests\ORM\Functional\Ticket\DDC353Picture', $picture->getPictureId());
40 $this->assertEquals(UnitOfWork::STATE_MANAGED, $em->getUnitOfWork()->getEntityState($picture->getFile()), "Lazy Proxy should be marked MANAGED.");
42 $em->remove($picture);
46 public function testFailingCase()
48 $file = new DDC353File;
50 $picture = new DDC353Picture;
51 $picture->setFile($file);
54 $em->persist($picture);
58 $fileId = $file->getFileId();
59 $pictureId = $picture->getPictureId();
61 $this->assertTrue($fileId > 0);
63 $picture = $em->find('Doctrine\Tests\ORM\Functional\Ticket\DDC353Picture', $pictureId);
64 $this->assertEquals(UnitOfWork::STATE_MANAGED, $em->getUnitOfWork()->getEntityState($picture->getFile()), "Lazy Proxy should be marked MANAGED.");
66 $em->remove($picture);
77 * @Column(name="picture_id", type="integer")
83 * @ManyToOne(targetEntity="DDC353File", cascade={"persist", "remove"})
85 * @JoinColumn(name="file_id", referencedColumnName="file_id")
93 public function getPictureId()
95 return $this->pictureId;
101 public function setProduct($value)
103 $this->product = $value;
109 public function getProduct()
111 return $this->product;
117 public function setFile($value)
119 $this->file = $value;
125 public function getFile()
137 * @Column(name="file_id", type="integer")
139 * @GeneratedValue(strategy="AUTO")
146 public function getFileId()
148 return $this->fileId;