<?php declare(strict_types = 1); namespace Chandler\Tests\Chandler\Eventing; use Chandler\Eventing\EventDispatcher; use Chandler\Eventing\Events\Event; use PHPUnit\Framework\TestCase; /** * @package Chandler\Tests\Chandler\Eventing */ class EventDispatcherTest extends TestCase { /** * @return array */ public function provideMethodAddListener(): array // IMPROVE: Add more values. { return [ [ null, ], ]; } /** * @return array */ public function provideMethodPushEvent(): array { return [ [ new Event(), ], ]; } /** * @dataProvider provideMethodAddListener * * @param mixed $hook * * @return void */ public function testMethodAddListener($hook): void { $this->assertTrue(EventDispatcher::i()->addListener($hook)); } /** * @return void */ public function testMethodI(): void { $this->assertSame(EventDispatcher::i(), EventDispatcher::i()); } /** * @dataProvider provideMethodPushEvent * * @param \Chandler\Eventing\Events\Event $event * * @return void */ public function testMethodPushEvent(Event $event): void { $this->assertSame($event, EventDispatcher::i()->pushEvent($event)); } }