mageekguy\atoum\report\fields\runner\errors\cli: lines coverage

72% of 932

OPs

82% of 154

Lines

66% of 112

Branches

5% of 305

Paths
Method OPs OPs % Lines Line % Branches Branches % Paths Path %
mageekguy\atoum\report\fields\runner\errors\cli::__construct() 34 100% 9 100% 1 0% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::__toString() 766 66% 127 78% 99 63% 292 1%
mageekguy\atoum\report\fields\runner\errors\cli::setTitlePrompt() 16 100% 2 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::getTitlePrompt() 6 100% 1 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::setTitleColorizer() 16 100% 2 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::getTitleColorizer() 6 100% 1 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::setMethodPrompt() 16 100% 2 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::getMethodPrompt() 6 100% 1 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::setMethodColorizer() 16 100% 2 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::getMethodColorizer() 6 100% 1 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::setErrorPrompt() 16 100% 2 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::getErrorPrompt() 6 100% 1 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::setErrorColorizer() 16 100% 2 100% 1 100% 1 100%
mageekguy\atoum\report\fields\runner\errors\cli::getErrorColorizer() 6 100% 1 100% 1 100% 1 100%
#
1
<?php
2

                    
3
namespace mageekguy\atoum\report\fields\runner\errors;
4

                    
5
use
6
	mageekguy\atoum,
7
	mageekguy\atoum\locale,
8
	mageekguy\atoum\report,
9
	mageekguy\atoum\cli\prompt,
10
	mageekguy\atoum\cli\colorizer
