1
0
mirror of synced 2024-12-15 15:46:02 +03:00
doctrine2/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC444Test.php

78 lines
1.9 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;
}