DDC444Test.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace Doctrine\Tests\ORM\Functional\Ticket;
  3. require_once __DIR__ . '/../../../TestInit.php';
  4. class DDC444Test extends \Doctrine\Tests\OrmFunctionalTestCase
  5. {
  6. public function setUp()
  7. {
  8. parent::setUp();
  9. //$this->_em->getConnection()->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger);
  10. $this->_schemaTool->createSchema(array(
  11. $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC444User'),
  12. ));
  13. }
  14. public function testExplicitPolicy()
  15. {
  16. $classname = __NAMESPACE__ . "\DDC444User";
  17. $u = new $classname;
  18. $u->name = "Initial value";
  19. $this->_em->persist($u);
  20. $this->_em->flush();
  21. $this->_em->clear();
  22. $q = $this->_em->createQuery("SELECT u FROM $classname u");
  23. $u = $q->getSingleResult();
  24. $this->assertEquals("Initial value", $u->name);
  25. $u->name = "Modified value";
  26. // This should be NOOP as the change hasn't been persisted
  27. $this->_em->flush();
  28. $this->_em->clear();
  29. $u = $this->_em->createQuery("SELECT u FROM $classname u");
  30. $u = $q->getSingleResult();
  31. $this->assertEquals("Initial value", $u->name);
  32. $u->name = "Modified value";
  33. $this->_em->persist($u);
  34. // Now we however persisted it, and this should have updated our friend
  35. $this->_em->flush();
  36. $q = $this->_em->createQuery("SELECT u FROM $classname u");
  37. $u = $q->getSingleResult();
  38. $this->assertEquals("Modified value", $u->name);
  39. }
  40. }
  41. /**
  42. * @Entity @Table(name="ddc444")
  43. * @ChangeTrackingPolicy("DEFERRED_EXPLICIT")
  44. */
  45. class DDC444User
  46. {
  47. /**
  48. * @Id @Column(name="id", type="integer")
  49. * @GeneratedValue(strategy="AUTO")
  50. */
  51. public $id;
  52. /**
  53. * @Column(name="name", type="string")
  54. */
  55. public $name;
  56. }