IntrospectionProcessorTest.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  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 Acme;
  11. class Tester
  12. {
  13. public function test($handler, $record)
  14. {
  15. $handler->handle($record);
  16. }
  17. }
  18. function tester($handler, $record)
  19. {
  20. $handler->handle($record);
  21. }
  22. namespace Monolog\Processor;
  23. use Monolog\Logger;
  24. use Monolog\Test\TestCase;
  25. use Monolog\Handler\TestHandler;
  26. class IntrospectionProcessorTest extends TestCase
  27. {
  28. public function getHandler()
  29. {
  30. $processor = new IntrospectionProcessor();
  31. $handler = new TestHandler();
  32. $handler->pushProcessor($processor);
  33. return $handler;
  34. }
  35. public function testProcessorFromClass()
  36. {
  37. $handler = $this->getHandler();
  38. $tester = new \Acme\Tester;
  39. $tester->test($handler, $this->getRecord());
  40. list($record) = $handler->getRecords();
  41. $this->assertEquals(__FILE__, $record['extra']['file']);
  42. $this->assertEquals(18, $record['extra']['line']);
  43. $this->assertEquals('Acme\Tester', $record['extra']['class']);
  44. $this->assertEquals('test', $record['extra']['function']);
  45. }
  46. public function testProcessorFromFunc()
  47. {
  48. $handler = $this->getHandler();
  49. \Acme\tester($handler, $this->getRecord());
  50. list($record) = $handler->getRecords();
  51. $this->assertEquals(__FILE__, $record['extra']['file']);
  52. $this->assertEquals(24, $record['extra']['line']);
  53. $this->assertEquals(null, $record['extra']['class']);
  54. $this->assertEquals('Acme\tester', $record['extra']['function']);
  55. }
  56. public function testLevelTooLow()
  57. {
  58. $input = [
  59. 'level' => Logger::DEBUG,
  60. 'extra' => [],
  61. ];
  62. $expected = $input;
  63. $processor = new IntrospectionProcessor(Logger::CRITICAL);
  64. $actual = $processor($input);
  65. $this->assertEquals($expected, $actual);
  66. }
  67. public function testLevelEqual()
  68. {
  69. $input = [
  70. 'level' => Logger::CRITICAL,
  71. 'extra' => [],
  72. ];
  73. $expected = $input;
  74. $expected['extra'] = [
  75. 'file' => null,
  76. 'line' => null,
  77. 'class' => 'ReflectionMethod',
  78. 'function' => 'invokeArgs',
  79. ];
  80. $processor = new IntrospectionProcessor(Logger::CRITICAL);
  81. $actual = $processor($input);
  82. $this->assertEquals($expected, $actual);
  83. }
  84. public function testLevelHigher()
  85. {
  86. $input = [
  87. 'level' => Logger::EMERGENCY,
  88. 'extra' => [],
  89. ];
  90. $expected = $input;
  91. $expected['extra'] = [
  92. 'file' => null,
  93. 'line' => null,
  94. 'class' => 'ReflectionMethod',
  95. 'function' => 'invokeArgs',
  96. ];
  97. $processor = new IntrospectionProcessor(Logger::CRITICAL);
  98. $actual = $processor($input);
  99. $this->assertEquals($expected, $actual);
  100. }
  101. }