/var/www/hkosl.com/demo_google/application/vendor/phpunit/php-code-coverage/tests/tests/XMLTest.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
/*
 * This file is part of the php-code-coverage package.
 *
 * (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 
SebastianBergmann\CodeCoverage\TestCase;

class 
XMLTest extends TestCase
{
    private static 
$TEST_REPORT_PATH_SOURCE;

    public static function 
setUpBeforeClass()
    {
        
parent::setUpBeforeClass();

        
self::$TEST_REPORT_PATH_SOURCE TEST_FILES_PATH 'Report' DIRECTORY_SEPARATOR 'XML';
    }

    protected function 
tearDown()
    {
        
parent::tearDown();

        
$tmpFilesIterator = new \FilesystemIterator(self::$TEST_TMP_PATH);

        foreach (
$tmpFilesIterator as $path => $fileInfo) {
            
/* @var \SplFileInfo $fileInfo */
            
unlink($fileInfo->getPathname());
        }
    }

    public function 
testForBankAccountTest()
    {
        
$expectedFilesPath self::$TEST_REPORT_PATH_SOURCE DIRECTORY_SEPARATOR 'CoverageForBankAccount';

        
$xml = new Facade;
        
$xml->process($this->getCoverageForBankAccount(), self::$TEST_TMP_PATH);

        
$this->assertFilesEquals($expectedFilesPathself::$TEST_TMP_PATH);
    }

    public function 
testForFileWithIgnoredLines()
    {
        
$expectedFilesPath self::$TEST_REPORT_PATH_SOURCE DIRECTORY_SEPARATOR 'CoverageForFileWithIgnoredLines';

        
$xml = new Facade;
        
$xml->process($this->getCoverageForFileWithIgnoredLines(), self::$TEST_TMP_PATH);

        
$this->assertFilesEquals($expectedFilesPathself::$TEST_TMP_PATH);
    }

    public function 
testForClassWithAnonymousFunction()
    {
        
$expectedFilesPath =
            
self::$TEST_REPORT_PATH_SOURCE DIRECTORY_SEPARATOR 'CoverageForClassWithAnonymousFunction';

        
$xml = new Facade;
        
$xml->process($this->getCoverageForClassWithAnonymousFunction(), self::$TEST_TMP_PATH);

        
$this->assertFilesEquals($expectedFilesPathself::$TEST_TMP_PATH);
    }

    
/**
     * @param string $expectedFilesPath
     * @param string $actualFilesPath
     */
    
private function assertFilesEquals($expectedFilesPath$actualFilesPath)
    {
        
$expectedFilesIterator = new \FilesystemIterator($expectedFilesPath);
        
$actualFilesIterator   = new \FilesystemIterator($actualFilesPath);

        
$this->assertEquals(
            
iterator_count($expectedFilesIterator),
            
iterator_count($actualFilesIterator),
            
'Generated files and expected files not match'
        
);

        foreach (
$expectedFilesIterator as $path => $fileInfo) {
            
/* @var \SplFileInfo $fileInfo */
            
$filename $fileInfo->getFilename();

            
$actualFile $actualFilesPath DIRECTORY_SEPARATOR $filename;

            
$this->assertFileExists($actualFile);

            
$this->assertStringMatchesFormatFile(
                
$fileInfo->getPathname(),
                
file_get_contents($actualFile),
                
"${filename} not match"
            
);
        }
    }
}