Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Platform
Commits
67d873e2
Unverified
Commit
67d873e2
authored
Jun 28, 2017
by
Nicolas Widart
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding more UserRepository tests
parent
beee4278
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
213 additions
and
2 deletions
+213
-2
SentinelUserRepositoryTest.php
Modules/User/Tests/SentinelUserRepositoryTest.php
+213
-2
No files found.
Modules/User/Tests/SentinelUserRepositoryTest.php
View file @
67d873e2
...
@@ -2,7 +2,13 @@
...
@@ -2,7 +2,13 @@
namespace
Modules\User\Tests
;
namespace
Modules\User\Tests
;
use
Modules\User\Entities\UserToken
;
use
Illuminate\Support\Facades\Event
;
use
Modules\User\Entities\Sentinel\User
;
use
Modules\User\Events\UserHasRegistered
;
use
Modules\User\Events\UserIsUpdating
;
use
Modules\User\Events\UserWasCreated
;
use
Modules\User\Events\UserWasUpdated
;
use
Modules\User\Exceptions\UserNotFoundException
;
use
Modules\User\Repositories\RoleRepository
;
use
Modules\User\Repositories\RoleRepository
;
use
Modules\User\Repositories\UserRepository
;
use
Modules\User\Repositories\UserRepository
;
...
@@ -25,17 +31,222 @@ class SentinelUserRepositoryTest extends BaseUserTestCase
...
@@ -25,17 +31,222 @@ class SentinelUserRepositoryTest extends BaseUserTestCase
}
}
/** @test */
/** @test */
public
function
it_creates_
new_user_with_api_keys
()
public
function
it_creates_
a_new_user
()
{
{
$this
->
user
->
create
([
$this
->
user
->
create
([
'email'
=>
'n.widart@gmail.com'
,
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
'password'
=>
'demo1234'
,
]);
]);
$user
=
$this
->
user
->
find
(
1
);
$user
=
$this
->
user
->
find
(
1
);
$this
->
assertInstanceOf
(
User
::
class
,
$user
);
$this
->
assertCount
(
1
,
$this
->
user
->
all
());
}
/** @test */
public
function
it_fires_event_when_user_created
()
{
Event
::
fake
();
$user
=
$this
->
user
->
create
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
]);
Event
::
assertDispatched
(
UserHasRegistered
::
class
,
function
(
$e
)
use
(
$user
)
{
return
$e
->
user
->
id
===
$user
->
id
;
});
}
/** @test */
public
function
it_fires_event_when_user_has_registered
()
{
Event
::
fake
();
$user
=
$this
->
user
->
create
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
],
true
);
Event
::
assertDispatched
(
UserWasCreated
::
class
,
function
(
$e
)
use
(
$user
)
{
return
$e
->
user
->
id
===
$user
->
id
;
});
}
/** @test */
public
function
it_hashes_user_password
()
{
$this
->
createRole
(
'User'
);
$userOne
=
$this
->
user
->
create
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
]);
$userTwo
=
$this
->
user
->
createWithRoles
([
'email'
=>
'jane@doe.com'
,
'password'
=>
'demo1234'
,
],
[
'User'
]);
$userThree
=
$this
->
user
->
createWithRolesFromCli
([
'email'
=>
'john@doe.com'
,
'password'
=>
'demo1234'
,
],
[
'User'
]);
$this
->
assertNotEquals
(
'demo1234'
,
$userOne
->
password
);
$this
->
assertNotEquals
(
'demo1234'
,
$userTwo
->
password
);
$this
->
assertNotEquals
(
'demo1234'
,
$userThree
->
password
);
}
/** @test */
public
function
it_creates_user_with_given_role
()
{
$this
->
createRole
(
'User'
);
$user
=
$this
->
user
->
createWithRoles
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
],
[
'User'
]);
$this
->
assertInstanceOf
(
User
::
class
,
$user
);
$this
->
assertCount
(
1
,
$this
->
user
->
all
());
}
/** @test */
public
function
it_creates_user_without_triggering_events_for_cli
()
{
Event
::
fake
();
$this
->
user
->
createWithRolesFromCli
([
'email'
=>
'john@doe.com'
,
'password'
=>
'demo1234'
,
],
[
'User'
]);
Event
::
assertNotDispatched
(
UserWasCreated
::
class
);
Event
::
assertNotDispatched
(
UserHasRegistered
::
class
);
}
/** @test */
public
function
it_creates_new_user_with_api_keys
()
{
$user
=
$this
->
user
->
create
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
]);
$this
->
assertCount
(
1
,
$user
->
api_keys
);
$this
->
assertCount
(
1
,
$user
->
api_keys
);
}
}
/** @test */
public
function
it_updates_a_user
()
{
$user
=
$this
->
user
->
create
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
]);
$this
->
user
->
update
(
$user
,
[
'first_name'
=>
'John'
,
'last_name'
=>
'Doe'
]);
$this
->
assertEquals
(
'John'
,
$user
->
first_name
);
$this
->
assertEquals
(
'Doe'
,
$user
->
last_name
);
}
/** @test */
public
function
it_triggers_events_on_user_update
()
{
$user
=
$this
->
user
->
create
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
]);
Event
::
fake
();
$this
->
user
->
update
(
$user
,
[
'first_name'
=>
'John'
,
'last_name'
=>
'Doe'
]);
Event
::
assertDispatched
(
UserWasUpdated
::
class
,
function
(
$e
)
use
(
$user
)
{
return
$e
->
user
->
id
===
$user
->
id
;
});
Event
::
assertDispatched
(
UserIsUpdating
::
class
,
function
(
$e
)
use
(
$user
)
{
return
$e
->
user
->
id
===
$user
->
id
;
});
}
/** @test */
public
function
it_updates_user_and_syncs_roles
()
{
$this
->
createRole
(
'User'
);
$this
->
createRole
(
'Admin'
);
$user
=
$this
->
user
->
createWithRoles
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
],
[
1
]);
$this
->
user
->
updateAndSyncRoles
(
$user
->
id
,
[
'first_name'
=>
'John'
,
'last_name'
=>
'Doe'
,
'activated'
=>
1
],
[
2
]);
$user
->
refresh
();
$this
->
assertEquals
(
'John'
,
$user
->
first_name
);
$this
->
assertEquals
(
'Doe'
,
$user
->
last_name
);
$this
->
assertCount
(
1
,
$user
->
roles
);
}
/** @test */
public
function
it_triggers_event_on_user_update_and_role_sync
()
{
$this
->
createRole
(
'User'
);
$this
->
createRole
(
'Admin'
);
$user
=
$this
->
user
->
createWithRoles
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
],
[
1
]);
Event
::
fake
();
$this
->
user
->
updateAndSyncRoles
(
$user
->
id
,
[
'first_name'
=>
'John'
,
'last_name'
=>
'Doe'
,
'activated'
=>
1
],
[
2
]);
Event
::
assertDispatched
(
UserWasUpdated
::
class
,
function
(
$e
)
use
(
$user
)
{
return
$e
->
user
->
id
===
$user
->
id
;
});
Event
::
assertDispatched
(
UserIsUpdating
::
class
,
function
(
$e
)
use
(
$user
)
{
return
$e
->
user
->
id
===
$user
->
id
;
});
}
/** @test */
public
function
it_deletes_a_user
()
{
$this
->
user
->
create
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
]);
$this
->
assertCount
(
1
,
$this
->
user
->
all
());
$this
->
user
->
delete
(
1
);
$this
->
assertCount
(
0
,
$this
->
user
->
all
());
}
/** @test */
public
function
it_throws_exception_if_user_not_found_when_deleting
()
{
$this
->
expectException
(
UserNotFoundException
::
class
);
$this
->
user
->
delete
(
1
);
}
/** @test */
public
function
it_finds_a_user_by_its_credentials
()
{
$this
->
user
->
create
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
]);
$user
=
$this
->
user
->
findByCredentials
([
'email'
=>
'n.widart@gmail.com'
,
'password'
=>
'demo1234'
,
]);
$this
->
assertEquals
(
'n.widart@gmail.com'
,
$user
->
email
);
}
private
function
createRole
(
$name
)
private
function
createRole
(
$name
)
{
{
return
$this
->
role
->
create
([
return
$this
->
role
->
create
([
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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