Version 1
[yaffs-website] / vendor / phpunit / php-code-coverage / src / CodeCoverage / Report / XML / Totals.php
1 <?php
2 /*
3  * This file is part of the PHP_CodeCoverage package.
4  *
5  * (c) Sebastian Bergmann <sebastian@phpunit.de>
6  *
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10
11 /**
12  * @since Class available since Release 2.0.0
13  */
14 class PHP_CodeCoverage_Report_XML_Totals
15 {
16     /**
17      * @var DOMNode
18      */
19     private $container;
20
21     /**
22      * @var DOMElement
23      */
24     private $linesNode;
25
26     /**
27      * @var DOMElement
28      */
29     private $methodsNode;
30
31     /**
32      * @var DOMElement
33      */
34     private $functionsNode;
35
36     /**
37      * @var DOMElement
38      */
39     private $classesNode;
40
41     /**
42      * @var DOMElement
43      */
44     private $traitsNode;
45
46     public function __construct(DOMElement $container)
47     {
48         $this->container = $container;
49         $dom             = $container->ownerDocument;
50
51         $this->linesNode = $dom->createElementNS(
52             'http://schema.phpunit.de/coverage/1.0',
53             'lines'
54         );
55
56         $this->methodsNode = $dom->createElementNS(
57             'http://schema.phpunit.de/coverage/1.0',
58             'methods'
59         );
60
61         $this->functionsNode = $dom->createElementNS(
62             'http://schema.phpunit.de/coverage/1.0',
63             'functions'
64         );
65
66         $this->classesNode = $dom->createElementNS(
67             'http://schema.phpunit.de/coverage/1.0',
68             'classes'
69         );
70
71         $this->traitsNode = $dom->createElementNS(
72             'http://schema.phpunit.de/coverage/1.0',
73             'traits'
74         );
75
76         $container->appendChild($this->linesNode);
77         $container->appendChild($this->methodsNode);
78         $container->appendChild($this->functionsNode);
79         $container->appendChild($this->classesNode);
80         $container->appendChild($this->traitsNode);
81     }
82
83     public function getContainer()
84     {
85         return $this->container;
86     }
87
88     public function setNumLines($loc, $cloc, $ncloc, $executable, $executed)
89     {
90         $this->linesNode->setAttribute('total', $loc);
91         $this->linesNode->setAttribute('comments', $cloc);
92         $this->linesNode->setAttribute('code', $ncloc);
93         $this->linesNode->setAttribute('executable', $executable);
94         $this->linesNode->setAttribute('executed', $executed);
95         $this->linesNode->setAttribute(
96             'percent',
97             PHP_CodeCoverage_Util::percent($executed, $executable, true)
98         );
99     }
100
101     public function setNumClasses($count, $tested)
102     {
103         $this->classesNode->setAttribute('count', $count);
104         $this->classesNode->setAttribute('tested', $tested);
105         $this->classesNode->setAttribute(
106             'percent',
107             PHP_CodeCoverage_Util::percent($tested, $count, true)
108         );
109     }
110
111     public function setNumTraits($count, $tested)
112     {
113         $this->traitsNode->setAttribute('count', $count);
114         $this->traitsNode->setAttribute('tested', $tested);
115         $this->traitsNode->setAttribute(
116             'percent',
117             PHP_CodeCoverage_Util::percent($tested, $count, true)
118         );
119     }
120
121     public function setNumMethods($count, $tested)
122     {
123         $this->methodsNode->setAttribute('count', $count);
124         $this->methodsNode->setAttribute('tested', $tested);
125         $this->methodsNode->setAttribute(
126             'percent',
127             PHP_CodeCoverage_Util::percent($tested, $count, true)
128         );
129     }
130
131     public function setNumFunctions($count, $tested)
132     {
133         $this->functionsNode->setAttribute('count', $count);
134         $this->functionsNode->setAttribute('tested', $tested);
135         $this->functionsNode->setAttribute(
136             'percent',
137             PHP_CodeCoverage_Util::percent($tested, $count, true)
138         );
139     }
140 }