LoggerManagerTests.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace Consolidation\Log;
  3. use Symfony\Component\Console\Output\BufferedOutput;
  4. use Symfony\Component\Console\Output\OutputInterface;
  5. use PHPUnit\Framework\TestCase;
  6. class LoggerManagerTests extends TestCase
  7. {
  8. protected $output;
  9. protected $logger;
  10. function testLoggerManager()
  11. {
  12. $fallbackOutput = new BufferedOutput();
  13. $fallbackOutput->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
  14. $fallbackLogger = new Logger($fallbackOutput);
  15. $fallbackLogger->notice('This is the fallback logger');
  16. $primaryOutput = new BufferedOutput();
  17. $primaryOutput->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
  18. $primaryLogger = new Logger($primaryOutput);
  19. $primaryLogger->notice('This is the primary logger');
  20. $replacementOutput = new BufferedOutput();
  21. $replacementOutput->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
  22. $replacementLogger = new Logger($replacementOutput);
  23. $replacementLogger->notice('This is the replacement logger');
  24. $logger = new LoggerManager();
  25. $logger->notice('Uninitialized logger.');
  26. $logger->fallbackLogger($fallbackLogger);
  27. $logger->notice('Logger with fallback.');
  28. $logger->add('default', $primaryLogger);
  29. $logger->notice('Primary logger');
  30. $logger->add('default', $replacementLogger);
  31. $logger->notice('Replaced logger');
  32. $logger->reset();
  33. $logger->notice('Reset loggers');
  34. $fallbackActual = rtrim($fallbackOutput->fetch());
  35. $primaryActual = rtrim($primaryOutput->fetch());
  36. $replacementActual = rtrim($replacementOutput->fetch());
  37. $actual = "Fallback:\n====\n$fallbackActual\nPrimary:\n====\n$primaryActual\nReplacement:\n====\n$replacementActual";
  38. $actual = preg_replace('# *$#ms', '', $actual);
  39. $actual = preg_replace('#^ *$\n#ms', '', $actual);
  40. $expected = <<< __EOT__
  41. Fallback:
  42. ====
  43. ! [NOTE] This is the fallback logger
  44. ! [NOTE] Logger with fallback.
  45. ! [NOTE] Reset loggers
  46. Primary:
  47. ====
  48. ! [NOTE] This is the primary logger
  49. ! [NOTE] Primary logger
  50. Replacement:
  51. ====
  52. ! [NOTE] This is the replacement logger
  53. ! [NOTE] Replaced logger
  54. __EOT__;
  55. $this->assertEquals($expected, $actual);
  56. }
  57. }