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 use SebastianBergmann\CodeCoverage\Util;
|
Chris@14
|
14
|
Chris@14
|
15 class Totals
|
Chris@14
|
16 {
|
Chris@14
|
17 /**
|
Chris@14
|
18 * @var \DOMNode
|
Chris@14
|
19 */
|
Chris@14
|
20 private $container;
|
Chris@14
|
21
|
Chris@14
|
22 /**
|
Chris@14
|
23 * @var \DOMElement
|
Chris@14
|
24 */
|
Chris@14
|
25 private $linesNode;
|
Chris@14
|
26
|
Chris@14
|
27 /**
|
Chris@14
|
28 * @var \DOMElement
|
Chris@14
|
29 */
|
Chris@14
|
30 private $methodsNode;
|
Chris@14
|
31
|
Chris@14
|
32 /**
|
Chris@14
|
33 * @var \DOMElement
|
Chris@14
|
34 */
|
Chris@14
|
35 private $functionsNode;
|
Chris@14
|
36
|
Chris@14
|
37 /**
|
Chris@14
|
38 * @var \DOMElement
|
Chris@14
|
39 */
|
Chris@14
|
40 private $classesNode;
|
Chris@14
|
41
|
Chris@14
|
42 /**
|
Chris@14
|
43 * @var \DOMElement
|
Chris@14
|
44 */
|
Chris@14
|
45 private $traitsNode;
|
Chris@14
|
46
|
Chris@14
|
47 public function __construct(\DOMElement $container)
|
Chris@14
|
48 {
|
Chris@14
|
49 $this->container = $container;
|
Chris@14
|
50 $dom = $container->ownerDocument;
|
Chris@14
|
51
|
Chris@14
|
52 $this->linesNode = $dom->createElementNS(
|
Chris@14
|
53 'http://schema.phpunit.de/coverage/1.0',
|
Chris@14
|
54 'lines'
|
Chris@14
|
55 );
|
Chris@14
|
56
|
Chris@14
|
57 $this->methodsNode = $dom->createElementNS(
|
Chris@14
|
58 'http://schema.phpunit.de/coverage/1.0',
|
Chris@14
|
59 'methods'
|
Chris@14
|
60 );
|
Chris@14
|
61
|
Chris@14
|
62 $this->functionsNode = $dom->createElementNS(
|
Chris@14
|
63 'http://schema.phpunit.de/coverage/1.0',
|
Chris@14
|
64 'functions'
|
Chris@14
|
65 );
|
Chris@14
|
66
|
Chris@14
|
67 $this->classesNode = $dom->createElementNS(
|
Chris@14
|
68 'http://schema.phpunit.de/coverage/1.0',
|
Chris@14
|
69 'classes'
|
Chris@14
|
70 );
|
Chris@14
|
71
|
Chris@14
|
72 $this->traitsNode = $dom->createElementNS(
|
Chris@14
|
73 'http://schema.phpunit.de/coverage/1.0',
|
Chris@14
|
74 'traits'
|
Chris@14
|
75 );
|
Chris@14
|
76
|
Chris@14
|
77 $container->appendChild($this->linesNode);
|
Chris@14
|
78 $container->appendChild($this->methodsNode);
|
Chris@14
|
79 $container->appendChild($this->functionsNode);
|
Chris@14
|
80 $container->appendChild($this->classesNode);
|
Chris@14
|
81 $container->appendChild($this->traitsNode);
|
Chris@14
|
82 }
|
Chris@14
|
83
|
Chris@14
|
84 public function getContainer()
|
Chris@14
|
85 {
|
Chris@14
|
86 return $this->container;
|
Chris@14
|
87 }
|
Chris@14
|
88
|
Chris@14
|
89 public function setNumLines($loc, $cloc, $ncloc, $executable, $executed)
|
Chris@14
|
90 {
|
Chris@14
|
91 $this->linesNode->setAttribute('total', $loc);
|
Chris@14
|
92 $this->linesNode->setAttribute('comments', $cloc);
|
Chris@14
|
93 $this->linesNode->setAttribute('code', $ncloc);
|
Chris@14
|
94 $this->linesNode->setAttribute('executable', $executable);
|
Chris@14
|
95 $this->linesNode->setAttribute('executed', $executed);
|
Chris@14
|
96 $this->linesNode->setAttribute(
|
Chris@14
|
97 'percent',
|
Chris@14
|
98 $executable === 0 ? 0 : \sprintf('%01.2F', Util::percent($executed, $executable, false))
|
Chris@14
|
99 );
|
Chris@14
|
100 }
|
Chris@14
|
101
|
Chris@14
|
102 public function setNumClasses($count, $tested)
|
Chris@14
|
103 {
|
Chris@14
|
104 $this->classesNode->setAttribute('count', $count);
|
Chris@14
|
105 $this->classesNode->setAttribute('tested', $tested);
|
Chris@14
|
106 $this->classesNode->setAttribute(
|
Chris@14
|
107 'percent',
|
Chris@14
|
108 $count === 0 ? 0 : \sprintf('%01.2F', Util::percent($tested, $count, false))
|
Chris@14
|
109 );
|
Chris@14
|
110 }
|
Chris@14
|
111
|
Chris@14
|
112 public function setNumTraits($count, $tested)
|
Chris@14
|
113 {
|
Chris@14
|
114 $this->traitsNode->setAttribute('count', $count);
|
Chris@14
|
115 $this->traitsNode->setAttribute('tested', $tested);
|
Chris@14
|
116 $this->traitsNode->setAttribute(
|
Chris@14
|
117 'percent',
|
Chris@14
|
118 $count === 0 ? 0 : \sprintf('%01.2F', Util::percent($tested, $count, false))
|
Chris@14
|
119 );
|
Chris@14
|
120 }
|
Chris@14
|
121
|
Chris@14
|
122 public function setNumMethods($count, $tested)
|
Chris@14
|
123 {
|
Chris@14
|
124 $this->methodsNode->setAttribute('count', $count);
|
Chris@14
|
125 $this->methodsNode->setAttribute('tested', $tested);
|
Chris@14
|
126 $this->methodsNode->setAttribute(
|
Chris@14
|
127 'percent',
|
Chris@14
|
128 $count === 0 ? 0 : \sprintf('%01.2F', Util::percent($tested, $count, false))
|
Chris@14
|
129 );
|
Chris@14
|
130 }
|
Chris@14
|
131
|
Chris@14
|
132 public function setNumFunctions($count, $tested)
|
Chris@14
|
133 {
|
Chris@14
|
134 $this->functionsNode->setAttribute('count', $count);
|
Chris@14
|
135 $this->functionsNode->setAttribute('tested', $tested);
|
Chris@14
|
136 $this->functionsNode->setAttribute(
|
Chris@14
|
137 'percent',
|
Chris@14
|
138 $count === 0 ? 0 : \sprintf('%01.2F', Util::percent($tested, $count, false))
|
Chris@14
|
139 );
|
Chris@14
|
140 }
|
Chris@14
|
141 }
|