Completed
Pull Request — master (#16)
by
unknown
20:01
created

TestUtil   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 70%

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 1
dl 0
loc 37
ccs 7
cts 10
cp 0.7
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A makeTempDir() 0 21 3
A __construct() 0 3 1
1
<?php
2
3
/*
4
 * This file is part of the webmozart/glob package.
5
 *
6
 * (c) Bernhard Schussek <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace CPSIT\Glob\Test;
13
14
use Webmozart\PathUtil\Path;
15
16
/**
17
 * Contains utility methods for testing.
18
 *
19
 * @since  3.1
20
 *
21
 * @author Bernhard Schussek <[email protected]>
22
 */
23
final class TestUtil
24
{
25
    /**
26
     * Creates a temporary directory.
27
     *
28
     * @param string $namespace The directory path in the system's temporary
29
     *                          directory.
30
     * @param string $className The name of the test class.
31
     *
32
     * @return string The path to the created directory.
33
     */
34 146
    public static function makeTempDir($namespace, $className)
35
    {
36 146
        if (false !== ($pos = strrpos($className, '\\'))) {
37 146
            $shortClass = substr($className, $pos + 1);
38
        } else {
39
            $shortClass = $className;
40
        }
41
42
        // Usage of realpath() is important if the temporary directory is a
43
        // symlink to another directory (e.g. /var => /private/var on some Macs)
44
        // We want to know the real path to avoid comparison failures with
45
        // code that uses real paths only
46 146
        $systemTempDir = Path::normalize(realpath(sys_get_temp_dir()));
47 146
        $basePath = $systemTempDir.'/'.$namespace.'/'.$shortClass;
48
49 146
        while (false === @mkdir($tempDir = $basePath.rand(10000, 99999), 0777, true)) {
50
            // Run until we are able to create a directory
51
        }
52
53 146
        return $tempDir;
54
    }
55
56
    private function __construct()
57
    {
58
    }
59
}
60