TransportInterfacePluginTest.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Email\Test\Unit\Model\Mail;
  7. use Magento\Email\Model\Mail\TransportInterfacePlugin;
  8. use Magento\Framework\App\Config\ScopeConfigInterface;
  9. use Magento\Framework\Mail\TransportInterface;
  10. use Magento\Store\Model\ScopeInterface;
  11. /**
  12. * Covers \Magento\Email\Model\Transport
  13. */
  14. class TransportInterfacePluginTest extends \PHPUnit\Framework\TestCase
  15. {
  16. /**
  17. * @var TransportInterface|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. private $transportMock;
  20. /**
  21. * @var ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. private $scopeConfigMock;
  24. /**
  25. * @var \Callable|\PHPUnit_Framework_MockObject_MockObject
  26. */
  27. private $proceedMock;
  28. /**
  29. * @var bool
  30. */
  31. private $isProceedMockCalled = false;
  32. /**
  33. * @var TransportInterfacePlugin
  34. */
  35. private $model;
  36. protected function setUp()
  37. {
  38. $this->transportMock = $this->createMock(TransportInterface::class);
  39. $this->scopeConfigMock = $this->getMockForAbstractClass(ScopeConfigInterface::class);
  40. $this->proceedMock = function () {
  41. $this->isProceedMockCalled = true;
  42. };
  43. $this->model = new TransportInterfacePlugin($this->scopeConfigMock);
  44. }
  45. /**
  46. * @dataProvider sendMessageDataProvider
  47. * @param bool $isDisabled
  48. * @param bool $shouldProceedRun
  49. */
  50. public function testAroundSendMessage(bool $isDisabled, bool $shouldProceedRun)
  51. {
  52. $this->isProceedMockCalled = false;
  53. $this->scopeConfigMock->expects($this->once())
  54. ->method('isSetFlag')
  55. ->with('system/smtp/disable', ScopeInterface::SCOPE_STORE)
  56. ->willReturn($isDisabled);
  57. $this->model->aroundSendMessage($this->transportMock, $this->proceedMock);
  58. $this->assertEquals($shouldProceedRun, $this->isProceedMockCalled);
  59. }
  60. /**
  61. * Data provider for testAroundSendMessage
  62. * @return array
  63. */
  64. public function sendMessageDataProvider()
  65. {
  66. return [
  67. [false, true],
  68. [true, false],
  69. ];
  70. }
  71. }