forked from laravel/framework
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAuthDatabaseUserProviderTest.php
More file actions
executable file
·78 lines (66 loc) · 3.36 KB
/
AuthDatabaseUserProviderTest.php
File metadata and controls
executable file
·78 lines (66 loc) · 3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
use Mockery as m;
class AuthDatabaseUserProviderTest extends PHPUnit_Framework_TestCase
{
public function tearDown()
{
m::close();
}
public function testRetrieveByIDReturnsUserWhenUserIsFound()
{
$conn = m::mock('Illuminate\Database\Connection');
$conn->shouldReceive('table')->once()->with('foo')->andReturn($conn);
$conn->shouldReceive('find')->once()->with(1)->andReturn(['id' => 1, 'name' => 'Dayle']);
$hasher = m::mock('Illuminate\Contracts\Hashing\Hasher');
$provider = new Illuminate\Auth\DatabaseUserProvider($conn, $hasher, 'foo');
$user = $provider->retrieveById(1);
$this->assertInstanceOf('Illuminate\Auth\GenericUser', $user);
$this->assertEquals(1, $user->getAuthIdentifier());
$this->assertEquals('Dayle', $user->name);
}
public function testRetrieveByIDReturnsNullWhenUserIsNotFound()
{
$conn = m::mock('Illuminate\Database\Connection');
$conn->shouldReceive('table')->once()->with('foo')->andReturn($conn);
$conn->shouldReceive('find')->once()->with(1)->andReturn(null);
$hasher = m::mock('Illuminate\Contracts\Hashing\Hasher');
$provider = new Illuminate\Auth\DatabaseUserProvider($conn, $hasher, 'foo');
$user = $provider->retrieveById(1);
$this->assertNull($user);
}
public function testRetrieveByCredentialsReturnsUserWhenUserIsFound()
{
$conn = m::mock('Illuminate\Database\Connection');
$conn->shouldReceive('table')->once()->with('foo')->andReturn($conn);
$conn->shouldReceive('where')->once()->with('username', 'dayle');
$conn->shouldReceive('first')->once()->andReturn(['id' => 1, 'name' => 'taylor']);
$hasher = m::mock('Illuminate\Contracts\Hashing\Hasher');
$provider = new Illuminate\Auth\DatabaseUserProvider($conn, $hasher, 'foo');
$user = $provider->retrieveByCredentials(['username' => 'dayle', 'password' => 'foo']);
$this->assertInstanceOf('Illuminate\Auth\GenericUser', $user);
$this->assertEquals(1, $user->getAuthIdentifier());
$this->assertEquals('taylor', $user->name);
}
public function testRetrieveByCredentialsReturnsNullWhenUserIsFound()
{
$conn = m::mock('Illuminate\Database\Connection');
$conn->shouldReceive('table')->once()->with('foo')->andReturn($conn);
$conn->shouldReceive('where')->once()->with('username', 'dayle');
$conn->shouldReceive('first')->once()->andReturn(null);
$hasher = m::mock('Illuminate\Contracts\Hashing\Hasher');
$provider = new Illuminate\Auth\DatabaseUserProvider($conn, $hasher, 'foo');
$user = $provider->retrieveByCredentials(['username' => 'dayle']);
$this->assertNull($user);
}
public function testCredentialValidation()
{
$conn = m::mock('Illuminate\Database\Connection');
$hasher = m::mock('Illuminate\Contracts\Hashing\Hasher');
$hasher->shouldReceive('check')->once()->with('plain', 'hash')->andReturn(true);
$provider = new Illuminate\Auth\DatabaseUserProvider($conn, $hasher, 'foo');
$user = m::mock('Illuminate\Contracts\Auth\Authenticatable');
$user->shouldReceive('getAuthPassword')->once()->andReturn('hash');
$result = $provider->validateCredentials($user, ['password' => 'plain']);
$this->assertTrue($result);
}
}