Ejemplo n.º 1
0
 /**
  * @param CodeCoverage $coverage
  *
  * @return Directory
  */
 public function build(CodeCoverage $coverage)
 {
     $files = $coverage->getData();
     $commonPath = $this->reducePaths($files);
     $root = new Directory($commonPath, null);
     $this->addItems($root, $this->buildDirectoryStructure($files), $coverage->getTests(), $coverage->getCacheTokens());
     return $root;
 }
Ejemplo n.º 2
0
    /**
     * @param CodeCoverage $coverage
     * @param string       $target
     *
     * @return string
     */
    public function process(CodeCoverage $coverage, $target = null)
    {
        $filter = $coverage->filter();
        $output = sprintf('<?php
$coverage = new SebastianBergmann\\CodeCoverage\\CodeCoverage;
$coverage->setData(%s);
$coverage->setTests(%s);

$filter = $coverage->filter();
$filter->setWhitelistedFiles(%s);

return $coverage;', var_export($coverage->getData(true), 1), var_export($coverage->getTests(), 1), var_export($filter->getWhitelistedFiles(), 1));
        if ($target !== null) {
            return file_put_contents($target, $output);
        } else {
            return $output;
        }
    }
Ejemplo n.º 3
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()));
 }
Ejemplo n.º 4
0
 public function testMerge2()
 {
     $coverage = new CodeCoverage($this->createMock(Xdebug::class), new Filter());
     $coverage->merge($this->getCoverageForBankAccount());
     $this->assertEquals($this->getExpectedDataArrayForBankAccount(), $coverage->getData());
 }