Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
InvoiceEmailSenderHandlerTest.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
8 namespace Magento\Sales\Model;
9 
13 
14 class InvoiceEmailSenderHandlerTest extends \PHPUnit\Framework\TestCase
15 {
19  private $entityCollection;
20 
24  private $emailSender;
25 
26  protected function setUp()
27  {
30  \Magento\Sales\Model\Order\Email\Container\InvoiceIdentity::class
31  );
34  ->create(
35  \Magento\Sales\Model\Order\Email\Sender\InvoiceSender::class,
36  [
37  'identityContainer' => $invoiceIdentity,
38  ]
39  );
41  ->create(\Magento\Sales\Model\ResourceModel\Order\Invoice::class);
42  $this->entityCollection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
43  \Magento\Sales\Model\ResourceModel\Order\Invoice\Collection::class
44  );
45  $this->emailSender = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
46  \Magento\Sales\Model\EmailSenderHandler::class,
47  [
48  'emailSender' => $invoiceSender,
49  'entityResource' => $entityResource,
50  'entityCollection' => $this->entityCollection,
51  'identityContainer' => $invoiceIdentity,
52  ]
53  );
54  }
55 
61  public function testInvoiceEmailSenderExecute()
62  {
63  $expectedResult = 1;
64 
66 
68  $defConfig = $objectManager->create(Config::class);
70  $defConfig->setDataByPath('sales_email/general/async_sending', 1);
71  $defConfig->save();
72 
74  $storeConfig = $objectManager->create(Config::class);
75  $storeConfig->setScope(ScopeInterface::SCOPE_STORES);
76  $storeConfig->setStore('fixture_second_store');
77  $storeConfig->setDataByPath('sales_email/invoice/enabled', 0);
78  $storeConfig->save();
79 
80  $sendCollection = clone $this->entityCollection;
81  $sendCollection->addFieldToFilter('send_email', ['eq' => 1]);
82  $sendCollection->addFieldToFilter('email_sent', ['null' => true]);
83 
84  $this->emailSender->sendEmails();
85 
86  $this->assertCount($expectedResult, $sendCollection->getItems());
87  }
88 
94  protected function tearDown()
95  {
98  ->create(\Magento\Config\Model\Config::class);
100  $defConfig->setDataByPath('sales_email/general/async_sending', 0);
101  $defConfig->save();
102  }
103 }
$objectManager
Definition: bootstrap.php:17