/** * Collect coverage data. * * @param SimpleXMLElement $file Clover XML object of a file. * @param string $path Path to source file. * @param string $filename Filename. * @return \Contrib\Bundle\CoverallsV1Bundle\Entity\SourceFile */ protected function collectCoverage(\SimpleXMLElement $file, $path, $filename) { if ($this->jsonFile->hasSourceFile($path)) { $srcFile = $this->jsonFile->getSourceFile($path); } else { $srcFile = new SourceFile($path, $filename); } foreach ($file->line as $line) { if ((string) $line['type'] === 'stmt') { $lineNum = (int) $line['num']; if ($lineNum > 0) { $srcFile->addCoverage($lineNum - 1, (int) $line['count']); } } } return $srcFile; }
/** * Add source file. * * @param SourceFile $sourceFile */ public function addSourceFile(SourceFile $sourceFile) { $this->sourceFiles[$sourceFile->getPath()] = $sourceFile; }
protected function assertSourceFile(SourceFile $sourceFile, $name, $path, $fileLines, array $coverage, $source) { $this->assertEquals($name, $sourceFile->getName()); $this->assertEquals($path, $sourceFile->getPath()); $this->assertEquals($fileLines, $sourceFile->getFileLines()); $this->assertSame($coverage, $sourceFile->getCoverage()); $this->assertEquals($source, $sourceFile->getSource()); }