2 namespace Doctrine\Tests\ORM\Functional;
3 use Doctrine\Tests\Models\CMS\CmsUser;
4 use Doctrine\Tests\Models\CMS\CmsGroup;
5 use Doctrine\ORM\Events;
6 require_once __DIR__ . '/../../TestInit.php';
11 * @author Francisco Facioni <fran6co@gmail.com>
13 class ManyToManyEventTest extends \Doctrine\Tests\OrmFunctionalTestCase
16 * @var PostUpdateListener
20 protected function setUp()
22 $this->useModelSet('cms');
24 $this->listener = new PostUpdateListener();
25 $evm = $this->_em->getEventManager();
26 $evm->addEventListener(Events::postUpdate, $this->listener);
29 public function testListenerShouldBeNotifiedOnlyWhenUpdating()
31 $user = $this->createNewValidUser();
32 $this->_em->persist($user);
34 $this->assertFalse($this->listener->wasNotified);
36 $group = new CmsGroup();
37 $group->name = "admins";
38 $user->addGroup($group);
39 $this->_em->persist($user);
42 $this->assertTrue($this->listener->wasNotified);
48 private function createNewValidUser()
50 $user = new CmsUser();
51 $user->username = 'fran6co';
52 $user->name = 'Francisco Facioni';
53 $group = new CmsGroup();
54 $group->name = "users";
55 $user->addGroup($group);
60 class PostUpdateListener
65 public $wasNotified = false;
70 public function postUpdate($args)
72 $this->wasNotified = true;