@@ -936,30 +936,24 @@ private function performUnintentionallyCoveredCodeCheck(array &$data, array $lin
936
936
*/
937
937
private function performUnexecutedCoveredCodeCheck (array &$ data , array $ linesToBeCovered , array $ linesToBeUsed )
938
938
{
939
- $ expectedLines = $ this ->getAllowedLines (
940
- $ linesToBeCovered ,
941
- $ linesToBeUsed
942
- );
943
-
944
- foreach ($ data as $ file => $ _data ) {
945
- foreach (array_keys ($ _data ) as $ line ) {
946
- if (!isset ($ expectedLines [$ file ][$ line ])) {
947
- continue ;
948
- }
949
-
950
- unset($ expectedLines [$ file ][$ line ]);
939
+ $ executedCodeUnits = $ this ->coverageToCodeUnits ($ data );
940
+ $ message = '' ;
941
+
942
+ foreach ($ this ->linesToCodeUnits ($ linesToBeCovered ) as $ codeUnit ) {
943
+ if (!in_array ($ codeUnit , $ executedCodeUnits )) {
944
+ $ message .= sprintf (
945
+ '- %s is expected to be covered but was not executed ' . "\n" ,
946
+ $ codeUnit
947
+ );
951
948
}
952
949
}
953
950
954
- $ message = '' ;
955
-
956
- foreach ($ expectedLines as $ file => $ lines ) {
957
- if (empty ($ lines )) {
958
- continue ;
959
- }
960
-
961
- foreach (array_keys ($ lines ) as $ line ) {
962
- $ message .= sprintf ('- %s:%d ' . PHP_EOL , $ file , $ line );
951
+ foreach ($ this ->linesToCodeUnits ($ linesToBeUsed ) as $ codeUnit ) {
952
+ if (!in_array ($ codeUnit , $ executedCodeUnits )) {
953
+ $ message .= sprintf (
954
+ '- %s is expected to be used but was not executed ' . "\n" ,
955
+ $ codeUnit
956
+ );
963
957
}
964
958
}
965
959
@@ -1059,4 +1053,42 @@ private function processUnintentionallyCoveredUnits(array $unintentionallyCovere
1059
1053
1060
1054
return array_values ($ unintentionallyCoveredUnits );
1061
1055
}
1056
+
1057
+ /**
1058
+ * @param array $data
1059
+ *
1060
+ * @return array
1061
+ */
1062
+ private function coverageToCodeUnits (array $ data )
1063
+ {
1064
+ $ codeUnits = [];
1065
+
1066
+ foreach ($ data as $ filename => $ lines ) {
1067
+ foreach ($ lines as $ line => $ flag ) {
1068
+ if ($ flag == 1 ) {
1069
+ $ codeUnits [] = $ this ->wizard ->lookup ($ filename , $ line );
1070
+ }
1071
+ }
1072
+ }
1073
+
1074
+ return array_unique ($ codeUnits );
1075
+ }
1076
+
1077
+ /**
1078
+ * @param array $data
1079
+ *
1080
+ * @return array
1081
+ */
1082
+ private function linesToCodeUnits (array $ data )
1083
+ {
1084
+ $ codeUnits = [];
1085
+
1086
+ foreach ($ data as $ filename => $ lines ) {
1087
+ foreach ($ lines as $ line ) {
1088
+ $ codeUnits [] = $ this ->wizard ->lookup ($ filename , $ line );
1089
+ }
1090
+ }
1091
+
1092
+ return array_unique ($ codeUnits );
1093
+ }
1062
1094
}
0 commit comments