Completed
Push — master ( 83aeed...e335a8 )
by Alessandro
05:08
created

FinalPrinter   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 19
Bugs 3 Features 2
Metric Value
wmc 5
c 19
b 3
f 2
lcom 1
cbo 5
dl 0
loc 47
ccs 23
cts 23
cp 1
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A onEngineEnd() 0 10 1
A printExecutionTime() 0 9 1
A printTestCounters() 0 14 3
1
<?php
2
3
namespace Paraunit\Printer;
4
5
use Paraunit\Lifecycle\EngineEvent;
6
use Paraunit\Process\AbstractParaunitProcess;
7
use Paraunit\TestResult\TestResultContainer;
8
9
/**
10
 * Class FinalPrinter.
11
 */
12
class FinalPrinter extends AbstractFinalPrinter
13
{
14
    /**
15
     * @param EngineEvent $engineEvent
16
     */
17 11
    public function onEngineEnd(EngineEvent $engineEvent)
18
    {
19 11
        $this->output = $engineEvent->getOutputInterface();
20
        /** @var \DateInterval $elapsedTime */
21
22 11
        $this->printExecutionTime($engineEvent);
23 11
        $this->printTestCounters($engineEvent);
24
25 11
        $this->output->writeln('');
26 11
    }
27
28
    /**
29
     * @param EngineEvent $engineEvent
30
     */
31 11
    private function printExecutionTime(EngineEvent $engineEvent)
32
    {
33
        /** @var \DateInterval $elapsedTime */
34 11
        $elapsedTime = $engineEvent->get('start')->diff($engineEvent->get('end'));
35
36 11
        $this->output->writeln('');
37 11
        $this->output->writeln('');
38 11
        $this->output->writeln($elapsedTime->format('Execution time -- %H:%I:%S '));
39 11
    }
40
41
    /**
42
     * @param EngineEvent $engineEvent
43
     */
44 11
    private function printTestCounters(EngineEvent $engineEvent)
45
    {
46 11
        $completedProcesses = $engineEvent->get('process_completed');
47 11
        $testsCount = 0;
48
        /** @var AbstractParaunitProcess $process */
49 11
        foreach ($this->logParser->getParsersForPrinting() as $parser) {
50 11
            if ($parser instanceof TestResultContainer) {
51 11
                $testsCount += $parser->countTestResults();
52 11
            }
53 11
        }
54
55 11
        $this->output->writeln('');
56 11
        $this->output->writeln(sprintf('Executed: %d test classes, %d tests', count($completedProcesses), $testsCount));
57 11
    }
58
}
59