Passed
Branch monitor-2.5.x (577716)
by Tim
01:35
created

TestFreeSpaceTest::testFreeSpaceAlmostOut()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 19
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 12
nc 1
nop 0
dl 0
loc 19
rs 9.8666
c 0
b 0
f 0
1
<?php
2
3
namespace SimpleSAML\Modules\Monitor\Test;
4
5
use \SimpleSAML\Modules\Monitor\TestCase as TestCase;
6
use \SimpleSAML\Modules\Monitor\TestData as TestData;
7
use \SimpleSAML\Modules\Monitor\State as State;
8
9
/**
10
 * Tests for TestCase\FileSystem\FreeSpace
11
 */
12
class TestFreeSpaceTest extends \PHPUnit_Framework_TestCase
13
{
14
    public function testFreeSpaceAvailable()
15
    {
16
        // /tmp/testdisk will be 1MB
17
        $testData = new TestData([
18
            'path' => '/tmp/testdisk',
19
            'category' => 'Test disk',
20
        ]);
21
        $spaceTest = new TestCase\FileSystem\FreeSpace($testData);
22
        $testResult = $spaceTest->getTestResult();
23
        $freePercentage = $testResult->getOutput('free_percentage');
24
25
        $this->assertGreaterThanOrEqual(15, $freePercentage);
26
        $this->assertEquals(State::OK, $testResult->getState());
27
    }
28
29
    public function testFreeSpaceAlmostOut()
30
    {
31
        // Fill /tmp/testdisk for 90%
32
        $free = (disk_free_space('/tmp/testdisk') / 100) * 90;
33
        file_put_contents('/tmp/testdisk/90percent.txt', str_repeat('a', (int)$free));
34
35
        $testData = new TestData([
36
            'path' => '/tmp/testdisk',
37
            'category' => 'Test disk',
38
        ]);
39
        $spaceTest = new TestCase\FileSystem\FreeSpace($testData);
40
        $testResult = $spaceTest->getTestResult();
41
        $freePercentage = $testResult->getOutput('free_percentage');
42
43
        $this->assertGreaterThanOrEqual(5.0, $freePercentage);
44
        $this->assertLessThan(15.0, $freePercentage);
45
        $this->assertEquals(State::WARNING, $testResult->getState());
46
47
        unlink('/tmp/testdisk/90percent.txt');
48
    }
49
50
    public function testFreeSpaceOut()
51
    {
52
        // Fill /tmp/testdisk for 99%
53
        $free = (disk_free_space('/tmp/testdisk') / 100) * 99;
54
        file_put_contents('/tmp/testdisk/99percent.txt', str_repeat('b', (int)$free));
55
56
        $testData = new TestData([
57
            'path' => '/tmp/testdisk',
58
            'category' => 'Test disk',
59
        ]);
60
        $spaceTest = new TestCase\FileSystem\FreeSpace($testData);
61
        $testResult = $spaceTest->getTestResult();
62
        $freePercentage = $testResult->getOutput('free_percentage');
63
64
        $this->assertLessThan(5.0, $freePercentage);
65
        $this->assertEquals(State::ERROR, $testResult->getState());
66
67
        unlink('/tmp/testdisk/99percent.txt');
68
    }
69
}
70