SyslogTest.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Developer\Test\Unit\Model\Logger\Handler;
  8. use Magento\Config\Setup\ConfigOptionsList;
  9. use Magento\Developer\Model\Logger\Handler\Syslog;
  10. use Magento\Framework\App\Config\ScopeConfigInterface;
  11. use Magento\Framework\App\DeploymentConfig;
  12. use Magento\Framework\Logger\Monolog;
  13. use PHPUnit\Framework\TestCase;
  14. use PHPUnit_Framework_MockObject_MockObject as Mock;
  15. /**
  16. * @inheritdoc
  17. */
  18. class SyslogTest extends TestCase
  19. {
  20. /**
  21. * @var Syslog
  22. */
  23. private $model;
  24. /**
  25. * @var ScopeConfigInterface|Mock
  26. */
  27. private $scopeConfigMock;
  28. /**
  29. * @var DeploymentConfig|Mock
  30. */
  31. private $deploymentConfigMock;
  32. /**
  33. * @inheritdoc
  34. */
  35. protected function setUp()
  36. {
  37. $this->scopeConfigMock = $this->getMockForAbstractClass(ScopeConfigInterface::class);
  38. $this->deploymentConfigMock = $this->createMock(DeploymentConfig::class);
  39. $this->model = new Syslog(
  40. $this->scopeConfigMock,
  41. $this->deploymentConfigMock,
  42. 'Magento'
  43. );
  44. }
  45. /**
  46. * @return void
  47. */
  48. public function testIsHandling(): void
  49. {
  50. $record = [
  51. 'level' => Monolog::DEBUG,
  52. ];
  53. $this->scopeConfigMock
  54. ->expects($this->never())
  55. ->method('getValue');
  56. $this->deploymentConfigMock
  57. ->expects($this->once())
  58. ->method('isDbAvailable')
  59. ->willReturn(true);
  60. $this->deploymentConfigMock
  61. ->expects($this->once())
  62. ->method('get')
  63. ->with(ConfigOptionsList::CONFIG_PATH_SYSLOG_LOGGING)
  64. ->willReturn(1);
  65. $this->assertTrue(
  66. $this->model->isHandling($record)
  67. );
  68. }
  69. /**
  70. * @return void
  71. */
  72. public function testIsHandlingNotInstalled(): void
  73. {
  74. $record = [
  75. 'level' => Monolog::DEBUG,
  76. ];
  77. $this->scopeConfigMock
  78. ->expects($this->never())
  79. ->method('getValue');
  80. $this->deploymentConfigMock
  81. ->expects($this->once())
  82. ->method('isDbAvailable')
  83. ->willReturn(false);
  84. $this->assertFalse(
  85. $this->model->isHandling($record)
  86. );
  87. }
  88. /**
  89. * @return void
  90. */
  91. public function testIsHandlingDisabled(): void
  92. {
  93. $record = [
  94. 'level' => Monolog::DEBUG,
  95. ];
  96. $this->scopeConfigMock
  97. ->expects($this->never())
  98. ->method('getValue');
  99. $this->deploymentConfigMock
  100. ->expects($this->once())
  101. ->method('isDbAvailable')
  102. ->willReturn(true);
  103. $this->deploymentConfigMock
  104. ->expects($this->once())
  105. ->method('get')
  106. ->with(ConfigOptionsList::CONFIG_PATH_SYSLOG_LOGGING)
  107. ->willReturn(0);
  108. $this->assertFalse(
  109. $this->model->isHandling($record)
  110. );
  111. }
  112. }