Completed
Push — master ( 35cb5a...823c18 )
by Alessandro
06:53
created

Cleaner::deleteTempConfig()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2.0625

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 7
ccs 3
cts 4
cp 0.75
rs 9.4285
cc 2
eloc 4
nc 2
nop 0
crap 2.0625
1
<?php
2
3
namespace Paraunit\File;
4
5
use Paraunit\Configuration\PHPUnitConfig;
6
7
/**
8
 * Class Cleaner
9
 * @package Paraunit\File
10
 */
11
class Cleaner
12
{
13
    /** @var  TempDirectory */
14
    private $tempDirectory;
15
16
    /** @var PHPUnitConfig */
17
    private $phpunitConfig;
18 15
19
    /**
20 15
     * Cleaner constructor.
21 15
     * @param TempDirectory $tempDirectory
22
     * @param PHPUnitConfig $phpunitConfig
23 15
     */
24
    public function __construct(TempDirectory $tempDirectory, PHPUnitConfig $phpunitConfig)
25 15
    {
26 15
        $this->tempDirectory = $tempDirectory;
27
        $this->phpunitConfig = $phpunitConfig;
28
    }
29
30
    public function purgeCurrentTempDir()
31
    {
32 49
        self::cleanUpDir($this->tempDirectory->getTempDirForThisExecution());
33
    }
34 49
35
    public function deleteTempConfig()
36
    {
37
        $filename = $this->phpunitConfig->getFileFullPath();
38 49
        if (file_exists($filename)) {
39 49
            unlink($filename);
40
        }
41 49
    }
42 49
43 49
    /**
44
     * @param string $dir
45 49
     * @return bool True if the directory existed and it has been deleted
46
     */
47
    public static function cleanUpDir($dir)
48
    {
49 49
        if (! file_exists($dir)) {
50
            return false;
51
        }
52
53
        $it = new \RecursiveDirectoryIterator($dir, \RecursiveDirectoryIterator::SKIP_DOTS);
54
        $files = new \RecursiveIteratorIterator($it, \RecursiveIteratorIterator::CHILD_FIRST);
55
56
        foreach ($files as $file) {
57
            if ($file->isDir()) {
58
                rmdir($file->getRealPath());
59
            } else {
60
                unlink($file->getRealPath());
61
            }
62
        }
63
64
        return rmdir($dir);
65
    }
66
}
67