3 namespace Doctrine\Tests\ORM\Functional\Ticket;
5 use Doctrine\Common\Collections\ArrayCollection;
6 use Doctrine\Tests\Models\CMS\CmsArticle;
7 use Doctrine\Tests\Models\CMS\CmsUser;
8 require_once __DIR__ . '/../../../TestInit.php';
13 class DDC1461Test extends \Doctrine\Tests\OrmFunctionalTestCase
15 public function setUp()
20 $this->_schemaTool->createSchema(array(
21 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1461TwitterAccount'),
22 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1461User')
24 } catch(\Exception $e) {
29 public function testChangeDetectionDeferredExplicit()
31 $user = new DDC1461User;
32 $this->_em->persist($user);
35 $this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_MANAGED, $this->_em->getUnitOfWork()->getEntityState($user, \Doctrine\ORM\UnitOfWork::STATE_NEW), "Entity should be managed.");
36 $this->assertEquals(\Doctrine\ORM\UnitOfWork::STATE_MANAGED, $this->_em->getUnitOfWork()->getEntityState($user), "Entity should be managed.");
38 $acc = new DDC1461TwitterAccount;
39 $user->twitterAccount = $acc;
41 $this->_em->persist($user);
44 $user = $this->_em->find(get_class($user), $user->id);
45 $this->assertNotNull($user->twitterAccount);
51 * @ChangeTrackingPolicy("DEFERRED_EXPLICIT")
57 * @GeneratedValue(strategy="AUTO")
58 * @Column(type="integer")
63 * @OneToOne(targetEntity="DDC1461TwitterAccount", orphanRemoval=true, fetch="EAGER", cascade = {"persist"}, inversedBy="user")
66 public $twitterAccount;
71 * @ChangeTrackingPolicy("DEFERRED_EXPLICIT")
73 class DDC1461TwitterAccount
77 * @GeneratedValue(strategy="AUTO")
78 * @Column(type="integer")
83 * @OneToOne(targetEntity="DDC1461User", fetch="EAGER")