Passed
Push — master ( 9643a3...07db06 )
by Arthur
67:34 queued 48:37
created

TestCase   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 37
ccs 0
cts 16
cp 0
rs 10
c 0
b 0
f 0
wmc 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A seedData() 0 1 1
A setUp() 0 7 1
A createUser() 0 3 1
A actAsRandomUser() 0 12 2
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: arthur
5
 * Date: 09.10.18
6
 * Time: 21:56.
7
 */
8
9
namespace Foundation\Abstracts\Tests;
10
11
use Foundation\Traits\RefreshDatabase;
12
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
13
use Modules\Authorization\Contracts\AuthorizationContract;
14
use Modules\User\Contracts\UserServiceContract;
15
use Modules\User\Entities\User;
16
use Modules\User\Services\UserService;
17
18
abstract class TestCase extends BaseTestCase
19
{
20
    use RefreshDatabase, CreatesApplication;
21
22
    /**
23
     * @var UserService
24
     */
25
    private $userService;
26
27
    public function setUp()
28
    {
29
        parent::setUp();
30
        $this->userService = $this->app->make(UserServiceContract::class);
31
        $this->app->make(AuthorizationContract::class)->clearPermissionCache();
32
        $this->app->make(\Spatie\Permission\PermissionRegistrar::class)->registerPermissions();
33
        $this->seedData();
34
    }
35
36
    protected function seedData(){}
37
38
    protected function createUser()
39
    {
40
        return $this->userService->create(factory(User::class)->raw());
41
    }
42
43
    protected function actAsRandomUser()
44
    {
45
        $users = User::all();
46
        if ($users->isEmpty()) {
47
            $user = $this->createUser();
48
        } else {
49
            $user = $users->random();
50
        }
51
52
        $this->actingAs($user);
53
54
        return $user;
55
    }
56
}
57