SmtpTransportZend2Test.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace Dotdigitalgroup\Email\Test\Unit\Model\Mail;
  3. use Dotdigitalgroup\Email\Helper\Transactional;
  4. use Dotdigitalgroup\Email\Model\Mail\SmtpTransportZend2;
  5. use Dotdigitalgroup\Email\Model\Mail\ZendMailTransportSmtp2Factory;
  6. use Zend\Mail\Message;
  7. use Zend\Mail\Transport\Smtp;
  8. class SmtpTransportZend2Test extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var Transactional|\PHPUnit_Framework_MockObject_MockObject
  12. */
  13. private $transactionalEmailSettings;
  14. /**
  15. * @var ZendMailTransportSmtp2Factory|\PHPUnit_Framework_MockObject_MockObject
  16. */
  17. private $zendMailTransportSmtp2Factory;
  18. /**
  19. * @var SmtpTransportZend2
  20. */
  21. private $smtpTransportZend2;
  22. /**
  23. * Prepare data
  24. */
  25. protected function setUp()
  26. {
  27. $this->transactionalEmailSettings = $this->getMockBuilder(
  28. Transactional::class
  29. )->disableOriginalConstructor(
  30. )->getMock();
  31. $this->zendMailTransportSmtp2Factory = $this->getMockBuilder(
  32. ZendMailTransportSmtp2Factory::class
  33. )->disableOriginalConstructor(
  34. )->getMock();
  35. $this->smtpTransportZend2 = new SmtpTransportZend2(
  36. $this->transactionalEmailSettings,
  37. $this->zendMailTransportSmtp2Factory
  38. );
  39. }
  40. /**
  41. */
  42. public function testSendUsesZend2MailTransportSmtp()
  43. {
  44. $message = new Message();
  45. $storeId = 224;
  46. $smtpOptions = [];
  47. $this->transactionalEmailSettings->expects($this->once())
  48. ->method('getSmtpOptions')
  49. ->with($storeId)
  50. ->willReturn($smtpOptions);
  51. $zendMail2TransportSmtp = $this->getMockBuilder(
  52. Smtp::class
  53. )->disableOriginalConstructor(
  54. )->getMock();
  55. $this->zendMailTransportSmtp2Factory->expects($this->once())
  56. ->method('create')
  57. ->with($smtpOptions)
  58. ->willReturn($zendMail2TransportSmtp);
  59. $zendMail2TransportSmtp->expects($this->once())
  60. ->method('send')
  61. ->with($message);
  62. $this->smtpTransportZend2->send($message, $storeId);
  63. }
  64. }