ChangeTest.php 2.0KB

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