Completed
Push — master ( 973f33...44c0d9 )
by Bernhard
31:04 queued 27:30
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 2
Bugs 1 Features 1
Metric Value
wmc 4
c 2
b 1
f 1
lcom 0
cbo 1
dl 0
loc 37
ccs 7
cts 10
cp 0.7
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A makeTempDir() 0 21 3
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 Webmozart\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)) {
0 ignored issues
show
Unused Code introduced by
This while loop is empty and can be removed.

This check looks for while loops that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

Consider removing the loop.

Loading history...
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