mageekguy\atoum\report\fields\test\event\tap: lines coverage

99% of 615

OPs

100% of 69

Lines

96% of 52

Branches

80% of 20

Paths
Method OPs OPs % Lines Line % Branches Branches % Paths Path %
mageekguy\atoum\report\fields\test\event\tap::__construct() 28 100% 12 100% 1 0% 1 100%
mageekguy\atoum\report\fields\test\event\tap::__toString() 6 100% 1 100% 1 100% 1 100%
mageekguy\atoum\report\fields\test\event\tap::handleEvent() 581 98% 56 100% 50 98% 18 78%
#
1
<?php
2

                    
3
namespace mageekguy\atoum\report\fields\test\event;
4

                    
5
use
6
	mageekguy\atoum,
7
	mageekguy\atoum\test,
8
	mageekguy\atoum\runner,
9
	mageekguy\atoum\report,
10
	mageekguy\atoum\exceptions
11
;
12

                    
13
class tap extends report\fields\event
14
{
15
	protected $testPoint = 0;
16
	protected $testLine = '';
17

                    
18
	public function __construct()100%
19
	{
20
		parent::__construct(array(
21
				runner::runStart,
22
				test::fail,
23
				test::error,
24
				test::void,
25
				test::uncompleted,
26
				test::skipped,
27
				test::exception,
28
				test::runtimeException,
29
				test::success
30
			)
31
		);
32
	}
33

                    
34
	public function __toString()100%
35
	{
36
		return $this->testLine;
37
	}
38

                    
39
	public function handleEvent($event, atoum\observable $observable)100%
40
	{
41
		$eventHandled = parent::handleEvent($event, $observable);
42

                    
43
		if ($eventHandled === true)
44
		{
45
			switch ($this->event)
46
			{
47
				case runner::runStart:
48
					$this->testPoint = 0;
49
					$this->testLine = '';
50
					break;
51

                    
52
				case test::success:
53
					$this->testLine = 'ok ' . ++$this->testPoint . PHP_EOL;
54
					$this->testLine .= '# ' . $observable->getClass() . '::' . $observable->getCurrentMethod() . '()' . PHP_EOL;
55
					break;
56

                    
57
				case test::error:
58
					$lastError = $observable->getScore()->getLastErroredMethod();
59
					$lastErrorType = atoum\asserters\error::getAsString($lastError['type']);
60

                    
61
					$this->testLine = 'not ok ' . ++$this->testPoint . ' - ' . trim($lastError['class']) . '::' . trim($lastError['method']) . '()' . PHP_EOL . '# ' . $lastErrorType . ' : ' . str_replace(PHP_EOL, PHP_EOL . '# ', trim($lastError['message'])) . PHP_EOL;
62
					$this->testLine .= '# ' . (isset($lastError['errorFile']) ? $lastError['errorFile'] : $lastError['file']) . ':' . (isset($lastError['errorLine']) ? $lastError['errorLine'] : $lastError['line']) . PHP_EOL;
63
					break;
64

                    
65
				case test::fail:
66
					$lastFailAssertion = $observable->getScore()->getLastFailAssertion();
67
					$this->testLine = 'not ok ' . ++$this->testPoint . ' - ' . trim($lastFailAssertion['class']) . '::' . trim($lastFailAssertion['method']) . '()' . PHP_EOL . '# ' . str_replace(PHP_EOL, PHP_EOL . '# ', trim($lastFailAssertion['fail'])) . PHP_EOL;
68
					$this->testLine .= '# ' . $lastFailAssertion['file'] . ':' . $lastFailAssertion['line'] . PHP_EOL;
69
					break;
70

                    
71
				case test::void:
72
					$lastVoidMethod = $observable->getScore()->getLastVoidMethod();
73
					$this->testLine = 'not ok ' . ++$this->testPoint . ' # TODO ' . trim($lastVoidMethod['class']) . '::' . trim($lastVoidMethod['method']) . '()' . PHP_EOL;
74
					$this->testLine .= '# ' . $lastVoidMethod['file'] . PHP_EOL;
75
					break;
76

                    
77
				case test::uncompleted:
78
					$lastUncompleteMethod = $observable->getScore()->getLastUncompleteMethod();
79
					$lastError = $observable->getScore()->getLastErroredMethod();
80

                    
81
					$this->testLine = 'not ok ' . ++$this->testPoint . ' - ' . trim($lastUncompleteMethod['class']) . '::' . trim($lastUncompleteMethod['method']) . '()' . PHP_EOL;
82

                    
83
					if ($lastError['class'] === $lastUncompleteMethod['class'] && $lastError['method'] === $lastUncompleteMethod['method'])
84
					{
85
						$this->testLine .= '# ' . $lastError['type'] . ' : ' . str_replace(PHP_EOL, PHP_EOL . '# ', trim($lastError['message'])) . PHP_EOL;
86
					}
87
					else
88
					{
89
						$this->testLine .= '# ' . str_replace(PHP_EOL, PHP_EOL . '# ', trim($lastUncompleteMethod['output']) ?: 'uncomplete method') . PHP_EOL;
90
					}
91

                    
92
					$this->testLine .= '# ' . $lastUncompleteMethod['file'] . PHP_EOL;
93
					break;
94

                    
95
				case test::skipped:
96
					$lastSkippedMethod = $observable->getScore()->getLastSkippedMethod();
97
					$this->testLine = 'ok ' . ++$this->testPoint . ' # SKIP ' . trim($lastSkippedMethod['class']) . '::' . trim($lastSkippedMethod['method']) . '()' . PHP_EOL . '# ' . str_replace(PHP_EOL, PHP_EOL . '# ', trim($lastSkippedMethod['message'])) . PHP_EOL;
98
					$this->testLine .= '# ' . $lastSkippedMethod['file'] . ':' . $lastSkippedMethod['line'] . PHP_EOL;
99
					break;
100

                    
101
				case test::exception:
102
					$lastException = $observable->getScore()->getLastException();
103
					$this->testLine = 'not ok ' . ++$this->testPoint . ' - ' . trim($lastException['class']) . '::' . trim($lastException['method']) . '()' . PHP_EOL . '# ' . str_replace(PHP_EOL, PHP_EOL . '# ', trim($lastException['value'])) . PHP_EOL;
104
					$this->testLine .= '# ' . $lastException['file'] . ':' . $lastException['line'] . PHP_EOL;
105
					break;
106

                    
107
				case test::runtimeException:
108
					$lastRuntimeException = $observable->getScore()->getLastRuntimeException();
109
					$this->testLine = 'Bail out!' . ($lastRuntimeException->getMessage() ? ' ' . trim($lastRuntimeException->getMessage()) : '') . PHP_EOL;
110
					break;
111
			}
112
		}
113

                    
114
		return $eventHandled;
115
	}
116
}