94 lines
2.3 KiB
PHP
94 lines
2.3 KiB
PHP
<?php
|
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
|
|
|
require_once __DIR__ . '/../../../TestInit.php';
|
|
|
|
use DateTime, Doctrine\DBAL\Types\Type;
|
|
|
|
class DDC1193Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
|
{
|
|
protected function setUp()
|
|
{
|
|
parent::setUp();
|
|
//$this->_em->getConnection()->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger);
|
|
$this->_schemaTool->createSchema(array(
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1193Company'),
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1193Person'),
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1193Account')
|
|
));
|
|
}
|
|
|
|
/**
|
|
* @group DDC-1193
|
|
*/
|
|
public function testIssue()
|
|
{
|
|
$company = new DDC1193Company();
|
|
$person = new DDC1193Person();
|
|
$account = new DDC1193Account();
|
|
|
|
$person->account = $account;
|
|
$person->company = $company;
|
|
|
|
$company->member = $person;
|
|
|
|
$this->_em->persist($company);
|
|
|
|
$this->_em->flush();
|
|
|
|
$companyId = $company->id;
|
|
$accountId = $account->id;
|
|
$this->_em->clear();
|
|
|
|
$company = $this->_em->find(get_class($company), $companyId);
|
|
|
|
$this->assertTrue($this->_em->getUnitOfWork()->isInIdentityMap($company), "Company is in identity map.");
|
|
$this->assertFalse($company->member->__isInitialized__, "Pre-Condition");
|
|
$this->assertTrue($this->_em->getUnitOfWork()->isInIdentityMap($company->member), "Member is in identity map.");
|
|
|
|
$this->_em->remove($company);
|
|
$this->_em->flush();
|
|
|
|
$this->assertEquals(count($this->_em->getRepository(get_class($account))->findAll()), 0);
|
|
}
|
|
}
|
|
|
|
/** @Entity */
|
|
class DDC1193Company {
|
|
/**
|
|
* @Id @Column(type="integer")
|
|
* @GeneratedValue
|
|
*/
|
|
public $id;
|
|
|
|
/** @OneToOne(targetEntity="DDC1193Person", cascade={"persist", "remove"}) */
|
|
public $member;
|
|
|
|
}
|
|
|
|
/** @Entity */
|
|
class DDC1193Person {
|
|
/**
|
|
* @Id @Column(type="integer")
|
|
* @GeneratedValue
|
|
*/
|
|
public $id;
|
|
|
|
/**
|
|
* @OneToOne(targetEntity="DDC1193Account", cascade={"persist", "remove"})
|
|
*/
|
|
public $account;
|
|
}
|
|
|
|
/** @Entity */
|
|
class DDC1193Account {
|
|
/**
|
|
* @Id @Column(type="integer")
|
|
* @GeneratedValue
|
|
*/
|
|
public $id;
|
|
|
|
}
|
|
|
|
|