public function testSuggestingPreventActionWithMessage() { $event = new Event('test.event1', array()); $this->registry->register('test.event1', function (Event $event) { $event->preventAction(true, 'Reason why should prevent.'); }); $event->trigger($this->registry); $this->assertTrue($event->shouldPreventAction()); $this->assertEquals('Reason why should prevent.', $event->preventActionMessage()); }
public function testEventPriority() { // lower priority $lowPriority = function (Event $event) { EventManagerTest::$order[] = 3; }; $highPriority = function (Event $event) { EventManagerTest::$order[] = 1; }; $alsoHighPriority = function (Event $event) { EventManagerTest::$order[] = 2; }; EventManager::register('test.event1', $lowPriority, EventRegistry::PRIORITY_LOW); EventManager::register('test.event1', $highPriority, EventRegistry::PRIORITY_HIGH); EventManager::register('test.event1', $alsoHighPriority, EventRegistry::PRIORITY_HIGH); $event = new Event('test.event1'); $event->trigger(); $this->assertEquals(array(1, 2, 3), static::$order); }
<?php use Zumba\Symbiosis\Event\Event; // Somewhere in your app, trigger plugins listening to event $event = new Event('sample.someevent', array('ping' => 'pong')); $event->trigger();