LocalListener::refresh()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1.037

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 3
cp 0.6667
crap 1.037
rs 10
c 0
b 0
f 0
1
<?php
2
3
/*
4
 * This file is part of the doyo/code-coverage project.
5
 *
6
 * (c) Anthonius Munthi <https://itstoni.com>
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\Bridge\CodeCoverage\Listener;
15
16
use Doyo\Bridge\CodeCoverage\Event\CoverageEvent;
17
18
class LocalListener extends AbstractSessionListener
19
{
20 1
    public static function getSubscribedEvents()
21
    {
22
        return [
23 1
            CoverageEvent::refresh  => 'refresh',
24
            CoverageEvent::start    => 'start',
25
            CoverageEvent::complete => 'complete',
26
        ];
27
    }
28
29 1
    public function refresh()
30
    {
31 1
        $this->session->reset();
32
    }
33
34 1
    public function start(CoverageEvent $event)
35
    {
36 1
        $session  = $this->session;
37 1
        $testCase = $event->getProcessor()->getCurrentTestCase();
38
39 1
        $session->setTestCase($testCase);
40 1
        $session->save();
41
    }
42
43 1
    public function complete(CoverageEvent $event)
44
    {
45 1
        $session   = $this->session;
46 1
        $processor = $event->getProcessor();
47 1
        $consoleIO = $event->getConsoleIO();
48
49
        // need to refresh session first
50 1
        $session->refresh();
51
52 1
        $processor->merge($session->getProcessor());
53
54 1
        if ($session->hasExceptions()) {
55 1
            foreach ($session->getExceptions() as $exception) {
56 1
                $consoleIO->coverageInfo($exception->getMessage());
57
            }
58
        }
59
    }
60
}
61