ChangeTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace Gedmo\Timestampable;
  3. use Doctrine\Common\EventManager;
  4. use Tool\BaseTestCaseORM;
  5. use Doctrine\Common\Util\Debug,
  6. Timestampable\Fixture\TitledArticle;
  7. /**
  8. * These are tests for Timestampable behavior
  9. *
  10. * @author Ivan Borzenkov <ivan.borzenkov@gmail.com>
  11. * @package Gedmo.Timestampable
  12. * @link http://www.gediminasm.org
  13. * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
  14. */
  15. class ChangeTest extends BaseTestCaseORM
  16. {
  17. const FIXTURE = "Timestampable\\Fixture\\TitledArticle";
  18. protected function setUp()
  19. {
  20. parent::setUp();
  21. $evm = new EventManager;
  22. $evm->addEventSubscriber(new TimestampableListener);
  23. $this->getMockSqliteEntityManager($evm);
  24. }
  25. public function testChange()
  26. {
  27. $test = new TitledArticle();
  28. $test->setTitle('Test');
  29. $test->setText('Test');
  30. $date = new \DateTime('now');
  31. $this->em->persist($test);
  32. $this->em->flush();
  33. $this->em->clear();
  34. $test = $this->em->getRepository(self::FIXTURE)->findOneByTitle('Test');
  35. $test->setTitle('New Title');
  36. $this->em->persist($test);
  37. $this->em->flush();
  38. $this->em->clear();
  39. //Changed
  40. $this->assertEquals(
  41. $date->format('Y-m-d H:i:s'),
  42. $test->getChtitle()->format('Y-m-d H:i:s')
  43. );
  44. sleep(1);
  45. $test = $this->em->getRepository(self::FIXTURE)->findOneByTitle('New Title');
  46. $test->setText('New Text');
  47. $this->em->persist($test);
  48. $this->em->flush();
  49. $this->em->clear();
  50. //Not Changed
  51. $this->assertEquals(
  52. $date->format('Y-m-d H:i:s'),
  53. $test->getChtitle()->format('Y-m-d H:i:s')
  54. );
  55. $date = new \DateTime('now');
  56. }
  57. protected function getUsedEntityFixtures()
  58. {
  59. return array(
  60. self::FIXTURE,
  61. );
  62. }
  63. }