/** * @param string $event * @param callable|null $callback */ public function unbind($event, callable $callback = null) { if (null === $this->_eventHandler) { return; } $this->_eventHandler->unbind($event, $callback); }
public function testBindJob() { $eventHandler = new CM_EventHandler_EventHandler(); self::$_foo = ''; $eventHandler->bindJob('foo', new CM_JobMock_1(), array('text' => 'bar')); $eventHandler->trigger('foo'); $this->assertEquals('bar', self::$_foo); self::$_counter = 0; $eventHandler->bindJob('foo', new CM_JobMock_2()); $eventHandler->bindJob('foo', new CM_JobMock_3(), array('i' => 2)); $eventHandler->bindJob('foo', new CM_JobMock_4(), array('a' => 4)); $eventHandler->trigger('foo', array('i' => 8)); $this->assertEquals('barbar', self::$_foo); $this->assertEquals(13, self::$_counter); $eventHandler->trigger('foo', array('text' => 'eclan')); $this->assertEquals(20, self::$_counter); $this->assertEquals('barbareclan', self::$_foo); try { $eventHandler->trigger('nonExistentEvent'); $this->assertTrue(true); } catch (Exception $ex) { $this->fail('Cant trigger nonexistent events'); } }