Passed
Push — monitor-3.0.x ( f85cdc...51d4ea )
by Tim
03:29
created

TestLdapBindTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 41
c 0
b 0
f 0
dl 0
loc 65
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testBindSuccesful() 0 19 1
A testAuthenticationFailed() 0 19 1
A testBindFailed() 0 21 1
1
<?php
2
3
namespace SimpleSAML\Module\monitor\Test;
4
5
use SimpleSAML\Configuration;
6
use SimpleSAML\Module\ldap\Auth\Ldap;
7
use SimpleSAML\Module\monitor\TestCase;
8
use SimpleSAML\Module\monitor\TestData;
9
use SimpleSAML\Module\monitor\State;
10
11
/**
12
 * Tests for TestCase\Ldap\Bind
13
 */
14
class TestLdapBindTest extends \PHPUnit\Framework\TestCase
15
{
16
    public function testBindSuccesful(): void
17
    {
18
        $authSourceData = [
19
            'search.username' => 'testuser',
20
            'search.password' => 'password',
21
        ];
22
        $connectionMock = $this->getMockBuilder(Ldap::class)->onlyMethods(
23
            ['bind']
24
        )->disableOriginalConstructor()->getMock();
25
        $connectionMock->expects($this->once())->method('bind')->will($this->returnValue(true));
26
        $confTest = new TestCase\AuthSource\Ldap\Bind(
27
            new TestData([
28
                'authSourceData' => Configuration::loadFromArray($authSourceData),
29
                'connection' => $connectionMock,
30
            ])
31
        );
32
        $testResult = $confTest->getTestResult();
33
34
        $this->assertEquals(State::OK, $testResult->getState());
35
    }
36
37
    public function testBindFailed(): void
38
    {
39
        $authSourceData = [
40
            'search.username' => 'testuser',
41
            'search.password' => 'password',
42
        ];
43
        $connectionMock = $this->getMockBuilder(Ldap::class)->onlyMethods(
44
            ['bind']
45
        )->disableOriginalConstructor()->getMock();
46
        $connectionMock->expects($this->once())->method('bind')->will(
47
            $this->throwException(new \Exception())
48
        );
49
        $confTest = new TestCase\AuthSource\Ldap\Bind(
50
            new TestData([
51
                'authSourceData' => Configuration::loadFromArray($authSourceData),
52
                'connection' => $connectionMock,
53
            ])
54
        );
55
        $testResult = $confTest->getTestResult();
56
57
        $this->assertEquals(State::FATAL, $testResult->getState());
58
    }
59
60
    public function testAuthenticationFailed(): void
61
    {
62
        $authSourceData = [
63
            'search.username' => 'testuser',
64
            'search.password' => 'password',
65
        ];
66
        $connectionMock = $this->getMockBuilder(Ldap::class)->onlyMethods(
67
            ['bind']
68
        )->disableOriginalConstructor()->getMock();
69
        $connectionMock->expects($this->once())->method('bind')->will($this->returnValue(false));
70
        $confTest = new TestCase\AuthSource\Ldap\Bind(
71
            new TestData([
72
                'authSourceData' => Configuration::loadFromArray($authSourceData),
73
                'connection' => $connectionMock,
74
            ])
75
        );
76
        $testResult = $confTest->getTestResult();
77
78
        $this->assertEquals(State::ERROR, $testResult->getState());
79
    }
80
}
81