LocalCoverageListener::coverageCompleted()   A
last analyzed

Complexity

Conditions 4
Paths 6

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 4

Importance

Changes 0
Metric Value
cc 4
eloc 8
nc 6
nop 1
dl 0
loc 13
ccs 9
cts 9
cp 1
crap 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
/*
4
 * This file is part of the doyo/behat-code-coverage project.
5
 *
6
 * (c) Anthonius Munthi <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace Doyo\Behat\Coverage\Listener;
15
16
use Doyo\Behat\Coverage\Event\CoverageEvent;
17
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
18
19
class LocalCoverageListener extends AbstractSessionCoverageListener implements EventSubscriberInterface
20
{
21 5
    public static function getSubscribedEvents()
22
    {
23
        return [
24 5
            CoverageEvent::REFRESH      => 'coverageRefresh',
25
            CoverageEvent::START        => 'coverageStarted',
26
            CoverageEvent::COMPLETED    => 'coverageCompleted',
27
        ];
28
    }
29
30 4
    public function coverageRefresh()
31
    {
32 4
        $this->session->reset();
33
    }
34
35 8
    public function coverageStarted(CoverageEvent $event)
36
    {
37 8
        $session = $this->session;
38 8
        $session->refresh();
39 8
        $session->setTestCase($event->getTestCase());
40 8
        $session->save();
41
    }
42
43 4
    public function coverageCompleted(CoverageEvent $event)
44
    {
45 4
        $session = $this->session;
46 4
        $session->refresh();
47
48 4
        $processor = $this->session->getProcessor();
49 4
        if (null !== $processor) {
50 4
            $event->getProcessor()->merge($processor);
51
        }
52
53 4
        if ($session->hasExceptions()) {
54 1
            foreach ($session->getExceptions() as $exception) {
55 1
                $event->getConsoleIO()->sessionError($session->getName(), $exception->getMessage());
56
            }
57
        }
58
    }
59
}
60