Passed
Push — master ( f51c1b...16736d )
by Arthur
05:36
created

TestCase::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1.0156

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 7
ccs 3
cts 4
cp 0.75
crap 1.0156
rs 10
c 0
b 0
f 0
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 3
{
20
    use RefreshDatabase, CreatesApplication;
21 3
22
    /**
23
     * @var UserService
24 2
     */
25
    private $userService;
26 2
27 2
    public function setUp()
28
    {
29
        parent::setUp();
30 2
        $this->userService = $this->app->make(UserServiceContract::class);
31
        $this->app->make(AuthorizationContract::class)->clearPermissionCache();
32
        $this->app->make(\Spatie\Permission\PermissionRegistrar::class)->registerPermissions();
33 2
        $this->seedData();
34
    }
35 2
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