Passed
Push — search-or-choose-page ( 2890bb...a9ad34 )
by
unknown
08:26
created

LoggerState   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 23
rs 10
c 0
b 0
f 0
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 6 3
A tearDownOnce() 0 2 1
A tearDown() 0 2 1
A setUpOnce() 0 2 1
1
<?php
2
3
namespace SilverStripe\Dev\State;
4
5
use Monolog\Handler\NullHandler;
6
use Monolog\Logger;
7
use Psr\Log\LoggerInterface;
8
use SilverStripe\Core\Injector\Injector;
9
use SilverStripe\Dev\SapphireTest;
10
11
/**
12
 * Disables any user configured loggers by pushing a NullHandler during PHPUnit tests.
13
 *
14
 * This is designed specifically for Monolog. If using another PSR-3 compatible logging package, this will
15
 * not do anything.
16
 */
17
class LoggerState implements TestState
18
{
19
    public function setUp(SapphireTest $test)
20
    {
21
        /** @var Logger $userLogger */
22
        $userLogger = Injector::inst()->get(LoggerInterface::class);
23
        if ($userLogger && $userLogger instanceof Logger) {
0 ignored issues
show
introduced by
$userLogger is always a sub-type of Monolog\Logger.
Loading history...
24
            $userLogger->setHandlers([new NullHandler()]);
25
        }
26
    }
27
28
    public function tearDown(SapphireTest $test)
29
    {
30
        // noop
31
    }
32
33
    public function setUpOnce($class)
34
    {
35
        // noop
36
    }
37
38
    public function tearDownOnce($class)
39
    {
40
        // noop
41
    }
42
}
43