IpTest::testBuildListWithoutAddresses()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
3
namespace OpCacheGUITest\Unit\Auth;
4
5
use OpCacheGUI\Auth\Ip;
6
use OpCacheGUI\Auth\Whitelist;
7
use OpCacheGUI\Network\Ip\Converter;
8
use PHPUnit\Framework\TestCase;
9
10
class IpTest extends TestCase
11
{
12
    /**
13
     * @covers OpCacheGUI\Auth\Ip::__construct
14
     */
15
    public function testConstructCorrectInstance()
16
    {
17
        $whitelist = new Ip([]);
18
19
        $this->assertInstanceOf(Whitelist::class, $whitelist);
20
    }
21
22
    /**
23
     * @covers OpCacheGUI\Auth\Ip::__construct
24
     * @covers OpCacheGUI\Auth\Ip::buildWhitelist
25
     */
26
    public function testBuildListWithoutAddresses()
27
    {
28
        $whitelist = new Ip([]);
29
30
        $this->assertNull($whitelist->buildWhitelist([]));
31
    }
32
33
    /**
34
     * @covers OpCacheGUI\Auth\Ip::__construct
35
     * @covers OpCacheGUI\Auth\Ip::buildWhitelist
36
     * @covers OpCacheGUI\Auth\Ip::addWhitelist
37
     */
38
    public function testBuildListWithoutConverters()
39
    {
40
        $whitelist = new Ip([]);
41
42
        $this->assertNull($whitelist->buildWhitelist(['localhost']));
43
    }
44
45
    /**
46
     * @covers OpCacheGUI\Auth\Ip::__construct
47
     * @covers OpCacheGUI\Auth\Ip::buildWhitelist
48
     * @covers OpCacheGUI\Auth\Ip::addWhitelist
49
     */
50
    public function testBuildListWithValidConverter()
51
    {
52
        $converter = $this->createMock(Converter::class);
53
        $converter->method('isValid')->will($this->returnValue(true));
54
55
        $whitelist = new Ip([$converter]);
56
57
        $this->assertNull($whitelist->buildWhitelist(['localhost']));
58
    }
59
60
    /**
61
     * @covers OpCacheGUI\Auth\Ip::__construct
62
     * @covers OpCacheGUI\Auth\Ip::buildWhitelist
63
     * @covers OpCacheGUI\Auth\Ip::addWhitelist
64
     */
65
    public function testBuildListWithInvalidConverter()
66
    {
67
        $converter = $this->createMock(Converter::class);
68
        $converter->method('isValid')->will($this->returnValue(false));
69
70
        $whitelist = new Ip([$converter]);
71
72
        $this->assertNull($whitelist->buildWhitelist(['localhost']));
73
    }
74
75
    /**
76
     * @covers OpCacheGUI\Auth\Ip::__construct
77
     * @covers OpCacheGUI\Auth\Ip::buildWhitelist
78
     * @covers OpCacheGUI\Auth\Ip::addWhitelist
79
     * @covers OpCacheGUI\Auth\Ip::isAllowed
80
     */
81
    public function testIsAllowedTrue()
82
    {
83
        $converter = $this->createMock(Converter::class);
84
        $converter->method('isValid')->will($this->returnValue(true));
85
        $converter->method('convert')->will($this->returnValue([167772161, 167772165]));
86
87
        $whitelist = new Ip([$converter]);
88
89
        $whitelist->buildWhitelist(['10.0.0.1-10.0.0.5']);
90
91
        $this->assertTrue($whitelist->isAllowed('10.0.0.2'));
92
    }
93
94
    /**
95
     * @covers OpCacheGUI\Auth\Ip::__construct
96
     * @covers OpCacheGUI\Auth\Ip::buildWhitelist
97
     * @covers OpCacheGUI\Auth\Ip::addWhitelist
98
     * @covers OpCacheGUI\Auth\Ip::isAllowed
99
     */
100
    public function testIsAllowedFalse()
101
    {
102
        $converter = $this->createMock(Converter::class);
103
        $converter->method('isValid')->will($this->returnValue(true));
104
        $converter->method('convert')->will($this->returnValue([167772161, 167772161]));
105
106
        $whitelist = new Ip([$converter]);
107
108
        $whitelist->buildWhitelist(['10.0.0.1-10.0.0.5']);
109
110
        $this->assertFalse($whitelist->isAllowed('10.0.0.2'));
111
    }
112
}
113