2013-01-10 19:10:29 +04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
|
|
|
|
|
|
|
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
|
|
|
|
|
|
|
|
use Doctrine\Common\Persistence\ObjectManager;
|
|
|
|
|
|
|
|
use Doctrine\Common\Persistence\ObjectManagerAware;
|
|
|
|
|
|
|
|
require_once __DIR__ . '/../../../TestInit.php';
|
|
|
|
|
2013-01-12 13:29:11 +04:00
|
|
|
/**
|
|
|
|
* @group DDC-2231
|
|
|
|
*/
|
|
|
|
class DDC2231Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
2013-01-10 19:10:29 +04:00
|
|
|
{
|
|
|
|
protected function setUp()
|
|
|
|
{
|
|
|
|
parent::setUp();
|
|
|
|
$this->_schemaTool->createSchema(array(
|
|
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC2231EntityY'),
|
|
|
|
));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testInjectObjectManagerInProxyIfInitializedInUow()
|
|
|
|
{
|
2013-01-12 13:29:11 +04:00
|
|
|
$y1 = new DDC2231EntityY;
|
2013-01-10 19:10:29 +04:00
|
|
|
|
2013-01-12 13:29:11 +04:00
|
|
|
$this->_em->persist($y1);
|
2013-01-10 19:10:29 +04:00
|
|
|
|
|
|
|
$this->_em->flush();
|
|
|
|
$this->_em->clear();
|
|
|
|
|
2013-01-12 13:29:11 +04:00
|
|
|
$y1ref = $this->_em->getReference(get_class($y1), $y1->id);
|
2013-01-10 19:10:29 +04:00
|
|
|
|
|
|
|
$this->assertInstanceOf('Doctrine\ORM\Proxy\Proxy', $y1ref);
|
|
|
|
$this->assertFalse($y1ref->__isInitialized__);
|
|
|
|
|
2013-01-12 13:29:11 +04:00
|
|
|
$id = $y1ref->doSomething();
|
2013-01-10 19:10:29 +04:00
|
|
|
|
2013-01-12 13:29:11 +04:00
|
|
|
$this->assertTrue($y1ref->__isInitialized__);
|
|
|
|
$this->assertEquals($this->_em, $y1ref->om);
|
2013-01-10 19:10:29 +04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/** @Entity @Table(name="ddc2231_y") */
|
|
|
|
class DDC2231EntityY implements ObjectManagerAware
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @Id @Column(type="integer") @GeneratedValue
|
|
|
|
*/
|
|
|
|
public $id;
|
|
|
|
|
|
|
|
public $om;
|
|
|
|
|
2013-01-12 13:29:11 +04:00
|
|
|
public function injectObjectManager(ObjectManager $objectManager, ClassMetadata $classMetadata)
|
|
|
|
{
|
2013-01-10 19:10:29 +04:00
|
|
|
$this->om = $objectManager;
|
|
|
|
}
|
2013-01-12 13:29:11 +04:00
|
|
|
|
|
|
|
public function getId()
|
|
|
|
{
|
|
|
|
return $this->id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function doSomething()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
}
|