Completed
Push — master ( 5d5235...483143 )
by Guillaume
04:19
created

TableRenderer::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace Hogosha\Monitor\Renderer;
4
5
use Hogosha\Monitor\Model\ResultCollection;
6
use Webmozart\Console\Api\IO\IO;
7
use Webmozart\Console\UI\Component\Table;
8
9
/**
10
 * @author Guillaume Cavana <[email protected]>
11
 */
12
class TableRenderer implements RendererInterface
13
{
14
    protected $io;
15
16
    /**
17
     * Constructor.
18
     *
19
     * @param IO $io
20
     */
21
    public function __construct(IO $io)
22
    {
23
        $this->io = $io;
24
    }
25
26
    /**
27
     * {@inheritdoc}
28
     */
29
    public function render(ResultCollection $resultCollection)
30
    {
31
        $table = new Table();
32
        $table
33
            ->setHeaderRow(['Global Status', 'Status Code', 'Name', 'Response Time']);
34
35
        foreach ($resultCollection as $result) {
36
            $color = $result->getExpectedStatus() != $result->getStatusCode() ? 'red' : 'green';
37
            $table->addRow([
38
                $result->getExpectedStatus() != $result->getStatusCode() ? 'FAIL' : 'OK',
39
                sprintf(
40
                    '<bg=%s>%s</>',
41
                    $color,
42
                    $result->getStatusCode()
43
                ),
44
                $result->getName(),
45
                $result->getReponseTime(),
46
            ]);
47
        }
48
49
        $table->render($this->io);
50
    }
51
}
52