forked from a64f7bb4-7358-4778-9fbe-3b882c34cc1d/v1
72 lines
2.2 KiB
PHP
72 lines
2.2 KiB
PHP
<?php
|
|
namespace Consolidation\Log;
|
|
|
|
use Symfony\Component\Console\Output\BufferedOutput;
|
|
use Symfony\Component\Console\Output\OutputInterface;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class LoggerManagerTests extends TestCase
|
|
{
|
|
protected $output;
|
|
protected $logger;
|
|
|
|
function testLoggerManager()
|
|
{
|
|
$fallbackOutput = new BufferedOutput();
|
|
$fallbackOutput->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
|
|
$fallbackLogger = new Logger($fallbackOutput);
|
|
$fallbackLogger->notice('This is the fallback logger');
|
|
|
|
$primaryOutput = new BufferedOutput();
|
|
$primaryOutput->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
|
|
$primaryLogger = new Logger($primaryOutput);
|
|
$primaryLogger->notice('This is the primary logger');
|
|
|
|
$replacementOutput = new BufferedOutput();
|
|
$replacementOutput->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
|
|
$replacementLogger = new Logger($replacementOutput);
|
|
$replacementLogger->notice('This is the replacement logger');
|
|
|
|
$logger = new LoggerManager();
|
|
|
|
$logger->notice('Uninitialized logger.');
|
|
$logger->fallbackLogger($fallbackLogger);
|
|
$logger->notice('Logger with fallback.');
|
|
$logger->add('default', $primaryLogger);
|
|
$logger->notice('Primary logger');
|
|
$logger->add('default', $replacementLogger);
|
|
$logger->notice('Replaced logger');
|
|
$logger->reset();
|
|
$logger->notice('Reset loggers');
|
|
|
|
$fallbackActual = rtrim($fallbackOutput->fetch());
|
|
$primaryActual = rtrim($primaryOutput->fetch());
|
|
$replacementActual = rtrim($replacementOutput->fetch());
|
|
|
|
$actual = "Fallback:\n====\n$fallbackActual\nPrimary:\n====\n$primaryActual\nReplacement:\n====\n$replacementActual";
|
|
|
|
$actual = preg_replace('#\r\n#ms', "\n", $actual);
|
|
$actual = preg_replace('# *$#ms', '', $actual);
|
|
$actual = preg_replace('#^ *$\n#ms', '', $actual);
|
|
|
|
$expected = <<< __EOT__
|
|
Fallback:
|
|
====
|
|
! [NOTE] This is the fallback logger
|
|
! [NOTE] Logger with fallback.
|
|
! [NOTE] Reset loggers
|
|
Primary:
|
|
====
|
|
! [NOTE] This is the primary logger
|
|
! [NOTE] Primary logger
|
|
Replacement:
|
|
====
|
|
! [NOTE] This is the replacement logger
|
|
! [NOTE] Replaced logger
|
|
__EOT__;
|
|
|
|
$expected = preg_replace('#\r\n#ms', "\n", $expected);
|
|
$this->assertEquals($expected, $actual);
|
|
}
|
|
}
|