Passed
Push — master ( 1dc943...5f0a93 )
by Arthur
08:24 queued 35s
created

TestCase::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1.037

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 2
cts 3
cp 0.6667
crap 1.037
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\User\Contracts\UserServiceContract;
14
use Modules\User\Entities\User;
15
use Modules\User\Services\UserService;
16
17
abstract class TestCase extends BaseTestCase
18
{
19 3
    use RefreshDatabase, CreatesApplication;
20
21 3
    /**
22
     * @var UserService
23
     */
24 2
    private $userService;
25
26 2
    public function setUp()
27 2
    {
28
        parent::setUp();
29
        $this->userService = $this->app->make(UserServiceContract::class);
30 2
    }
31
32
    protected function createUser()
33 2
    {
34
        return $this->userService->create(factory(User::class)->raw());
35 2
    }
36
37
    protected function actAsRandomUser()
38
    {
39
        $users = User::all();
40
        if ($users->isEmpty()) {
41
            $user = $this->createUser();
42
        } else {
43
            $user = $users->random();
44
        }
45
46
        $this->actingAs($user);
47
48
        return $user;
49
    }
50
}
51