Exemple #1
0
 public function testAttachAndDetach()
 {
     $subject1 = $this->getMockBuilder('Jivoo\\Core\\EventSubject')->getMock();
     $subject1->method('getEvents')->willReturn(array('someEvent'));
     $subject2 = $this->getMockBuilder('Jivoo\\Core\\EventSubject')->getMock();
     $subject2->method('getEvents')->willReturn(array('someEvent'));
     $em1 = new EventManager($subject1);
     $em2 = new EventManager($subject2, $em1);
     $c = function () {
         return false;
     };
     $em1->attachHandler('someEvent', $c);
     $this->assertFalse($em1->trigger('someEvent'));
     $em1->detachHandler('someEvent', $c);
     $this->assertTrue($em1->trigger('someEvent'));
     $em2->attachHandler(get_class($subject1) . '.someEvent', $c);
     $this->assertFalse($em2->trigger(get_class($subject1) . '.someEvent'));
     $em2->detachHandler(get_class($subject1) . '.someEvent', $c);
     $this->assertTrue($em2->trigger(get_class($subject1) . '.someEvent'));
     $this->assertThrows('Jivoo\\Core\\EventException', function () use($em1) {
         $em1->attachHandler('someOtherEvent', null);
     });
     $this->assertThrows('Jivoo\\Core\\EventException', function () use($em1) {
         $em1->trigger('someOtherEvent');
     });
 }
Exemple #2
0
 /**
  * {@inheritdoc}
  */
 public function one($name, callable $callback)
 {
     $this->e->attachHandler($name, $callback, true);
 }