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);
 | |
|   }
 | |
| }
 |