Ejemplo n.º 1
0
 /**
  * @param CodeCoverage $coverage
  * @param CodeCoverage $that
  */
 private function mergeCoverage(CodeCoverage $coverage, CodeCoverage $that)
 {
     $filter = $coverage->filter();
     $filter->setWhitelistedFiles(array_merge($filter->getWhitelistedFiles(), $that->filter()->getWhitelistedFiles()));
     $thisData = $coverage->getData(true);
     $thatData = $that->getData(true);
     foreach ($thatData as $file => $lines) {
         if (!$this->hasCoverage($thatData, $file)) {
             continue;
         }
         if (!$this->hasCoverage($thisData, $file)) {
             if (!$filter->isFiltered($file)) {
                 $thisData[$file] = $lines;
             }
             continue;
         }
         foreach ($lines as $line => $data) {
             if ($data !== null) {
                 if (!isset($thisData[$file][$line])) {
                     $thisData[$file][$line] = $data;
                 } else {
                     $thisData[$file][$line] = array_unique(array_merge($thisData[$file][$line], $data));
                 }
             }
         }
     }
     $coverage->setData($thisData);
     $coverage->setTests(array_merge($coverage->getTests(), $that->getTests()));
 }