SmtpTransportZend1Test.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace Dotdigitalgroup\Email\Test\Unit\Model\Mail;
  3. use Dotdigitalgroup\Email\Helper\Transactional;
  4. use Dotdigitalgroup\Email\Model\Mail\SmtpTransportZend1;
  5. use Dotdigitalgroup\Email\Model\Mail\ZendMailTransportSmtp1Factory;
  6. use Zend_Mail;
  7. use Zend_Mail_Transport_Smtp;
  8. class SmtpTransportZend1Test extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var Transactional|PHPUnit_Framework_MockObject_MockObject
  12. */
  13. private $transactionalEmailSettings;
  14. /**
  15. * @var ZendMailTransportSmtp1Factory|PHPUnit_Framework_MockObject_MockObject
  16. */
  17. private $zendMailTransportSmtp1Factory;
  18. /**
  19. * @var SmtpTransportZend1
  20. */
  21. private $smtpTransportZend1;
  22. /**
  23. * Prepare data
  24. */
  25. protected function setUp()
  26. {
  27. $this->transactionalEmailSettings = $this->getMockBuilder(
  28. Transactional::class
  29. )->disableOriginalConstructor(
  30. )->getMock();
  31. $this->zendMailTransportSmtp1Factory = $this->getMockBuilder(
  32. ZendMailTransportSmtp1Factory::class
  33. )->disableOriginalConstructor(
  34. )->getMock();
  35. $this->smtpTransportZend1 = new SmtpTransportZend1(
  36. $this->transactionalEmailSettings,
  37. $this->zendMailTransportSmtp1Factory
  38. );
  39. }
  40. /**
  41. * @throws \Zend_Mail_Transport_Exception
  42. */
  43. public function testSendUsesZend1MailTransportSmtp()
  44. {
  45. $message = new Zend_Mail();
  46. $storeId = 124;
  47. $host = '127.0.0.1';
  48. $transportConfig = [];
  49. $this->transactionalEmailSettings->expects($this->once())
  50. ->method('getSmtpHost')
  51. ->with($storeId)
  52. ->willReturn($host);
  53. $this->transactionalEmailSettings->expects($this->once())
  54. ->method('getTransportConfig')
  55. ->with($storeId)
  56. ->willReturn($transportConfig);
  57. $zendMailTransportSmtp = $this->getMockBuilder(
  58. Zend_Mail_Transport_Smtp::class
  59. )->disableOriginalConstructor(
  60. )->getMock();
  61. $this->zendMailTransportSmtp1Factory->expects($this->once())
  62. ->method('create')
  63. ->with($host, $transportConfig)
  64. ->willReturn($zendMailTransportSmtp);
  65. $zendMailTransportSmtp->expects($this->once())
  66. ->method('send')
  67. ->with($message);
  68. $this->smtpTransportZend1->send($message, $storeId);
  69. }
  70. }