count()); self::assertFalse($event->trigger('invalid')); } public function testBase() : void { $event = new EventManager(); self::assertTrue($event->attach('group', function() { return true; }, false, false)); self::assertTrue($event->attach('group', function() { return true; }, false, false)); self::assertEquals(1, $event->count()); } public function testDefaultDispatchOfPath() : void { $event = new EventManager(); self::assertTrue($event->attach('group', 'path_to_execute', false, true)); $event->addGroup('group', 'id1'); $event->addGroup('group', 'id2'); $event->trigger('group', 'id1'); self::assertTrue($event->trigger('group', 'id2')); } public function testReset() : void { $event = new EventManager(); self::assertTrue($event->attach('group', function() { return true; }, false, true)); $event->addGroup('group', 'id1'); $event->addGroup('group', 'id2'); self::assertFalse($event->trigger('group', 'id1')); self::assertTrue($event->trigger('group', 'id2')); self::assertFalse($event->trigger('group', 'id2')); self::assertEquals(1, $event->count()); } public function testDetach() : void { $event = new EventManager(); self::assertTrue($event->attach('group', function() { return true; }, false, true)); $event->addGroup('group', 'id1'); $event->addGroup('group', 'id2'); self::assertEquals(1, $event->count()); self::assertTrue($event->detach('group')); self::assertEquals(0, $event->count()); self::assertFalse($event->trigger('group')); self::assertFalse($event->detach('group')); } public function testRemove() : void { $event = new EventManager(); self::assertTrue($event->attach('group1', function() { return true; }, true, false)); self::assertTrue($event->attach('group2', function() { return true; }, true, false)); self::assertEquals(2, $event->count()); $event->trigger('group1'); self::assertEquals(1, $event->count()); } public function testImportEvents() : void { $event = new EventManager(); self::assertFalse($event->importFromFile(__DIR__ . '/invalid.php')); self::assertTrue($event->importFromFile(__DIR__ . '/events.php')); self::assertEquals(2, $event->count()); self::assertTrue($event->trigger('SomeName1', '', [1, 2, 3])); self::assertTrue($event->trigger('SomeName2', '', 4)); } }