ConsoleHandlerTest.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Migration\Logger;
  7. class ConsoleHandlerTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var ConsoleHandler
  11. */
  12. protected $consoleHandler;
  13. /**
  14. * @return void
  15. */
  16. protected function setUp()
  17. {
  18. $this->consoleHandler = new ConsoleHandler();
  19. }
  20. /**
  21. * @return array
  22. */
  23. public function dataProviderHandleSuccess()
  24. {
  25. return [
  26. ['recordLevel' => 200, 'handlerLevel' => 'infO'],
  27. ['recordLevel' => 100, 'handlerLevel' => 'deBug'],
  28. ['recordLevel' => 200, 'handlerLevel' => 'debug'],
  29. ['recordLevel' => 200, 'handlerLevel' => 200],
  30. ['recordLevel' => 100, 'handlerLevel' => 100],
  31. ['recordLevel' => 200, 'handlerLevel' => 100]
  32. ];
  33. }
  34. /**
  35. * @param string $recordLevel
  36. * @param string|int $handlerLevel
  37. * @dataProvider dataProviderHandleSuccess
  38. * @return void
  39. */
  40. public function testHandleSuccess($recordLevel, $handlerLevel)
  41. {
  42. $message = 'Success message';
  43. $extra = ['mode' => 'application mode'];
  44. $context = [];
  45. $record = ['message' => $message, 'level' => $recordLevel, 'extra' => $extra, 'context' => $context];
  46. $this->consoleHandler->setLevel($handlerLevel);
  47. ob_start();
  48. $result = $this->consoleHandler->handle($record);
  49. $output = ob_get_contents();
  50. ob_end_clean();
  51. $this->assertFalse($result);
  52. $this->assertContains('Success message', $output);
  53. }
  54. /**
  55. * @param string $recordLevel
  56. * @param string|int $handlerLevel
  57. * @dataProvider dataProviderHandleSuccess
  58. * @return void
  59. */
  60. public function testHandleSuccessWithoutBubble($recordLevel, $handlerLevel)
  61. {
  62. $message = 'Success message';
  63. $extra = ['mode' => 'application mode'];
  64. $context = [];
  65. $record = ['message' => $message, 'level' => $recordLevel, 'extra' => $extra, 'context' => $context];
  66. $this->consoleHandler->setLevel($handlerLevel);
  67. ob_start();
  68. $this->consoleHandler->setBubble(false);
  69. $result = $this->consoleHandler->handle($record);
  70. $output = ob_get_contents();
  71. ob_end_clean();
  72. $this->assertTrue($result);
  73. $this->assertContains('Success message', $output);
  74. }
  75. /**
  76. * @return array
  77. */
  78. public function dataProviderHandleError()
  79. {
  80. return [
  81. ['recordLevel' => 100, 'handlerLevel' => 200],
  82. ['recordLevel' => 100, 'handlerLevel' => 'info']
  83. ];
  84. }
  85. /**
  86. * @param string $recordLevel
  87. * @param string|int $handlerLevel
  88. * @dataProvider dataProviderHandleError
  89. * @return void
  90. */
  91. public function testHandleError($recordLevel, $handlerLevel)
  92. {
  93. $message = 'Error message';
  94. $extra = ['mode' => 'application mode'];
  95. $context = [];
  96. $record = ['message' => $message, 'level' => $recordLevel, 'extra' => $extra, 'context' => $context];
  97. $this->consoleHandler->setLevel($handlerLevel);
  98. $result = $this->consoleHandler->handle($record);
  99. $this->assertFalse($result);
  100. }
  101. /**
  102. * @return void
  103. */
  104. public function testHandleWarning()
  105. {
  106. $message = 'Warnin message';
  107. $extra = ['mode' => 'application mode'];
  108. $context = [];
  109. $record = ['message' => $message, 'level' => 300, 'extra' => $extra, 'context' => $context];
  110. $this->consoleHandler->setLevel(100);
  111. ob_start();
  112. $this->consoleHandler->setBubble(false);
  113. $result = $this->consoleHandler->handle($record);
  114. $output = ob_get_contents();
  115. ob_end_clean();
  116. $this->assertTrue($result);
  117. $this->assertContains($message, $output);
  118. }
  119. /**
  120. * @return void
  121. */
  122. public function testHandleRed()
  123. {
  124. $message = 'Colorized message';
  125. $context = [];
  126. $record = ['message' => $message, 'level' => 400, 'extra' => [], 'context' => $context];
  127. $this->consoleHandler->setLevel(100);
  128. ob_start();
  129. $result = $this->consoleHandler->handle($record);
  130. $output = ob_get_contents();
  131. ob_end_clean();
  132. $this->assertFalse($result);
  133. $this->assertContains('Colorized message', $output);
  134. }
  135. }