CheckConfigTest.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\NewRelicReporting\Test\Unit\Model\Observer;
  7. use Magento\NewRelicReporting\Model\Observer\CheckConfig;
  8. /**
  9. * Class CheckConfigTest
  10. */
  11. class CheckConfigTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var CheckConfig
  15. */
  16. protected $model;
  17. /**
  18. * @var \Magento\NewRelicReporting\Model\Config|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $config;
  21. /**
  22. * @var \Magento\NewRelicReporting\Model\NewRelicWrapper|\PHPUnit_Framework_MockObject_MockObject
  23. */
  24. protected $newRelicWrapper;
  25. /**
  26. * @var \Magento\Framework\Message\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
  27. */
  28. protected $messageManager;
  29. /**
  30. * Setup
  31. *
  32. * @return void
  33. */
  34. protected function setUp()
  35. {
  36. $this->config = $this->getMockBuilder(\Magento\NewRelicReporting\Model\Config::class)
  37. ->disableOriginalConstructor()
  38. ->setMethods(['isNewRelicEnabled', 'disableModule'])
  39. ->getMock();
  40. $this->newRelicWrapper = $this->getMockBuilder(\Magento\NewRelicReporting\Model\NewRelicWrapper::class)
  41. ->disableOriginalConstructor()
  42. ->setMethods(['isExtensionInstalled'])
  43. ->getMock();
  44. $this->messageManager = $this->getMockBuilder(\Magento\Framework\Message\ManagerInterface::class)
  45. ->disableOriginalConstructor()
  46. ->getMock();
  47. $this->model = new CheckConfig(
  48. $this->config,
  49. $this->newRelicWrapper,
  50. $this->messageManager
  51. );
  52. }
  53. /**
  54. * Test case when module is disabled in config
  55. *
  56. * @return void
  57. */
  58. public function testCheckConfigModuleDisabledFromConfig()
  59. {
  60. /** @var \Magento\Framework\Event\Observer|\PHPUnit_Framework_MockObject_MockObject $eventObserver */
  61. $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
  62. ->disableOriginalConstructor()
  63. ->getMock();
  64. $this->config->expects($this->once())
  65. ->method('isNewRelicEnabled')
  66. ->willReturn(false);
  67. $this->model->execute($eventObserver);
  68. }
  69. /**
  70. * Test case when module is enabled in config but php extension is not installed
  71. *
  72. * @return void
  73. */
  74. public function testCheckConfigExtensionNotInstalled()
  75. {
  76. /** @var \Magento\Framework\Event\Observer|\PHPUnit_Framework_MockObject_MockObject $eventObserver */
  77. $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
  78. ->disableOriginalConstructor()
  79. ->getMock();
  80. $this->config->expects($this->once())
  81. ->method('isNewRelicEnabled')
  82. ->willReturn(true);
  83. $this->newRelicWrapper->expects($this->once())
  84. ->method('isExtensionInstalled')
  85. ->willReturn(true);
  86. $this->model->execute($eventObserver);
  87. }
  88. /**
  89. * Test case when module is enabled in config and php extension is installed
  90. *
  91. * @return void
  92. */
  93. public function testCheckConfig()
  94. {
  95. /** @var \Magento\Framework\Event\Observer|\PHPUnit_Framework_MockObject_MockObject $eventObserver */
  96. $eventObserver = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
  97. ->disableOriginalConstructor()
  98. ->getMock();
  99. $this->config->expects($this->once())
  100. ->method('isNewRelicEnabled')
  101. ->willReturn(true);
  102. $this->newRelicWrapper->expects($this->once())
  103. ->method('isExtensionInstalled')
  104. ->willReturn(false);
  105. $this->config->expects($this->once())
  106. ->method('disableModule');
  107. $this->messageManager->expects($this->once())
  108. ->method('addError');
  109. $this->model->execute($eventObserver);
  110. }
  111. }