33namespace Adldap \Laravel \Tests ;
44
55use Adldap \AdldapInterface ;
6+ use Adldap \Connections \ConnectionInterface ;
7+ use Adldap \Connections \Provider ;
8+ use Adldap \Connections \ProviderInterface ;
69use Adldap \Laravel \Commands \Import ;
710use Adldap \Laravel \Facades \Resolver ;
811use Adldap \Laravel \Tests \Handlers \LdapAttributeHandler ;
1316use Illuminate \Support \Facades \App ;
1417use Illuminate \Support \Facades \Auth ;
1518use Illuminate \Support \Facades \Hash ;
19+ use Mockery as m ;
1620
1721class DatabaseProviderTest extends DatabaseTestCase
1822{
@@ -89,8 +93,20 @@ public function auth_fails_when_user_not_found()
8993 /** @test */
9094 public function config_scopes_are_applied ()
9195 {
96+ $ ldapMock = m::mock (AdldapInterface::class);
97+ App::instance (AdldapInterface::class, $ ldapMock );
98+ /** @var Provider $provider */
99+ $ provider = App::make (Provider::class);
92100 config (['ldap_auth.scopes ' => [JohnDoeScope::class]]);
93101
102+ $ providerMock = m::mock (ProviderInterface::class);
103+ $ connectionMock = m::mock (ConnectionInterface::class);
104+ 105+ $ providerMock ->shouldReceive ('getConnection ' )->once ()->andReturn ($ connectionMock );
106+ $ connectionMock ->shouldReceive ('isBound ' )->once ()->andReturn (true );
107+ $ ldapMock ->shouldReceive ('getProvider ' )->once ()->andReturn ($ providerMock );
108+ $ providerMock ->shouldReceive ('search ' )->once ()->andReturn ($ provider ->search ());
109+ 94110 $ expectedFilter = '(&(objectclass=75円73円65円72円)(objectcategory=70円65円72円73円6円f6円e)(!(objectclass=63円6円f6円e74円61円63円74円))(cn=4円a6円f68円6円e20円44円6円f65円)) ' ;
95111
96112 $ this ->assertEquals ($ expectedFilter , Resolver::query ()->getQuery ());
@@ -219,6 +235,10 @@ public function auth_attempts_fallback_using_config_option()
219235 /** @test */
220236 public function auth_attempts_using_fallback_does_not_require_connection ()
221237 {
238+ $ ldapMock = m::mock (AdldapInterface::class);
239+ App::instance (AdldapInterface::class, $ ldapMock );
240+ /** @var Provider $provider */
241+ $ provider = App::make (Provider::class);
222242 config (['ldap_auth.login_fallback ' => true ]);
223243
224244 EloquentUser::create ([
@@ -232,6 +252,14 @@ public function auth_attempts_using_fallback_does_not_require_connection()
232252 'password ' => 'Password123 ' ,
233253 ];
234254
255+ $ providerMock = m::mock (ProviderInterface::class);
256+ $ connectionMock = m::mock (ConnectionInterface::class);
257+ 258+ $ providerMock ->shouldReceive ('getConnection ' )->times (3 )->andReturn ($ connectionMock );
259+ $ connectionMock ->shouldReceive ('isBound ' )->times (3 )->andReturn (true );
260+ $ ldapMock ->shouldReceive ('getProvider ' )->times (3 )->andReturn ($ providerMock );
261+ $ providerMock ->shouldReceive ('search ' )->times (3 )->andReturn ($ provider ->search ());
262+ 235263 $ this ->assertTrue (Auth::attempt ($ credentials ));
236264
237265 $ user = Auth::user ();
0 commit comments