Project.php
Same filename in this branch
Namespace
SebastianBergmann\CodeCoverage\Report\XmlFile
-
vendor/
phpunit/ php-code-coverage/ src/ Report/ Xml/ Project.php
View source
<?php
declare (strict_types=1);
/*
* This file is part of phpunit/php-code-coverage.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\CodeCoverage\Report\Xml;
use DOMDocument;
/**
* @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage
*/
final class Project extends Node {
public function __construct(string $directory) {
$this->init();
$this->setProjectSourceDirectory($directory);
}
public function projectSourceDirectory() : string {
return $this->contextNode()
->getAttribute('source');
}
public function buildInformation() : BuildInformation {
$buildNode = $this->dom()
->getElementsByTagNameNS('https://schema.phpunit.de/coverage/1.0', 'build')
->item(0);
if (!$buildNode) {
$buildNode = $this->dom()->documentElement
->appendChild($this->dom()
->createElementNS('https://schema.phpunit.de/coverage/1.0', 'build'));
}
return new BuildInformation($buildNode);
}
public function tests() : Tests {
$testsNode = $this->contextNode()
->getElementsByTagNameNS('https://schema.phpunit.de/coverage/1.0', 'tests')
->item(0);
if (!$testsNode) {
$testsNode = $this->contextNode()
->appendChild($this->dom()
->createElementNS('https://schema.phpunit.de/coverage/1.0', 'tests'));
}
return new Tests($testsNode);
}
public function asDom() : DOMDocument {
return $this->dom();
}
private function init() : void {
$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0" ?><phpunit xmlns="https://schema.phpunit.de/coverage/1.0"><build/><project/></phpunit>');
$this->setContextNode($dom->getElementsByTagNameNS('https://schema.phpunit.de/coverage/1.0', 'project')
->item(0));
}
private function setProjectSourceDirectory(string $name) : void {
$this->contextNode()
->setAttribute('source', $name);
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
Project | @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage |