diff options
author | Frederic Guillot <fred@kanboard.net> | 2015-11-27 09:15:12 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2015-11-27 09:15:12 -0500 |
commit | 2451706316f08db2aa4b79730c02d297a5f5d59b (patch) | |
tree | 6fb8570e9a699f9838f481dfbd8c11302ddb2d7a /tests/units/Core/Ldap/UserTest.php | |
parent | f837e70a2d74eb37c4c5de7e4f54c8bf8ec78db7 (diff) |
Add generic LDAP client library
Diffstat (limited to 'tests/units/Core/Ldap/UserTest.php')
-rw-r--r-- | tests/units/Core/Ldap/UserTest.php | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/tests/units/Core/Ldap/UserTest.php b/tests/units/Core/Ldap/UserTest.php new file mode 100644 index 00000000..b19592c2 --- /dev/null +++ b/tests/units/Core/Ldap/UserTest.php @@ -0,0 +1,95 @@ +<?php + +require_once __DIR__.'/../../Base.php'; + +use Kanboard\Core\Ldap\User; + +class UserTest extends Base +{ + public function testGetProfile() + { + $entries = array( + 'count' => 1, + 0 => array( + 'count' => 2, + 'dn' => 'uid=my_user,ou=People,dc=kanboard,dc=local', + 'displayname' => array( + 'count' => 1, + 0 => 'My LDAP user', + ), + 'mail' => array( + 'count' => 2, + 0 => 'user1@localhost', + 1 => 'user2@localhost', + ), + 'samaccountname' => array( + 'count' => 1, + 0 => 'my_ldap_user', + ), + 0 => 'displayname', + 1 => 'mail', + 2 => 'samaccountname', + ) + ); + + $expected = array( + 'ldap_id' => 'uid=my_user,ou=People,dc=kanboard,dc=local', + 'username' => 'my_ldap_user', + 'name' => 'My LDAP user', + 'email' => 'user1@localhost', + 'is_admin' => 0, + 'is_project_admin' => 0, + 'is_ldap_user' => 1, + ); + + $query = $this + ->getMockBuilder('\Kanboard\Core\Ldap\Query') + ->setConstructorArgs(array($entries)) + ->setMethods(array( + 'execute', + 'hasResult', + )) + ->getMock(); + + $query + ->expects($this->once()) + ->method('execute') + ->with( + $this->equalTo('my_ldap_resource'), + $this->equalTo('ou=People,dc=kanboard,dc=local'), + $this->equalTo('(uid=my_user)') + ); + + $query + ->expects($this->once()) + ->method('hasResult') + ->will($this->returnValue(true)); + + $user = $this + ->getMockBuilder('\Kanboard\Core\Ldap\User') + ->setConstructorArgs(array($query)) + ->setMethods(array( + 'getAttributeUsername', + 'getAttributeEmail', + 'getAttributeName', + )) + ->getMock(); + + $user + ->expects($this->any()) + ->method('getAttributeUsername') + ->will($this->returnValue('samaccountname')); + + $user + ->expects($this->any()) + ->method('getAttributeName') + ->will($this->returnValue('displayname')); + + $user + ->expects($this->any()) + ->method('getAttributeEmail') + ->will($this->returnValue('mail')); + + $this->assertEquals($expected, $user->getProfile('my_ldap_resource', 'ou=People,dc=kanboard,dc=local', '(uid=my_user)')); + } +} |