| Conditions | 1 | 
| Paths | 1 | 
| Total Lines | 26 | 
| Code Lines | 20 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Tests | 22 | 
| CRAP Score | 1 | 
| Changes | 1 | ||
| Bugs | 0 | Features | 1 | 
| 1 | <?php  | 
            ||
| 16 | public function testDispatch(): void  | 
            ||
| 17 |     { | 
            ||
| 18 | 1 | $event = new Events\TestsStartedEvent([]);  | 
            |
| 19 | 1 | $var = 0;  | 
            |
| 20 | 1 | $listenerProvider = new TesterListenerProvider([]);  | 
            |
| 21 | 1 |         $listenerProvider->registerListener($event::class, function () use (&$var) { | 
            |
| 22 | 1 | $var++;  | 
            |
| 23 | 1 | });  | 
            |
| 24 | 1 | $eventDispatcher = new TesterEventDispatcher($listenerProvider);  | 
            |
| 25 | 1 | $this->assertSame($event, $eventDispatcher->dispatch($event));  | 
            |
| 26 | 1 | $this->assertSame(1, $var);  | 
            |
| 27 | |||
| 28 | 1 | $event = new Events\TestStoppableEvent();  | 
            |
| 29 | 1 | $var = 0;  | 
            |
| 30 | 1 | $listenerProvider = new TesterListenerProvider([]);  | 
            |
| 31 | 1 |         $listenerProvider->registerListener($event::class, function (Events\TestStoppableEvent $event) use (&$var) { | 
            |
| 32 | 1 | $var++;  | 
            |
| 33 | 1 | $event->stopped = true;  | 
            |
| 34 | 1 | });  | 
            |
| 35 | 1 |         $listenerProvider->registerListener($event::class, function (Events\TestStoppableEvent $event) use (&$var) { | 
            |
| 36 | $var++;  | 
            ||
| 37 | 1 | });  | 
            |
| 38 | 1 | $eventDispatcher = new TesterEventDispatcher($listenerProvider);  | 
            |
| 39 | 1 | $this->assertSame($event, $eventDispatcher->dispatch($event));  | 
            |
| 40 | 1 | $this->assertSame(1, $var);  | 
            |
| 41 | 1 | $this->assertTrue($event->stopped);  | 
            |
| 42 | 1 | }  | 
            |
| 44 |