132 lines
2.7 KiB
PHP
132 lines
2.7 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
||
|
|
||
|
use Doctrine\Common\Collections\ArrayCollection;
|
||
|
use Doctrine\Tests\Models\CMS\CmsUser;
|
||
|
use Doctrine\Tests\Models\CMS\CmsGroup;
|
||
|
|
||
|
require_once __DIR__ . '/../../../TestInit.php';
|
||
|
|
||
|
class DDC1258Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
||
|
{
|
||
|
public function setUp()
|
||
|
{
|
||
|
parent::setUp();
|
||
|
$this->_schemaTool->createSchema(array(
|
||
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\TestEntity'),
|
||
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\TestAdditionalEntity')
|
||
|
));
|
||
|
}
|
||
|
|
||
|
public function testIssue()
|
||
|
{
|
||
|
$testEntity = new TestEntity();
|
||
|
$testEntity->setValue(3);
|
||
|
$testEntity->setAdditional(new TestAdditionalEntity());
|
||
|
$this->_em->persist($testEntity);
|
||
|
$this->_em->flush();
|
||
|
$this->_em->clear();
|
||
|
|
||
|
// So here the value is 3
|
||
|
$this->assertEquals(3, $testEntity->getValue());
|
||
|
|
||
|
$test = $this->_em->getRepository(__NAMESPACE__ . '\TestEntity')->find(1);
|
||
|
|
||
|
// New value is set
|
||
|
$test->setValue(5);
|
||
|
|
||
|
// So here the value is 5
|
||
|
$this->assertEquals(5, $test->getValue());
|
||
|
|
||
|
// Get the additional entity
|
||
|
$additional = $test->getAdditional();
|
||
|
|
||
|
// Still 5..
|
||
|
$this->assertEquals(5, $test->getValue());
|
||
|
|
||
|
// Force the proxy to load
|
||
|
$additional->getBool();
|
||
|
|
||
|
// The value should still be 5
|
||
|
$this->assertEquals(5, $test->getValue());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @Entity
|
||
|
*/
|
||
|
class TestEntity
|
||
|
{
|
||
|
/**
|
||
|
* @Id
|
||
|
* @Column(type="integer")
|
||
|
* @GeneratedValue(strategy="AUTO")
|
||
|
*/
|
||
|
protected $id;
|
||
|
/**
|
||
|
* @Column(type="integer")
|
||
|
*/
|
||
|
protected $value;
|
||
|
/**
|
||
|
* @OneToOne(targetEntity="TestAdditionalEntity", inversedBy="entity", orphanRemoval=true, cascade={"persist", "remove"})
|
||
|
*/
|
||
|
protected $additional;
|
||
|
|
||
|
public function getValue()
|
||
|
{
|
||
|
return $this->value;
|
||
|
}
|
||
|
|
||
|
public function setValue($value)
|
||
|
{
|
||
|
$this->value = $value;
|
||
|
}
|
||
|
|
||
|
public function getAdditional()
|
||
|
{
|
||
|
return $this->additional;
|
||
|
}
|
||
|
|
||
|
public function setAdditional($additional)
|
||
|
{
|
||
|
$this->additional = $additional;
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* @Entity
|
||
|
*/
|
||
|
class TestAdditionalEntity
|
||
|
{
|
||
|
/**
|
||
|
* @Id
|
||
|
* @Column(type="integer")
|
||
|
* @GeneratedValue(strategy="AUTO")
|
||
|
*/
|
||
|
protected $id;
|
||
|
/**
|
||
|
* @OneToOne(targetEntity="TestEntity", mappedBy="additional")
|
||
|
*/
|
||
|
protected $entity;
|
||
|
/**
|
||
|
* @Column(type="boolean")
|
||
|
*/
|
||
|
protected $bool;
|
||
|
|
||
|
public function __construct()
|
||
|
{
|
||
|
$this->bool = false;
|
||
|
}
|
||
|
|
||
|
public function getBool()
|
||
|
{
|
||
|
return $this->bool;
|
||
|
}
|
||
|
|
||
|
public function setBool($bool)
|
||
|
{
|
||
|
$this->bool = $bool;
|
||
|
}
|
||
|
}
|