Passed
Pull Request — master (#156)
by Wilmer
02:29
created

LoggerProxyTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 25
dl 0
loc 44
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testLogMethods() 0 11 1
A logMethodsProvider() 0 10 1
A testMethodLog() 0 11 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Yii\Debug\Tests\Collector;
6
7
use PHPUnit\Framework\TestCase;
8
use Psr\Log\LoggerInterface;
9
use Psr\Log\LogLevel;
10
use Yiisoft\Yii\Debug\Collector\LogCollector;
11
use Yiisoft\Yii\Debug\Collector\LoggerInterfaceProxy;
12
13
final class LoggerProxyTest extends TestCase
14
{
15
    /**
16
     * @dataProvider logMethodsProvider()
17
     */
18
    public function testLogMethods(string $method, string $level, string $message, array $context): void
19
    {
20
        $logger = $this->createMock(LoggerInterface::class);
21
        $collector = $this->createMock(LogCollector::class);
22
        $collector
23
            ->expects($this->once())
24
            ->method('collect')
25
            ->with($level, $message, $context);
26
        $proxy = new LoggerInterfaceProxy($logger, $collector);
27
28
        $proxy->$method($message, $context);
29
    }
30
31
    /**
32
     * @dataProvider logMethodsProvider()
33
     */
34
    public function testMethodLog($method, string $level, string $message, array $context): void
35
    {
36
        $logger = $this->createMock(LoggerInterface::class);
37
        $collector = $this->createMock(LogCollector::class);
38
        $collector
39
            ->expects($this->once())
40
            ->method('collect')
41
            ->with($level, $message, $context);
42
        $proxy = new LoggerInterfaceProxy($logger, $collector);
43
44
        $proxy->log($level, $message, $context);
45
    }
46
47
    public function logMethodsProvider(): array
48
    {
49
        return [
50
            ['alert', LogLevel::ALERT, 'message', []],
51
            ['critical', LogLevel::CRITICAL, 'message', []],
52
            ['debug', LogLevel::DEBUG, 'message', []],
53
            ['emergency', LogLevel::EMERGENCY, 'message', []],
54
            ['error', LogLevel::ERROR, 'message', ['context']],
55
            ['info', LogLevel::INFO, 'message', ['context']],
56
            ['warning', LogLevel::WARNING, 'message', ['context']],
57
        ];
58
    }
59
}
60