/** * @covers TBGEvent::listen * @covers TBGEvent::trigger * @covers TBGEvent::triggerUntilProcessed * @depends testListening */ public function testTriggeringAndProcessing(TBGEvent $event) { $this->wastriggered = false; TBGEvent::clearListeners('modulename', 'identifier'); TBGEvent::listen('modulename', 'identifier', array($this, 'listenerCallback')); $event->trigger(); $this->assertAttributeEquals(true, 'wastriggered', $this); TBGEvent::clearListeners('modulename', 'identifier'); TBGEvent::listen('modulename', 'identifier', array($this, 'listenerCallbackNonProcessingFirst')); TBGEvent::listen('modulename', 'identifier', array($this, 'listenerCallbackNonProcessingSecond')); TBGEvent::listen('modulename', 'identifier', array($this, 'listenerCallbackProcessing')); $this->wasprocessed = array(); $event->triggerUntilProcessed(); $this->assertAttributeNotEmpty('wasprocessed', $this); $this->assertAttributeContains(1, 'wasprocessed', $this); $this->assertAttributeContains(2, 'wasprocessed', $this); $this->assertAttributeNotContains(3, 'wasprocessed', $this); }