PsrHandlerTest.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php declare(strict_types=1);
  2. /*
  3. * This file is part of the Monolog package.
  4. *
  5. * (c) Jordi Boggiano <j.boggiano@seld.be>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Monolog\Handler;
  11. use Monolog\Level;
  12. use Monolog\LevelName;
  13. use Monolog\Test\TestCase;
  14. use Monolog\Formatter\LineFormatter;
  15. /**
  16. * @covers Monolog\Handler\PsrHandler::handle
  17. */
  18. class PsrHandlerTest extends TestCase
  19. {
  20. public function logLevelProvider()
  21. {
  22. return array_map(
  23. fn (Level $level) => [$level->toLevelName(), $level],
  24. Level::cases()
  25. );
  26. }
  27. /**
  28. * @dataProvider logLevelProvider
  29. */
  30. public function testHandlesAllLevels(LevelName $levelName, Level $level)
  31. {
  32. $message = 'Hello, world! ' . $level->value;
  33. $context = ['foo' => 'bar', 'level' => $level->value];
  34. $psrLogger = $this->createMock('Psr\Log\NullLogger');
  35. $psrLogger->expects($this->once())
  36. ->method('log')
  37. ->with(strtolower($levelName->value), $message, $context);
  38. $handler = new PsrHandler($psrLogger);
  39. $handler->handle($this->getRecord($level, $message, context: $context));
  40. }
  41. public function testFormatter()
  42. {
  43. $message = 'Hello, world!';
  44. $context = ['foo' => 'bar'];
  45. $level = Level::Error;
  46. $levelName = LevelName::Error;
  47. $psrLogger = $this->createMock('Psr\Log\NullLogger');
  48. $psrLogger->expects($this->once())
  49. ->method('log')
  50. ->with(strtolower($levelName->value), 'dummy', $context);
  51. $handler = new PsrHandler($psrLogger);
  52. $handler->setFormatter(new LineFormatter('dummy'));
  53. $handler->handle($this->getRecord($level, $message, context: $context, datetime: new \DateTimeImmutable()));
  54. }
  55. }