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

TestLdapSearchTest::testSearchSuccesful()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 14
nc 1
nop 0
dl 0
loc 21
rs 9.7998
c 0
b 0
f 0
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\Search
13
 */
14
class TestLdapSearchTest extends \PHPUnit\Framework\TestCase
15
{
16
    public function testSearchSuccesful(): void
17
    {
18
        $authSourceData = [
19
            'search.base' => 'OU=example,DC=example,DC=org',
20
            'search.username' => 'testuser',
21
            'search.password' => 'password',
22
        ];
23
24
        $connectionMock = $this->getMockBuilder(Ldap::class)->onlyMethods(
25
            ['searchfordn']
26
        )->disableOriginalConstructor()->getMock();
27
        $connectionMock->expects($this->once())->method('searchfordn')->will($this->returnValue(true));
28
        $confTest = new TestCase\AuthSource\Ldap\Search(
29
            new TestData([
30
                'authSourceData' => Configuration::loadFromArray($authSourceData),
31
                'connection' => $connectionMock,
32
            ])
33
        );
34
        $testResult = $confTest->getTestResult();
35
36
        $this->assertEquals(State::OK, $testResult->getState());
37
    }
38
39
    public function testSearchFailed(): void
40
    {
41
        $authSourceData = [
42
            'search.base' => 'OU=example,DC=example,DC=org',
43
            'search.username' => 'CN=testuser,OU=example,DC=example,DC=org',
44
            'search.password' => 'password',
45
        ];
46
        $connectionMock = $this->getMockBuilder(Ldap::class)->onlyMethods(
47
            ['searchfordn']
48
        )->disableOriginalConstructor()->getMock();
49
        $connectionMock->expects($this->once())->method('searchfordn')->will(
50
            $this->throwException(new \SimpleSAML\Error\Error('UNHANDLEDEXCEPTION'))
51
        );
52
        $confTest = new TestCase\AuthSource\Ldap\Search(
53
            new TestData([
54
                'authSourceData' => Configuration::loadFromArray($authSourceData),
55
                'connection' => $connectionMock,
56
            ])
57
        );
58
        $testResult = $confTest->getTestResult();
59
60
        $this->assertEquals(State::ERROR, $testResult->getState());
61
    }
62
}
63