Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Christophe Turbout
auth
Commits
431bbc99
Commit
431bbc99
authored
Jun 05, 2019
by
Bertrand Gauthier
Browse files
Quelques corrections de tests unitaires
parent
acd80024
Changes
5
Hide whitespace changes
Inline
Side-by-side
tests/Bootstrap.php
View file @
431bbc99
...
...
@@ -29,7 +29,7 @@ class Bootstrap
static
::
initAutoloader
();
static
::
$serviceManager
=
new
ServiceManager
(
new
ServiceManagerConfig
()
);
static
::
$serviceManager
=
new
ServiceManager
(
[]
);
}
public
static
function
getServiceManager
()
...
...
tests/UnicaenAuthTest/Authentication/Adapter/AbstractFactoryTest.php
View file @
431bbc99
...
...
@@ -2,11 +2,14 @@
namespace
UnicaenAuthTest\Authentication\Adapter
;
use
PHPUnit_Framework_TestCase
;
use
UnicaenApp\Mapper\Ldap\People
;
use
UnicaenAuth\Authentication\Adapter\AbstractFactory
;
use
UnicaenAuth\Service\User
;
use
Zend\EventManager\EventManager
;
use
Zend\EventManager\EventManagerAwareInterface
;
use
Zend\ServiceManager\ServiceManager
;
use
UnicaenApp\Exception\LogicException
;
use
ZfcUser\Options\ModuleOptions
;
/**
* Description of AbstractFactoryTest
...
...
@@ -62,7 +65,7 @@ class AbstractFactoryTest extends PHPUnit_Framework_TestCase
/**
* @dataProvider getInvalidServiceClassName
* @expectedException \UnicaenApp\Exception\
Runtime
Exception
* @expectedException \UnicaenApp\Exception\
Logic
Exception
* @param string $serviceClassName
*/
public
function
testCreateServiceWithNameThrowsExceptionIfInvalidServiceSpecified
(
$serviceClassName
)
...
...
@@ -85,9 +88,21 @@ class AbstractFactoryTest extends PHPUnit_Framework_TestCase
if
(
'unicaen-auth_user_service'
===
$serviceName
)
{
return
new
User
();
}
if
(
'
e
vent
_m
anager'
===
$serviceName
)
{
if
(
'
E
vent
M
anager'
===
$serviceName
)
{
return
$eventManager
;
}
if
(
'zfcuser_module_options'
===
$serviceName
)
{
return
new
ModuleOptions
();
}
if
(
'unicaen-app_module_options'
===
$serviceName
)
{
return
new
\
UnicaenApp\Options\ModuleOptions
();
}
if
(
'unicaen-auth_module_options'
===
$serviceName
)
{
return
new
\
UnicaenAuth\Options\ModuleOptions
();
}
if
(
'ldap_people_mapper'
===
$serviceName
)
{
return
new
People
();
}
return
null
;
}));
...
...
tests/UnicaenAuthTest/Authentication/Adapter/CasTest.php
View file @
431bbc99
...
...
@@ -5,9 +5,10 @@ namespace UnicaenAuthTest\Authentication\Adapter;
use
PHPUnit_Framework_TestCase
;
use
UnicaenApp\Exception\RuntimeException
;
use
UnicaenAuth\Authentication\Adapter\Cas
;
use
UnicaenAuth\Authentication\Adapter\phpCASWrapper
;
use
UnicaenAuth\Options\ModuleOptions
;
use
Zend\EventManager\EventManager
;
use
Zend\Router\Http\TreeRouteStack
;
use
Zend\Uri\Uri
;
use
ZfcUser\Authentication\Adapter\AdapterChainEvent
;
use
Zend\Authentication\Result
;
...
...
@@ -69,7 +70,7 @@ class CasTest extends PHPUnit_Framework_TestCase
}));
$this
->
adapter
=
new
Cas
();
$this
->
adapter
->
setServiceManager
(
$serviceManager
)
$this
->
adapter
//
->setServiceManager($serviceManager)
->
setEventManager
(
new
EventManager
());
}
...
...
@@ -85,25 +86,28 @@ class CasTest extends PHPUnit_Framework_TestCase
/**
* @dataProvider getInvalidCasOptions
* @expectedException RuntimeException
* @expectedException \Exception
* @param array $config
*/
public
function
testThrowsExceptionIfNoCasParamSpecified
(
$config
)
public
function
testThrowsExceptionIfNoCasParamSpecified
(
array
$config
)
{
$this
->
moduleOptions
->
setCas
(
$config
);
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$this
->
adapter
->
authenticate
(
new
AdapterChainEvent
());
}
public
function
testAuthenticateReturnsNullIfNoCasConfigSpecified
()
{
$this
->
moduleOptions
->
setCas
([]);
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$result
=
$this
->
adapter
->
authenticate
(
new
AdapterChainEvent
());
$this
->
assertNull
(
$result
);
}
public
function
testAuthenticatePopulatesEventWhenAuthenticationSucceeds
()
{
/** @var phpCAS
Wrapper
|\PHPUnit_Framework_MockObject_MockObject $casClient */
$casClient
=
$this
->
createMock
(
phpCAS
Wrapper
::
class
);
/** @var
\
phpCAS|\PHPUnit_Framework_MockObject_MockObject $casClient */
$casClient
=
$this
->
createMock
(
\
phpCAS
::
class
);
$casClient
->
expects
(
$this
->
once
())
->
method
(
'getUser'
)
->
will
(
$this
->
returnValue
(
$username
=
'username'
));
...
...
@@ -112,6 +116,7 @@ class CasTest extends PHPUnit_Framework_TestCase
$event
=
new
AdapterChainEvent
();
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$this
->
adapter
->
authenticate
(
$event
);
$this
->
assertTrue
(
$this
->
adapter
->
isSatisfied
());
...
...
@@ -125,22 +130,36 @@ class CasTest extends PHPUnit_Framework_TestCase
public
function
testLogoutReturnsNullIfNoCasConfigSpecified
()
{
$this
->
moduleOptions
->
setCas
([]);
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$result
=
$this
->
adapter
->
logout
(
new
AdapterChainEvent
());
$this
->
assertNull
(
$result
);
}
public
function
testCanLogoutFromCasWithRedirectService
()
{
/** @var phpCAS
Wrapper
|\PHPUnit_Framework_MockObject_MockObject $casClient */
$casClient
=
$this
->
createMock
(
phpCAS
Wrapper
::
class
);
/** @var
\
phpCAS|\PHPUnit_Framework_MockObject_MockObject $casClient */
$casClient
=
$this
->
createMock
(
\
phpCAS
::
class
);
$casClient
->
expects
(
$this
->
once
())
->
method
(
'isAuthenticated'
)
->
will
(
$this
->
returnValue
(
true
));
$casClient
->
expects
(
$this
->
once
())
->
method
(
'logoutWithRedirectService'
);
/** @var TreeRouteStack|\PHPUnit_Framework_MockObject_MockObject $router */
$router
=
$this
->
createMock
(
TreeRouteStack
::
class
);
$router
->
expects
(
$this
->
once
())
->
method
(
'getRequestUri'
)
->
willReturn
(
new
Uri
());
$router
->
expects
(
$this
->
once
())
->
method
(
'getBaseUrl'
)
->
willReturn
(
'path'
);
$this
->
adapter
->
setCasClient
(
$casClient
);
$this
->
adapter
->
setOptions
(
$this
->
moduleOptions
);
$this
->
adapter
->
setRouter
(
$router
);
$this
->
adapter
->
logout
(
new
AdapterChainEvent
());
}
}
\ No newline at end of file
tests/UnicaenAuthTest/Authentication/Adapter/DbTest.php
View file @
431bbc99
...
...
@@ -5,10 +5,13 @@ use PDOException;
use
PHPUnit_Framework_TestCase
;
use
UnicaenAuth\Authentication\Adapter\Db
;
use
UnicaenAuth\Options\ModuleOptions
;
use
Zend\EventManager\EventInterface
;
use
Zend\Http\PhpEnvironment\Request
;
use
Zend\ServiceManager\Exception\ServiceNotFoundException
;
use
Zend\ServiceManager\ServiceManager
;
use
Zend\Stdlib\Parameters
;
use
ZfcUser\Authentication\Adapter\AdapterChainEvent
;
use
ZfcUser\Mapper\User
;
/**
* Description of DbTest
...
...
@@ -17,8 +20,16 @@ use ZfcUser\Authentication\Adapter\AdapterChainEvent;
*/
class
DbTest
extends
PHPUnit_Framework_TestCase
{
/**
* @var Db|\PHPUnit_Framework_MockObject_MockObject
*/
protected
$adapter
;
protected
$moduleOptions
;
/**
* @var User|\PHPUnit_Framework_MockObject_MockObject
*/
protected
$mapper
;
/**
...
...
@@ -45,6 +56,7 @@ class DbTest extends PHPUnit_Framework_TestCase
$this
->
mapper
=
$mapper
=
$this
->
createMock
(
'ZfcUser\Mapper\User'
/*, ['findByUsername', 'findByEmail']*/
);
/** @var ServiceManager|\PHPUnit_Framework_MockObject_MockObject $serviceManager */
$serviceManager
=
$this
->
createMock
(
'Zend\ServiceManager\ServiceManager'
/*, ['get']*/
);
$serviceManager
->
expects
(
$this
->
any
())
->
method
(
'get'
)
...
...
@@ -68,13 +80,14 @@ class DbTest extends PHPUnit_Framework_TestCase
public
function
getException
()
{
return
[
[
new
PDOException
()],
//
[new PDOException()],
[
new
ServiceNotFoundException
()],
];
}
/**
* @dataProvider getException
* @param \Exception $exception
*/
public
function
testAuthenticateReturnsFalseIfExceptionThrown
(
$exception
)
{
...
...
@@ -85,8 +98,12 @@ class DbTest extends PHPUnit_Framework_TestCase
$request
=
new
Request
();
$request
->
setPost
(
new
Parameters
([
'identity'
=>
'bob'
,
'credential'
=>
"xxxxx"
]));
$event
=
new
AdapterChainEvent
();
$event
->
setRequest
(
$request
);
/** @var EventInterface|\PHPUnit_Framework_MockObject_MockObject $event */
$event
=
$this
->
createMock
(
EventInterface
::
class
);
$event
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'getTarget'
)
->
willReturn
((
new
AdapterChainEvent
())
->
setRequest
(
$request
));
$result
=
$this
->
adapter
->
authenticate
(
$event
);
$this
->
assertFalse
(
$result
);
...
...
@@ -97,8 +114,12 @@ class DbTest extends PHPUnit_Framework_TestCase
$request
=
new
Request
();
$request
->
setPost
(
new
Parameters
([
'identity'
=>
'bob'
,
'credential'
=>
"xxxxx"
]));
$event
=
new
AdapterChainEvent
();
$event
->
setRequest
(
$request
);
/** @var EventInterface|\PHPUnit_Framework_MockObject_MockObject $event */
$event
=
$this
->
createMock
(
EventInterface
::
class
);
$event
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'getTarget'
)
->
willReturn
((
new
AdapterChainEvent
())
->
setRequest
(
$request
));
$result
=
$this
->
adapter
->
authenticate
(
$event
);
$this
->
assertFalse
(
$result
);
...
...
tests/UnicaenAuthTest/Authentication/Adapter/LdapTest.php
View file @
431bbc99
...
...
@@ -3,8 +3,11 @@
namespace
UnicaenAuthTest\Authentication\Adapter
;
use
PHPUnit_Framework_TestCase
;
use
UnicaenApp\Mapper\Ldap\People
;
use
UnicaenAuth\Authentication\Adapter\Ldap
;
use
Zend\Authentication\Result
;
use
Zend\Authentication\Storage\StorageInterface
;
use
Zend\EventManager\EventInterface
;
use
Zend\EventManager\EventManager
;
use
Zend\Http\Request
;
use
Zend\ServiceManager\ServiceManager
;
...
...
@@ -19,7 +22,7 @@ use ZfcUser\Authentication\Adapter\AdapterChainEvent;
class
LdapTest
extends
PHPUnit_Framework_TestCase
{
/**
* @var Ldap
* @var Ldap
|\PHPUnit_Framework_MockObject_MockObject
*/
protected
$adapter
;
...
...
@@ -82,12 +85,14 @@ class LdapTest extends PHPUnit_Framework_TestCase
}));
$this
->
adapter
=
new
Ldap
();
$this
->
adapter
->
setServiceManager
(
$serviceManager
)
$this
->
adapter
//
->setServiceManager($serviceManager)
->
setEventManager
(
new
EventManager
());
}
public
function
testCanProvideDefaultLdapAuthAdapter
()
{
$this
->
adapter
->
setAppModuleOptions
(
$this
->
appModuleOptions
);
$adapter
=
$this
->
adapter
->
getLdapAuthAdapter
();
$this
->
assertInstanceOf
(
'Zend\Authentication\Adapter\Ldap'
,
$adapter
);
...
...
@@ -99,10 +104,35 @@ class LdapTest extends PHPUnit_Framework_TestCase
public
function
testAuthenticatingReturnsNullIfAlreadyStatisfied
()
{
$event
=
new
AdapterChainEvent
();
$this
->
adapter
->
setSatisfied
();
/** @var AdapterChainEvent|\PHPUnit_Framework_MockObject_MockObject $adapterChainEvent */
$adapterChainEvent
=
$this
->
createMock
(
AdapterChainEvent
::
class
);
$adapterChainEvent
->
expects
(
$this
->
once
())
->
method
(
'setIdentity'
)
->
with
(
'IDENTITY'
)
->
willReturnSelf
();
$adapterChainEvent
->
expects
(
$this
->
once
())
->
method
(
'setCode'
)
->
with
(
Result
::
SUCCESS
)
->
willReturnSelf
();
/** @var EventInterface|\PHPUnit_Framework_MockObject_MockObject $event */
$event
=
$this
->
createMock
(
EventInterface
::
class
);
$event
->
expects
(
$this
->
once
())
->
method
(
'getTarget'
)
->
willReturn
(
$adapterChainEvent
);
/** @var StorageInterface|\PHPUnit_Framework_MockObject_MockObject $storage */
$storage
=
$this
->
createMock
(
StorageInterface
::
class
);
$storage
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'read'
)
->
willReturn
([
'is_satisfied'
=>
true
,
'identity'
=>
'IDENTITY'
]);
$this
->
adapter
->
setStorage
(
$storage
);
$this
->
assertNull
(
$this
->
adapter
->
authenticate
(
$event
));
$this
->
assertEquals
(
$event
->
getCode
(),
Result
::
SUCCESS
);
}
public
function
testUsurpationWithAllowedUsernameAndSuccessfulAuthentication
()
...
...
@@ -228,7 +258,7 @@ class LdapTest extends PHPUnit_Framework_TestCase
$this
->
assertFalse
(
$event
->
propagationIsStopped
());
}
protected
function
_authenticateWithUsurpation
(
$authenticationResultCode
,
AdapterChainEvent
&
$
e
vent
)
protected
function
_authenticateWithUsurpation
(
$authenticationResultCode
,
AdapterChainEvent
&
$
adapterChainE
vent
)
{
$usernameUsurpateur
=
'usurpateur'
;
$usernameUsurpe
=
'usurpe'
;
...
...
@@ -246,10 +276,39 @@ class LdapTest extends PHPUnit_Framework_TestCase
->
will
(
$this
->
returnValue
(
new
Result
(
$authenticationResultCode
,
$usernameUsurpateur
)));
$this
->
adapter
->
setLdapAuthAdapter
(
$this
->
zendAuthLdapAdapter
);
$ldapPeopleMapper
=
$this
->
createMock
(
People
::
class
);
$ldapPeopleMapper
->
expects
(
$this
->
once
())
->
method
(
'findOneByUsername'
)
->
willReturn
(
'not empty'
);
$this
->
adapter
->
setLdapPeopleMapper
(
$ldapPeopleMapper
);
$request
=
new
Request
();
$request
->
setPost
(
new
Parameters
([
'identity'
=>
$username
,
'credential'
=>
"xxxxx"
]));
$event
->
setRequest
(
$request
);
$adapterChainEvent
->
setRequest
(
$request
);
// /** @var AdapterChainEvent|\PHPUnit_Framework_MockObject_MockObject $adapterChainEvent */
// $adapterChainEvent = $this->createMock(AdapterChainEvent::class);
// $adapterChainEvent
// ->expects($this->once())
// ->method('setIdentity')
// ->with('IDENTITY')
// ->willReturnSelf();
// $adapterChainEvent
// ->expects($this->once())
// ->method('setCode')
// ->with(Result::SUCCESS)
// ->willReturnSelf();
/** @var EventInterface|\PHPUnit_Framework_MockObject_MockObject $event */
$event
=
$this
->
createMock
(
EventInterface
::
class
);
$event
->
expects
(
$this
->
once
())
->
method
(
'getTarget'
)
->
willReturn
(
$adapterChainEvent
);
$this
->
adapter
->
setOptions
(
$this
->
authModuleOptions
);
$this
->
adapter
->
authenticate
(
$event
);
}
}
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment