21
21
*/
22
22
final class Text
23
23
{
24
+ /**
25
+ * @var string
26
+ */
27
+ private const COLOR_GREEN = "\x1b[30;42m " ;
28
+
29
+ /**
30
+ * @var string
31
+ */
32
+ private const COLOR_YELLOW = "\x1b[30;43m " ;
33
+
34
+ /**
35
+ * @var string
36
+ */
37
+ private const COLOR_RED = "\x1b[37;41m " ;
38
+
39
+ /**
40
+ * @var string
41
+ */
42
+ private const COLOR_HEADER = "\x1b[1;37;40m " ;
43
+
44
+ /**
45
+ * @var string
46
+ */
47
+ private const COLOR_RESET = "\x1b[0m " ;
48
+
49
+ /**
50
+ * @var string
51
+ */
52
+ private const COLOR_EOL = "\x1b[2K " ;
53
+
54
+ /**
55
+ * @var int
56
+ */
24
57
private $ lowUpperBound ;
58
+
59
+ /**
60
+ * @var int
61
+ */
25
62
private $ highLowerBound ;
63
+
64
+ /**
65
+ * @var bool
66
+ */
26
67
private $ showUncoveredFiles ;
27
- private $ showOnlySummary ;
28
68
29
- private $ colors = [
30
- 'green ' => "\x1b[30;42m " ,
31
- 'yellow ' => "\x1b[30;43m " ,
32
- 'red ' => "\x1b[37;41m " ,
33
- 'header ' => "\x1b[1;37;40m " ,
34
- 'reset ' => "\x1b[0m " ,
35
- 'eol ' => "\x1b[2K " ,
36
- ];
69
+ /**
70
+ * @var bool
71
+ */
72
+ private $ showOnlySummary ;
37
73
38
74
/**
39
75
* @param int $lowUpperBound
@@ -59,7 +95,6 @@ public function process(CodeCoverage $coverage, $showColors = false)
59
95
{
60
96
$ output = PHP_EOL . PHP_EOL ;
61
97
$ report = $ coverage ->getReport ();
62
- unset($ coverage );
63
98
64
99
$ colors = [
65
100
'header ' => '' ,
@@ -75,17 +110,20 @@ public function process(CodeCoverage $coverage, $showColors = false)
75
110
$ report ->getNumTestedClassesAndTraits (),
76
111
$ report ->getNumClassesAndTraits ()
77
112
);
113
+
78
114
$ colors ['methods ' ] = $ this ->getCoverageColor (
79
115
$ report ->getNumTestedMethods (),
80
116
$ report ->getNumMethods ()
81
117
);
118
+
82
119
$ colors ['lines ' ] = $ this ->getCoverageColor (
83
120
$ report ->getNumExecutedLines (),
84
121
$ report ->getNumExecutableLines ()
85
122
);
86
- $ colors ['reset ' ] = $ this ->colors ['reset ' ];
87
- $ colors ['header ' ] = $ this ->colors ['header ' ];
88
- $ colors ['eol ' ] = $ this ->colors ['eol ' ];
123
+
124
+ $ colors ['reset ' ] = self ::COLOR_RESET ;
125
+ $ colors ['header ' ] = self ::COLOR_HEADER ;
126
+ $ colors ['eol ' ] = self ::COLOR_EOL ;
89
127
}
90
128
91
129
$ classes = \sprintf (
@@ -169,17 +207,18 @@ public function process(CodeCoverage $coverage, $showColors = false)
169
207
$ classMethods ++;
170
208
$ classStatements += $ method ['executableLines ' ];
171
209
$ coveredClassStatements += $ method ['executedLines ' ];
210
+
172
211
if ($ method ['coverage ' ] == 100 ) {
173
212
$ coveredMethods ++;
174
213
}
175
214
}
176
215
216
+ $ namespace = '' ;
217
+
177
218
if (!empty ($ class ['package ' ]['namespace ' ])) {
178
219
$ namespace = '\\' . $ class ['package ' ]['namespace ' ] . ':: ' ;
179
220
} elseif (!empty ($ class ['package ' ]['fullPackage ' ])) {
180
221
$ namespace = '@ ' . $ class ['package ' ]['fullPackage ' ] . ':: ' ;
181
- } else {
182
- $ namespace = '' ;
183
222
}
184
223
185
224
$ classCoverage [$ namespace . $ className ] = [
@@ -200,8 +239,7 @@ public function process(CodeCoverage $coverage, $showColors = false)
200
239
$ resetColor = '' ;
201
240
202
241
foreach ($ classCoverage as $ fullQualifiedPath => $ classInfo ) {
203
- if ($ classInfo ['statementsCovered ' ] != 0 ||
204
- $ this ->showUncoveredFiles ) {
242
+ if ($ this ->showUncoveredFiles || $ classInfo ['statementsCovered ' ] != 0 ) {
205
243
if ($ showColors ) {
206
244
$ methodColor = $ this ->getCoverageColor ($ classInfo ['methodsCovered ' ], $ classInfo ['methodCount ' ]);
207
245
$ linesColor = $ this ->getCoverageColor ($ classInfo ['statementsCovered ' ], $ classInfo ['statementCount ' ]);
@@ -226,13 +264,14 @@ private function getCoverageColor($numberOfCoveredElements, $totalNumberOfElemen
226
264
);
227
265
228
266
if ($ coverage >= $ this ->highLowerBound ) {
229
- return $ this -> colors [ ' green ' ] ;
267
+ return self :: COLOR_GREEN ;
230
268
}
269
+
231
270
if ($ coverage > $ this ->lowUpperBound ) {
232
- return $ this -> colors [ ' yellow ' ] ;
271
+ return self :: COLOR_YELLOW ;
233
272
}
234
273
235
- return $ this -> colors [ ' red ' ] ;
274
+ return self :: COLOR_RED ;
236
275
}
237
276
238
277
private function printCoverageCounts ($ numberOfCoveredElements , $ totalNumberOfElements , $ precision )
@@ -251,7 +290,7 @@ private function printCoverageCounts($numberOfCoveredElements, $totalNumberOfEle
251
290
252
291
private function format ($ color , $ padding , $ string )
253
292
{
254
- $ reset = $ color ? $ this -> colors [ ' reset ' ] : '' ;
293
+ $ reset = $ color ? self :: COLOR_RESET : '' ;
255
294
256
295
return $ color . \str_pad ($ string , $ padding ) . $ reset . PHP_EOL ;
257
296
}
0 commit comments