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

TestCase   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Test Coverage

Coverage 88.89%

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 32
ccs 8
cts 9
cp 0.8889
rs 10
c 0
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 4 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\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