annotate vendor/phpunit/php-code-coverage/src/Report/Xml/Project.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@14 1 <?php
Chris@14 2 /*
Chris@14 3 * This file is part of the php-code-coverage package.
Chris@14 4 *
Chris@14 5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
Chris@14 6 *
Chris@14 7 * For the full copyright and license information, please view the LICENSE
Chris@14 8 * file that was distributed with this source code.
Chris@14 9 */
Chris@14 10
Chris@14 11 namespace SebastianBergmann\CodeCoverage\Report\Xml;
Chris@14 12
Chris@14 13 class Project extends Node
Chris@14 14 {
Chris@14 15 /**
Chris@14 16 * @param string $directory
Chris@14 17 */
Chris@14 18 public function __construct($directory)
Chris@14 19 {
Chris@14 20 $this->init();
Chris@14 21 $this->setProjectSourceDirectory($directory);
Chris@14 22 }
Chris@14 23
Chris@14 24 private function init()
Chris@14 25 {
Chris@14 26 $dom = new \DOMDocument();
Chris@14 27 $dom->loadXML('<?xml version="1.0" ?><phpunit xmlns="http://schema.phpunit.de/coverage/1.0"><build/><project/></phpunit>');
Chris@14 28
Chris@14 29 $this->setContextNode(
Chris@14 30 $dom->getElementsByTagNameNS(
Chris@14 31 'http://schema.phpunit.de/coverage/1.0',
Chris@14 32 'project'
Chris@14 33 )->item(0)
Chris@14 34 );
Chris@14 35 }
Chris@14 36
Chris@14 37 private function setProjectSourceDirectory($name)
Chris@14 38 {
Chris@14 39 $this->getContextNode()->setAttribute('source', $name);
Chris@14 40 }
Chris@14 41
Chris@14 42 /**
Chris@14 43 * @return string
Chris@14 44 */
Chris@14 45 public function getProjectSourceDirectory()
Chris@14 46 {
Chris@14 47 return $this->getContextNode()->getAttribute('source');
Chris@14 48 }
Chris@14 49
Chris@14 50 /**
Chris@14 51 * @return BuildInformation
Chris@14 52 */
Chris@14 53 public function getBuildInformation()
Chris@14 54 {
Chris@14 55 $buildNode = $this->getDom()->getElementsByTagNameNS(
Chris@14 56 'http://schema.phpunit.de/coverage/1.0',
Chris@14 57 'build'
Chris@14 58 )->item(0);
Chris@14 59
Chris@14 60 if (!$buildNode) {
Chris@14 61 $buildNode = $this->getDom()->documentElement->appendChild(
Chris@14 62 $this->getDom()->createElementNS(
Chris@14 63 'http://schema.phpunit.de/coverage/1.0',
Chris@14 64 'build'
Chris@14 65 )
Chris@14 66 );
Chris@14 67 }
Chris@14 68
Chris@14 69 return new BuildInformation($buildNode);
Chris@14 70 }
Chris@14 71
Chris@14 72 public function getTests()
Chris@14 73 {
Chris@14 74 $testsNode = $this->getContextNode()->getElementsByTagNameNS(
Chris@14 75 'http://schema.phpunit.de/coverage/1.0',
Chris@14 76 'tests'
Chris@14 77 )->item(0);
Chris@14 78
Chris@14 79 if (!$testsNode) {
Chris@14 80 $testsNode = $this->getContextNode()->appendChild(
Chris@14 81 $this->getDom()->createElementNS(
Chris@14 82 'http://schema.phpunit.de/coverage/1.0',
Chris@14 83 'tests'
Chris@14 84 )
Chris@14 85 );
Chris@14 86 }
Chris@14 87
Chris@14 88 return new Tests($testsNode);
Chris@14 89 }
Chris@14 90
Chris@14 91 public function asDom()
Chris@14 92 {
Chris@14 93 return $this->getDom();
Chris@14 94 }
Chris@14 95 }