public function testNotifyUntil() { $d = new EventDispatcher(); $o = new \stdClass(); $n = new Notifier($d, $o); $n->notifyUntil('foo'); $l = new TestListener(); $d->addListener($l); $e = $l->getLastReceivedEvent(); $this->assertEquals($o, $e->getSender()); $this->assertEquals('foo', $e->getName()); }
public function testProxy() { $o = new TestClass(); $d = new EventDispatcher(); $l = new TestListener(); $d->addListener($l); $p = new EventProxy($o, $d); $p->foo = 'bar'; $p->foo; isset($p->foo); unset($p->foo); $p->foobar(); $e = $l->getReceivedEvents(); $this->assertCount(5, $e); $this->assertEquals('proxy.set', $e[0]->getName()); $this->assertEquals($o, $e[0]->getSender()); $this->assertEquals('proxy.get', $e[1]->getName()); $this->assertEquals('proxy.isset', $e[2]->getName()); $this->assertEquals('proxy.unset', $e[3]->getName()); $this->assertEquals('proxy.call', $e[4]->getName()); }
public function testEventDispatcherAsListener() { $dispatcherListener = new EventDispatcher(); $listener = new TestListener(); $dispatcherListener->addListener($listener); $dispatcher = new EventDispatcher(); $dispatcher->addListener($dispatcherListener); $event = new Event(null, 'test'); $dispatcher->notify($event); $this->assertEquals($event, $listener->getLastReceivedEvent()); }