ResultConsoleWriter::writeResult()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 13
rs 9.4285
c 1
b 0
f 0
cc 3
eloc 9
nc 3
nop 1
1
<?php
2
3
/**
4
 * This file is part of cloak.
5
 *
6
 * (c) Noritaka Horio <[email protected]>
7
 *
8
 * This source file is subject to the MIT license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace cloak\writer;
13
14
use cloak\value\CoverageBounds;
15
use cloak\result\CoverageResultNode;
16
use Zend\Console\Console;
17
use Zend\Console\ColorInterface as Color;
18
19
20
/**
21
 * Class ResultConsoleWriter
22
 * @package cloak\writer
23
 */
24
class ResultConsoleWriter extends AbstractConsoleWriter implements StdoutWriter, ResultWriter
25
{
26
27
    /**
28
     * @var CoverageBounds
29
     */
30
    private $bounds;
31
32
33
    /**
34
     * @param CoverageBounds $coverageBounds
35
     */
36
    public function __construct(CoverageBounds $coverageBounds)
37
    {
38
        $this->console = Console::getInstance();
39
        $this->bounds = $coverageBounds;
40
    }
41
42
    /**
43
     * @{inheritDoc}
44
     */
45
    public function writeResult(CoverageResultNode $result)
46
    {
47
        $coverage = $result->getCodeCoverage();
48
        $coverageText = $coverage->formattedValue();
49
50
        if ($this->bounds->isSatisfactory($coverage)) {
51
            $this->console->writeText($coverageText, Color::GREEN);
52
        } else if ($this->bounds->isCritical($coverage)) {
53
            $this->console->writeText($coverageText, Color::RED);
54
        } else {
55
            $this->console->writeText($coverageText, Color::YELLOW);
56
        }
57
    }
58
59
}
60