11
;
12

                    
13
class cli extends report\fields\runner\errors
14
{
15
	protected $titlePrompt = null;
16
	protected $titleColorizer = null;
17
	protected $methodPrompt = null;
18
	protected $methodColorizer = null;
19
	protected $errorPrompt = null;
20
	protected $errorColorizer = null;
21

                    
22
	public function __construct()100%
23
	{
24
		parent::__construct();
25

                    
26
		$this
27
			->setTitlePrompt()
28
			->setTitleColorizer()
29
			->setMethodPrompt()
30
			->setMethodColorizer()
31
			->setErrorPrompt()
32
			->setErrorColorizer()
33
		;
34
	}
35

                    
36
	public function __toString()78%
37
	{
38
		$string = '';
39

                    
40
		if ($this->runner !== null)
41
		{
42
			$errors = $this->runner->getScore()->getErrors();
43

                    
44
			$sizeOfErrors = sizeof($errors);
45

                    
46
			if ($sizeOfErrors > 0)
47
			{
48
				$string .=
49
					$this->titlePrompt .
50
					sprintf(
51
						$this->locale->_('%s:'),
52
						$this->titleColorizer->colorize(sprintf($this->locale->__('There is %d error', 'There are %d errors', $sizeOfErrors), $sizeOfErrors))
53
					) .
54
					PHP_EOL
55
				;
56

                    
57
				$class = null;
58
				$method = null;
59

                    
60
				foreach ($errors as $error)
61
				{
62
					if ($error['class'] !== $class || $error['method'] !== $method)
63
					{
64
						$string .=
65
							$this->methodPrompt .
66
							sprintf(
67
								$this->locale->_('%s:'),
68
								$this->methodColorizer->colorize($error['class'] . '::' . $error['method'] . '()')
69
							) .
70
							PHP_EOL
71
						;
72

                    
73
						$class = $error['class'];
74
						$method = $error['method'];
75
					}
76

                    
77
					$string .= $this->errorPrompt;
78

                    
79
					$type = static::getType($error['type']);
80

                    
81
					if ($error['case'] === null)
82
					{
83
						switch (true)
84
						{
85
							case $error['file'] === null:
86
								switch (true)
87
								{
88
									case $error['errorFile'] === null:
89
										$errorMessage = sprintf($this->locale->_('Error %s in unknown file on unknown line, generated by unknown file'), $type);
90
										break;
91

                    
92
									case $error['errorLine'] === null:
93
										$errorMessage = sprintf($this->locale->_('Error %s in unknown file on unknown line, generated by file %s'), $type, $error['errorFile']);
94
										break;
95

                    
96
									case $error['errorLine'] !== null:
97
										$errorMessage = sprintf($this->locale->_('Error %s in unknown file on unknown line, generated by file %s on line %d'), $type, $error['errorFile'], $error['errorLine']);
98
										break;
99
								}
100
								break;
101

                    
102
							case $error['line'] === null:
103
								switch (true)
104
								{
105
									case $error['errorFile'] === null:
106
										$errorMessage = sprintf($this->locale->_('Error %s in %s on unknown line, generated by unknown file'), $type, $error['file']);
107
										break;
108

                    
109
									case $error['errorLine'] === null:
110
										$errorMessage = sprintf($this->locale->_('Error %s in %s on unknown line, generated by file %s'), $type, $error['file'], $error['errorFile']);
111
										break;
112

                    
113
									case $error['errorLine'] !== null:
114
										$errorMessage = sprintf($this->locale->_('Error %s in %s on unknown line, generated by file %s on line %d'), $type, $error['file'], $error['errorFile'], $error['errorLine']);
115
										break;
116
								}
117
								break;
118

                    
119
							default:
120
								switch (true)
121
								{
122
									case $error['errorFile'] === null:
123
										$errorMessage = sprintf($this->locale->_('Error %s in %s on line %d, generated by unknown file'), $type, $error['file'], $error['line']);
124
										break;
125

                    
126
									case $error['errorLine'] === null:
127
										$errorMessage = sprintf($this->locale->_('Error %s in %s on line %d, generated by file %s'), $type, $error['file'], $error['line'], $error['errorFile']);
128
										break;
129

                    
130
									case $error['errorLine'] !== null:
131
										$errorMessage = sprintf($this->locale->_('Error %s in %s on line %d, generated by file %s on line %d'), $type, $error['file'], $error['line'], $error['errorFile'], $error['errorLine']);
132
										break;
133
								}
134
								break;
135
						}
136
					}
137
					else
138
					{
139
						switch (true)
140
						{
141
							case $error['file'] === null:
142
								switch (true)
143
								{
144
									case $error['errorFile'] === null:
145
										$errorMessage = sprintf($this->locale->_('Error %s in unknown file on unknown line in case \'%s\', generated by unknown file'), $type, $error['case']);
146
										break;
147

                    
148
									case $error['errorLine'] === null:
149
										$errorMessage = sprintf($this->locale->_('Error %s in unknown file on unknown line, generated by file %s in case \'%s\''), $type, $error['errorFile'], $error['case']);
150
										break;
151

                    
152
									case $error['errorLine'] !== null:
153
										$errorMessage = sprintf($this->locale->_('Error %s in unknown file on unknown line, generated by file %s on line %d in case \'%s\''), $type, $error['errorFile'], $error['errorLine'], $error['case']);
154
										break;
155
								}
156
								break;
157

                    
158
							case $error['line'] === null:
159
								switch (true)
160
								{
161
									case $error['errorFile'] === null:
162
										$errorMessage = sprintf($this->locale->_('Error %s in %s on unknown line, generated by unknown file in case \'%s\''), $type, $error['file'], $error['case']);
163
										break;
164

                    
165
									case $error['errorLine'] === null:
166
										$errorMessage = sprintf($this->locale->_('Error %s in %s on unknown line, generated by file %s in case \'%s\''), $type, $error['file'], $error['errorFile'], $error['case']);
167
										break;
168

                    
169
									case $error['errorLine'] !== null:
170
										$errorMessage = sprintf($this->locale->_('Error %s in %s on unknown line, generated by file %s on line %d in case \'%s\''), $type, $error['file'], $error['errorFile'], $error['errorLine'], $error['case']);
171
										break;
172
								}
173
								break;
174

                    
175
							default:
176
								switch (true)
177
								{
178
									case $error['errorFile'] === null:
179
										$errorMessage = sprintf($this->locale->_('Error %s in %s on line %d, generated by unknown file in case \'%s\''), $type, $error['file'], $error['line'], $error['case']);
180
										break;
181

                    
182
									case $error['errorLine'] === null:
183
										$errorMessage = sprintf($this->locale->_('Error %s in %s on line %d, generated by file %s in case \'%s\''), $type, $error['file'], $error['line'], $error['errorFile'], $error['case']);
184
										break;
185

                    
186
									case $error['errorLine'] !== null:
187
										$errorMessage = sprintf($this->locale->_('Error %s in %s on line %d, generated by file %s on line %d in case \'%s\''), $type, $error['file'], $error['line'], $error['errorFile'], $error['errorLine'], $error['case']);
188
										break;
189
								}
190
								break;
191
						}
192
					}
193

                    
194
					$string .= sprintf(
195
							$this->locale->_('%s:'),
196
							$this->errorColorizer->colorize(($errorMessage))
197
						) .
198
						PHP_EOL
199
					;
200

                    
201
					foreach (explode(PHP_EOL, $error['message']) as $line)
202
					{
203
						$string .= $line . PHP_EOL;
204
					}
205
				}
206
			}
207
		}
208

                    
209
		return $string;
210
	}
211

                    
212
	public function setTitlePrompt(prompt $prompt = null)100%
213
	{
214
		$this->titlePrompt = $prompt ?: new prompt();
215

                    
216
		return $this;
217
	}
218

                    
219
	public function getTitlePrompt()100%
220
	{
221
		return $this->titlePrompt;
222
	}
223

                    
224
	public function setTitleColorizer(colorizer $colorizer = null)100%
225
	{
226
		$this->titleColorizer = $colorizer ?: new colorizer();
227

                    
228
		return $this;
229
	}
230

                    
231
	public function getTitleColorizer()100%
232
	{
233
		return $this->titleColorizer;
234
	}
235

                    
236
	public function setMethodPrompt(prompt $prompt = null)100%
237
	{
238
		$this->methodPrompt = $prompt ?: new prompt();
239

                    
240
		return $this;
241
	}
242

                    
243
	public function getMethodPrompt()100%
244
	{
245
		return $this->methodPrompt;
246
	}
247

                    
248
	public function setMethodColorizer(colorizer $colorizer = null)100%
249
	{
250
		$this->methodColorizer = $colorizer ?: new colorizer();
251

                    
252
		return $this;
253
	}
254

                    
255
	public function getMethodColorizer()100%
256
	{
257
		return $this->methodColorizer;
258
	}
259

                    
260
	public function setErrorPrompt(prompt $prompt = null)100%
261
	{
262
		$this->errorPrompt = $prompt ?: new prompt();
263

                    
264
		return $this;
265
	}
266

                    
267
	public function getErrorPrompt()100%
268
	{
269
		return $this->errorPrompt;
270
	}
271

                    
272
	public function setErrorColorizer(colorizer $colorizer = null)100%
273
	{
274
		$this->errorColorizer = $colorizer ?: new colorizer();
275

                    
276
		return $this;
277
	}
278

                    
279
	public function getErrorColorizer()100%
280
	{
281
		return $this->errorColorizer;
282
	}
283
}