78 lines
1.8 KiB
PHP
78 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
|
|
|
require_once __DIR__ . '/../../../TestInit.php';
|
|
|
|
class DDC444Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
|
{
|
|
public function setUp()
|
|
{
|
|
parent::setUp();
|
|
//$this->_em->getConnection()->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger);
|
|
$this->_schemaTool->createSchema(array(
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC444User'),
|
|
));
|
|
}
|
|
|
|
public function testExplicitPolicy()
|
|
{
|
|
$classname = __NAMESPACE__ . "\DDC444User";
|
|
|
|
$u = new $classname;
|
|
$u->name = "Initial value";
|
|
|
|
$this->_em->persist($u);
|
|
$this->_em->flush();
|
|
$this->_em->clear();
|
|
|
|
$q = $this->_em->createQuery("SELECT u FROM $classname u");
|
|
$u = $q->getSingleResult();
|
|
$this->assertEquals("Initial value", $u->name);
|
|
|
|
$u->name = "Modified value";
|
|
|
|
// This should be NOOP as the change hasn't been persisted
|
|
$this->_em->flush();
|
|
$this->_em->clear();
|
|
|
|
|
|
$u = $this->_em->createQuery("SELECT u FROM $classname u");
|
|
$u = $q->getSingleResult();
|
|
|
|
$this->assertEquals("Initial value", $u->name);
|
|
|
|
|
|
$u->name = "Modified value";
|
|
$this->_em->persist($u);
|
|
// Now we however persisted it, and this should have updated our friend
|
|
$this->_em->flush();
|
|
|
|
$q = $this->_em->createQuery("SELECT u FROM $classname u");
|
|
$u = $q->getSingleResult();
|
|
|
|
$this->assertEquals("Modified value", $u->name);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @Entity @Table(name="ddc444")
|
|
* @ChangeTrackingPolicy("DEFERRED_EXPLICIT")
|
|
*/
|
|
class DDC444User
|
|
{
|
|
/**
|
|
* @Id @Column(name="id", type="integer")
|
|
* @GeneratedValue(strategy="AUTO")
|
|
*/
|
|
public $id;
|
|
|
|
/**
|
|
* @Column(name="name", type="string")
|
|
*/
|
|
public $name;
|
|
}
|
|
|
|
|