3
3
namespace Adldap \Laravel \Tests ;
4
4
5
5
use Adldap \AdldapInterface ;
6
+ use Adldap \Connections \ConnectionInterface ;
7
+ use Adldap \Connections \Provider ;
8
+ use Adldap \Connections \ProviderInterface ;
6
9
use Adldap \Laravel \Commands \Import ;
7
10
use Adldap \Laravel \Facades \Resolver ;
11
+ use Adldap \Laravel \Resolvers \ResolverInterface ;
12
+ use Adldap \Laravel \Resolvers \UserResolver ;
8
13
use Adldap \Laravel \Tests \Handlers \LdapAttributeHandler ;
9
14
use Adldap \Laravel \Tests \Models \TestUser as EloquentUser ;
10
15
use Adldap \Laravel \Tests \Scopes \JohnDoeScope ;
13
18
use Illuminate \Support \Facades \App ;
14
19
use Illuminate \Support \Facades \Auth ;
15
20
use Illuminate \Support \Facades \Hash ;
21
+ use Mockery as m ;
16
22
17
23
class DatabaseProviderTest extends DatabaseTestCase
18
24
{
@@ -89,8 +95,20 @@ public function auth_fails_when_user_not_found()
89
95
/** @test */
90
96
public function config_scopes_are_applied ()
91
97
{
98
+ $ ldapMock = m::mock (AdldapInterface::class);
99
+ App::instance (AdldapInterface::class, $ ldapMock );
100
+ /** @var Provider $provider */
101
+ $ provider = App::make (Provider::class);
92
102
config (['ldap_auth.scopes ' => [JohnDoeScope::class]]);
93
103
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
+
94
112
$ 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)) ' ;
95
113
96
114
$ this ->assertEquals ($ expectedFilter , Resolver::query ()->getQuery ());
@@ -219,6 +237,10 @@ public function auth_attempts_fallback_using_config_option()
219
237
/** @test */
220
238
public function auth_attempts_using_fallback_does_not_require_connection ()
221
239
{
240
+ $ ldapMock = m::mock (AdldapInterface::class);
241
+ App::instance (AdldapInterface::class, $ ldapMock );
242
+ /** @var Provider $provider */
243
+ $ provider = App::make (Provider::class);
222
244
config (['ldap_auth.login_fallback ' => true ]);
223
245
224
246
EloquentUser::create ([
@@ -232,6 +254,14 @@ public function auth_attempts_using_fallback_does_not_require_connection()
232
254
'password ' => 'Password123 ' ,
233
255
];
234
256
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
+
235
265
$ this ->assertTrue (Auth::attempt ($ credentials ));
236
266
237
267
$ user = Auth::user ();
0 commit comments