public function testBindEvents() { $events = [['Test', 'test', function () { return 'a'; }], ['Test', 'test', function () { return 'b'; }]]; $observer = new Observer($events); foreach ($observer->getListeners('Test', 'test') as $key => $event) { $this->assertEquals(call_user_func($events[$key][2]), call_user_func($event)); } $observer->unbind(); $this->assertEquals([], $observer->getListeners()); $this->assertEquals(false, $observer->getListeners('Test')); $this->assertEquals(false, $observer->getListeners('Test', 'test')); $this->assertEquals(false, $observer->getListeners('Test', 'test', 0)); $observer->bindEvents($events); $this->assertInternalType('callable', $observer->getListeners('Test', 'test', 0)); $this->assertInternalType('callable', $observer->getListeners('Test', 'test', 1)); $this->assertInternalType('array', $observer->getListeners('Test', 'test')); $this->assertInternalType('array', $observer->getListeners('Test')); foreach ($observer->getListeners('Test') as $key => $val) { $this->assertEquals('test', $key); foreach ($val as $eventKey => $event) { $this->assertEquals(call_user_func($events[$eventKey][2]), call_user_func($event)); } } }