Passed
Push — master ( 89f24e...8c4dad )
by Sylvain
08:05
created

EventCompleterTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 30
c 1
b 0
f 0
dl 0
loc 47
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testProcess() 0 28 1
A testProcessMinimal() 0 10 1
A tearDown() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace EcodevTests\Felix\Log;
6
7
use Ecodev\Felix\Log\EventCompleter;
8
use Ecodev\Felix\Model\CurrentUser;
9
use Ecodev\Felix\Model\User;
10
use PHPUnit\Framework\TestCase;
11
12
class EventCompleterTest extends TestCase
13
{
14
    protected function tearDown(): void
15
    {
16
        CurrentUser::set(null);
17
    }
18
19
    public function testProcessMinimal(): void
20
    {
21
        $completed = new EventCompleter('https://example.com');
22
        $actual = $completed->process([]);
23
        self::assertNull($actual['creator_id']);
24
        self::assertNull($actual['login']);
25
        self::assertIsString($actual['url']);
26
        self::assertIsString($actual['referer']);
27
        self::assertIsString($actual['request']);
28
        self::assertSame('script', $actual['ip']);
29
    }
30
31
    public function testProcess(): void
32
    {
33
        $user = self::createMock(User::class);
0 ignored issues
show
Bug Best Practice introduced by
The method PHPUnit\Framework\TestCase::createMock() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

33
        /** @scrutinizer ignore-call */ 
34
        $user = self::createMock(User::class);
Loading history...
34
        $user->expects(self::once())
35
            ->method('getId')
36
            ->willReturn(123);
37
38
        $user->expects(self::once())
39
            ->method('getLogin')
40
            ->willReturn('my login');
41
42
        CurrentUser::set($user);
43
        $completed = new EventCompleter('https://example.com');
44
45
        $actual = $completed->process([
46
            'message' => '',
47
            'extra' => [
48
                'errno' => 1,
49
            ],
50
        ]);
51
52
        self::assertStringContainsString('Stacktrace:', $actual['message']);
53
        self::assertSame(123, $actual['creator_id']);
54
        self::assertSame('my login', $actual['login']);
55
        self::assertIsString($actual['url']);
56
        self::assertIsString($actual['referer']);
57
        self::assertIsString($actual['request']);
58
        self::assertSame('script', $actual['ip']);
59
    }
60
}
61