Passed
Branch master (4b23d6)
by Tim
04:40
created

TestLdapSearchTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 30
dl 0
loc 47
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testSearchSuccesful() 0 21 1
A testSearchFailed() 0 22 1
1
<?php
2
3
namespace SimpleSAML\Module\Monitor\Test;
4
5
use SimpleSAML\Configuration;
6
use SimpleSAML\Module\Monitor\TestCase;
7
use SimpleSAML\Module\Monitor\TestData;
8
use SimpleSAML\Module\Monitor\State;
9
10
/**
11
 * Tests for TestCase\Ldap\Search
12
 */
13
class TestLdapSearchTest extends \PHPUnit\Framework\TestCase
14
{
15
    public function testSearchSuccesful(): void
16
    {
17
        $authSourceData = [
18
            'search.base' => 'OU=example,DC=example,DC=org',
19
            'search.username' => 'testuser',
20
            'search.password' => 'password',
21
        ];
22
23
        $connectionMock = $this->getMockBuilder('LdapSearch')->setMethods(
24
            ['searchfordn']
25
        )->disableOriginalConstructor()->getMock();
26
        $connectionMock->expects($this->once())->method('searchfordn')->will($this->returnValue(true));
27
        $confTest = new TestCase\AuthSource\Ldap\Search(
28
            new TestData([
29
                'authSourceData' => Configuration::loadFromArray($authSourceData),
30
                'connection' => $connectionMock,
31
            ])
32
        );
33
        $testResult = $confTest->getTestResult();
34
35
        $this->assertEquals(State::OK, $testResult->getState());
36
    }
37
38
    public function testSearchFailed(): void
39
    {
40
        $authSourceData = [
41
            'search.base' => 'OU=example,DC=example,DC=org',
42
            'search.username' => 'CN=testuser,OU=example,DC=example,DC=org',
43
            'search.password' => 'password',
44
        ];
45
        $connectionMock = $this->getMockBuilder('LdapSearch')->setMethods(
46
            ['searchfordn']
47
        )->disableOriginalConstructor()->getMock();
48
        $connectionMock->expects($this->once())->method('searchfordn')->will(
49
            $this->throwException(new \SimpleSAML\Error\Error('UNHANDLEDEXCEPTION'))
50
        );
51
        $confTest = new TestCase\AuthSource\Ldap\Search(
52
            new TestData([
53
                'authSourceData' => Configuration::loadFromArray($authSourceData),
54
                'connection' => $connectionMock,
55
            ])
56
        );
57
        $testResult = $confTest->getTestResult();
58
59
        $this->assertEquals(State::ERROR, $testResult->getState());
60
    }
61
}
62