123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace Doctrine\Tests\ORM\Functional;
- use Doctrine\Tests\Models\CMS\CmsUser;
- use Doctrine\Tests\Models\CMS\CmsGroup;
- use Doctrine\ORM\Events;
- require_once __DIR__ . '/../../TestInit.php';
-
- /**
- * ManyToManyEventTest
- *
- * @author Francisco Facioni <fran6co@gmail.com>
- */
- class ManyToManyEventTest extends \Doctrine\Tests\OrmFunctionalTestCase
- {
- /**
- * @var PostUpdateListener
- */
- private $listener;
-
- protected function setUp()
- {
- $this->useModelSet('cms');
- parent::setUp();
- $this->listener = new PostUpdateListener();
- $evm = $this->_em->getEventManager();
- $evm->addEventListener(Events::postUpdate, $this->listener);
- }
-
- public function testListenerShouldBeNotifiedOnlyWhenUpdating()
- {
- $user = $this->createNewValidUser();
- $this->_em->persist($user);
- $this->_em->flush();
- $this->assertFalse($this->listener->wasNotified);
-
- $group = new CmsGroup();
- $group->name = "admins";
- $user->addGroup($group);
- $this->_em->persist($user);
- $this->_em->flush();
-
- $this->assertTrue($this->listener->wasNotified);
- }
-
- /**
- * @return CmsUser
- */
- private function createNewValidUser()
- {
- $user = new CmsUser();
- $user->username = 'fran6co';
- $user->name = 'Francisco Facioni';
- $user->status = 'foo';
- $group = new CmsGroup();
- $group->name = "users";
- $user->addGroup($group);
- return $user;
- }
- }
-
- class PostUpdateListener
- {
- /**
- * @var bool
- */
- public $wasNotified = false;
-
- /**
- * @param $args
- */
- public function postUpdate($args)
- {
- $this->wasNotified = true;
- }
- }
-
-
|