/**
  * 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());
 }