LoggerFactoryTest::testWithMailHandler()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 13
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace EcodevTests\Felix\Log;
6
7
use Ecodev\Felix\Log\Handler\DbHandler;
8
use Ecodev\Felix\Log\Handler\MailerHandler;
9
use Ecodev\Felix\Log\LoggerFactory;
10
use Laminas\ServiceManager\ServiceManager;
11
use Monolog\Logger;
12
use PHPUnit\Framework\TestCase;
13
14
class LoggerFactoryTest extends TestCase
15
{
16
    protected function setUp(): void
17
    {
18
        @mkdir('logs');
19
    }
20
21
    protected function tearDown(): void
22
    {
23
        shell_exec('rm -rf logs/');
24
    }
25
26
    public function testWithMailHandler(): void
27
    {
28
        $container = new ServiceManager([
29
            'factories' => [
30
                DbHandler::class => fn () => $this->createMock(DbHandler::class),
31
                MailerHandler::class => fn () => $this->createMock(MailerHandler::class),
32
            ],
33
        ]);
34
35
        $factory = new LoggerFactory();
36
        $actual = $factory($container, '');
37
        self::assertInstanceOf(Logger::class, $actual);
38
        self::assertCount(3, $actual->getHandlers());
39
    }
40
41
    public function testWithoutMailHandler(): void
42
    {
43
        $container = new ServiceManager([
44
            'factories' => [
45
                DbHandler::class => fn () => $this->createMock(DbHandler::class),
46
                MailerHandler::class => fn () => null,
47
            ],
48
        ]);
49
50
        $factory = new LoggerFactory();
51
        $actual = $factory($container, '');
52
        self::assertInstanceOf(Logger::class, $actual);
53
        self::assertCount(2, $actual->getHandlers());
54
    }
55
}
56