Code Coverage
 
Lines
Branches
Paths
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
4 / 4
66.67% covered (warning)
66.67%
2 / 3
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
EventBus
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
4 / 4
66.67% covered (warning)
66.67%
2 / 3
100.00% covered (success)
100.00%
1 / 1
2.15
100.00% covered (success)
100.00%
1 / 1
 dispatch
n/a
0 / 0
n/a
0 / 0
n/a
0 / 0
n/a
0 / 0
0
 dispatchAll
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
4 / 4
66.67% covered (warning)
66.67%
2 / 3
100.00% covered (success)
100.00%
1 / 1
2.15
1<?php
2
3namespace App\Shared\Domain\Port\Driven;
4
5use App\Shared\Domain\Event\DomainEvent;
6use App\Shared\Domain\Model\ProducesDomainEvents;
7
8/**
9 * @author W.Zwertvaegher
10 * Domain Event Bus interface (i.e. Port)
11 * This MUST be implemented by the infra to allow sending events from handlers on entities operations
12 */
13
14abstract class EventBus
15{
16    abstract public function dispatch(DomainEvent $event): void;
17
18    /**
19     * @param ProducesDomainEvents $aggregate
20     * @return void
21     */
22    public function dispatchAll(ProducesDomainEvents $aggregate): void
23    {
24        foreach ($aggregate->pullEvents() as $event) {
25            $this->dispatch($event);
26        }
27    }
28}

Paths

Below are the source code lines that represent each code path as identified by Xdebug. Please note a path is not necessarily coterminous with a line, a line may contain multiple paths and therefore show up more than once. Please also be aware that some paths may include implicit rather than explicit branches, e.g. an if statement always has an else as part of its logical flow even if you didn't write one.

EventBus->dispatchAll
22    public function dispatchAll(ProducesDomainEvents $aggregate): void
23    {
24        foreach ($aggregate->pullEvents() as $event) {
 
24        foreach ($aggregate->pullEvents() as $event) {
 
24        foreach ($aggregate->pullEvents() as $event) {
25            $this->dispatch($event);
 
24        foreach ($aggregate->pullEvents() as $event) {
 
24        foreach ($aggregate->pullEvents() as $event) {
25            $this->dispatch($event);
26        }
27    }
22    public function dispatchAll(ProducesDomainEvents $aggregate): void
23    {
24        foreach ($aggregate->pullEvents() as $event) {
 
24        foreach ($aggregate->pullEvents() as $event) {
 
24        foreach ($aggregate->pullEvents() as $event) {
25            $this->dispatch($event);
26        }
27    }
22    public function dispatchAll(ProducesDomainEvents $aggregate): void
23    {
24        foreach ($aggregate->pullEvents() as $event) {
 
24        foreach ($aggregate->pullEvents() as $event) {
25            $this->dispatch($event);
26        }
27    }
{main}
3namespace App\Shared\Domain\Port\Driven;
4
5use App\Shared\Domain\Event\DomainEvent;
6use App\Shared\Domain\Model\ProducesDomainEvents;
7
8/**
9 * @author W.Zwertvaegher
10 * Domain Event Bus interface (i.e. Port)
11 * This MUST be implemented by the infra to allow sending events from handlers on entities operations
12 */
13
14abstract class EventBus
15{
16    abstract public function dispatch(DomainEvent $event): void;
17
18    /**
19     * @param ProducesDomainEvents $aggregate
20     * @return void
21     */
22    public function dispatchAll(ProducesDomainEvents $aggregate): void
23    {
24        foreach ($aggregate->pullEvents() as $event) {
25            $this->dispatch($event);
26        }
27    }