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 ;
11+ use Adldap \Laravel \Resolvers \ResolverInterface ;
12+ use Adldap \Laravel \Resolvers \UserResolver ;
813use Adldap \Laravel \Tests \Handlers \LdapAttributeHandler ;
914use Adldap \Laravel \Tests \Models \TestUser as EloquentUser ;
1015use Adldap \Laravel \Tests \Scopes \JohnDoeScope ;
1318use Illuminate \Support \Facades \App ;
1419use Illuminate \Support \Facades \Auth ;
1520use Illuminate \Support \Facades \Hash ;
21+ use Mockery as m ;
1622
1723class DatabaseProviderTest extends DatabaseTestCase
1824{
@@ -89,8 +95,20 @@ public function auth_fails_when_user_not_found()
8995 /** @test */
9096 public function config_scopes_are_applied ()
9197 {
98+ $ ldapMock = m::mock (AdldapInterface::class);
99+ App::instance (AdldapInterface::class, $ ldapMock );
100+ /** @var Provider $provider */
101+ $ provider = App::make (Provider::class);
92102 config (['ldap_auth.scopes ' => [JohnDoeScope::class]]);
93103
104+ $ providerMock = m::mock (ProviderInterface::class);
105+ $ connectionMock = m::mock (ConnectionInterface::class);
106+
107+ $ providerMock ->shouldReceive ('getConnection ' )->once ()->andReturn ($ connectionMock );
108+ $ connectionMock ->shouldReceive ('isBound ' )->once ()->andReturn (true );
109+ $ ldapMock ->shouldReceive ('getProvider ' )->once ()->andReturn ($ providerMock );
110+ $ providerMock ->shouldReceive ('search ' )->once ()->andReturn ($ provider ->search ());
111+
94112 $ expectedFilter = '(&(objectclass=\75\73\65\72)(objectcategory=\70\65\72\73\6f\6e)(!(objectclass=\63\6f\6e\74\61\63\74))(cn=\4a\6f\68\6e\20\44\6f\65)) ' ;
95113
96114 $ this ->assertEquals ($ expectedFilter , Resolver::query ()->getQuery ());
@@ -219,6 +237,10 @@ public function auth_attempts_fallback_using_config_option()
219237 /** @test */
220238 public function auth_attempts_using_fallback_does_not_require_connection ()
221239 {
240+ $ ldapMock = m::mock (AdldapInterface::class);
241+ App::instance (AdldapInterface::class, $ ldapMock );
242+ /** @var Provider $provider */
243+ $ provider = App::make (Provider::class);
222244 config (['ldap_auth.login_fallback ' => true ]);
223245
224246 EloquentUser::create ([
@@ -232,6 +254,14 @@ public function auth_attempts_using_fallback_does_not_require_connection()
232254 'password ' => 'Password123 ' ,
233255 ];
234256
257+ $ providerMock = m::mock (ProviderInterface::class);
258+ $ connectionMock = m::mock (ConnectionInterface::class);
259+
260+ $ providerMock ->shouldReceive ('getConnection ' )->times (3 )->andReturn ($ connectionMock );
261+ $ connectionMock ->shouldReceive ('isBound ' )->times (3 )->andReturn (true );
262+ $ ldapMock ->shouldReceive ('getProvider ' )->times (3 )->andReturn ($ providerMock );
263+ $ providerMock ->shouldReceive ('search ' )->times (3 )->andReturn ($ provider ->search ());
264+
235265 $ this ->assertTrue (Auth::attempt ($ credentials ));
236266
237267 $ user = Auth::user ();
0 commit comments