Passed
Branch master (9c9e82)
by ANTHONIUS
01:35
created

CodeCoverage::complete()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 2.0054

Importance

Changes 0
Metric Value
cc 2
eloc 9
nc 2
nop 0
dl 0
loc 14
ccs 8
cts 9
cp 0.8889
crap 2.0054
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
4
namespace Doyo\Bridge\CodeCoverage;
5
6
use Doyo\Bridge\CodeCoverage\Console\ConsoleIO;
7
use Doyo\Bridge\CodeCoverage\Environment\RuntimeInterface;
8
use Doyo\Bridge\CodeCoverage\Event\CoverageEvent;
9
use Doyo\Symfony\Bridge\EventDispatcher\EventDispatcher;
10
11
/**
12
 * A main code coverage actions that contain main processor
13
 * for collecting code coverage
14
 */
15
class CodeCoverage extends EventDispatcher
16
{
17
    /**
18
     * @var CoverageEvent
19
     */
20
    private $coverageEvent;
21
22 5
    public function __construct(
23
        ProcessorInterface $processor,
24
        ConsoleIO $consoleIO,
25
        RuntimeInterface $runtime
26
    )
27
    {
28 5
        $this->coverageEvent = new CoverageEvent($processor, $consoleIO, $runtime);
29 5
        parent::__construct();
30
    }
31
32 1
    public function refresh()
33
    {
34 1
        $coverageEvent = $this->coverageEvent;
35
36 1
        if($coverageEvent->canCollectCodeCoverage()){
37 1
            $coverageEvent->getProcessor()->clear();
38 1
            $this->dispatch($coverageEvent, CoverageEvent::refresh);
39
        }
40
41 1
        return $coverageEvent;
42
    }
43
44 62
    public function start(TestCase $testCase)
45
    {
46 1
        $coverageEvent = $this->coverageEvent;
47
48 1
        if($coverageEvent->canCollectCodeCoverage()){
49 1
            $coverageEvent->getProcessor()->start($testCase);
50 62
            $this->dispatch($coverageEvent, CoverageEvent::beforeStart);
51 62
            $this->dispatch($coverageEvent, CoverageEvent::start);
52
        }
53
54 62
        return $coverageEvent;
55
    }
56
57 64
    public function stop()
58
    {
59 64
        $coverageEvent = $this->coverageEvent;
60 64
        if($coverageEvent->canCollectCodeCoverage()){
61 64
            $coverageEvent->getProcessor()->stop();
62 1
            $this->dispatch($coverageEvent, CoverageEvent::stop);
63
        }
64
65 1
        return $coverageEvent;
66
    }
67
68 1
    public function complete()
69
    {
70 1
        $coverageEvent = $this->coverageEvent;
71 1
        $consoleIO = $coverageEvent->getConsoleIO();
72
73 1
        if($coverageEvent->canCollectCodeCoverage()){
74 1
            $coverageEvent->getProcessor()->complete();
75 1
            $this->dispatch($coverageEvent, CoverageEvent::complete);
76 1
            $this->dispatch($coverageEvent, CoverageEvent::report);
77
        }else{
78
            $consoleIO->coverageError('Can not create coverage report. No code coverage driver available');
79
        }
80
81 1
        return $coverageEvent;
82
    }
83
84
    public function setResult(int $result)
85
    {
86
        $coverageEvent = $this->coverageEvent;
87
        if($coverageEvent->canCollectCodeCoverage()){
88
            $coverageEvent->getProcessor()->getCurrentTestCase()->setResult($result);
89
        }
90
    }
91
}
92