Skip to content

Commit 90a8983

Browse files
committed
MC-37493: Create automated test for "Create Invoice for Offline Payment Methods with Async Notification"
1 parent 530d43e commit 90a8983

File tree

4 files changed

+16
-17
lines changed

4 files changed

+16
-17
lines changed

dev/tests/integration/testsuite/Magento/Sales/Model/InvoiceEmailSenderHandlerTest.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
use Magento\Sales\Api\Data\InvoiceSearchResultInterface;
1313
use Magento\Sales\Model\Order\Email\Container\InvoiceIdentity;
1414
use Magento\Sales\Model\Order\Email\Sender\InvoiceSender;
15-
use Magento\Sales\Model\Order\Invoice;
1615
use Magento\Sales\Model\Spi\InvoiceResourceInterface;
1716
use Magento\TestFramework\Helper\Bootstrap;
1817
use Magento\TestFramework\Mail\Template\TransportBuilderMock;
@@ -87,23 +86,27 @@ public function testInvoiceEmailSenderExecute(): void
8786

8887
/**
8988
* @magentoDbIsolation disabled
90-
* @magentoDataFixture Magento/Sales/_files/invoice_in_email_send_queue.php
89+
* @magentoDataFixture Magento/Sales/_files/invoice_with_send_email_flag.php
9190
* @magentoConfigFixture default/sales_email/general/async_sending 1
9291
* @return void
9392
*/
9493
public function testSendEmailsCheckEmailReceived(): void
9594
{
9695
$invoiceCollection = clone $this->entityCollection;
9796
$this->emailSenderHandler->sendEmails();
98-
/** @var Invoice $invoice */
97+
/** @var InvoiceInterface $invoice */
9998
$invoice = $invoiceCollection->getFirstItem();
10099
$this->assertNotNull($invoice->getId());
101100
$message = $this->transportBuilderMock->getSentMessage();
102101
$this->assertNotNull($message, 'The message is expected to be received');
103102
$subject = __('Invoice for your %1 order', $invoice->getStore()->getFrontendName())->render();
104103
$this->assertEquals($message->getSubject(), $subject);
105104
$this->assertStringContainsString(
106-
"Your Invoice #{$invoice->getIncrementId()} for Order #{$invoice->getOrder()->getIncrementId()}",
105+
sprintf(
106+
"Your Invoice #%s for Order #%s",
107+
$invoice->getIncrementId(),
108+
$invoice->getOrder()->getIncrementId()
109+
),
107110
$message->getBody()->getParts()[0]->getRawContent()
108111
);
109112
}

dev/tests/integration/testsuite/Magento/Sales/Model/Order/Email/Sender/InvoiceSenderTest.php

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@
88
namespace Magento\Sales\Model\Order\Email\Sender;
99

1010
use Magento\Customer\Api\CustomerRepositoryInterface;
11-
use Magento\Customer\Model\ResourceModel\CustomerRepository;
12-
use Magento\Framework\App\Area;
1311
use Magento\Framework\ObjectManagerInterface;
1412
use Magento\Sales\Api\Data\InvoiceInterface;
1513
use Magento\Sales\Api\Data\InvoiceInterfaceFactory;
14+
use Magento\Sales\Api\Data\OrderInterface;
1615
use Magento\Sales\Api\Data\OrderInterfaceFactory;
17-
use Magento\Sales\Model\Order;
1816
use Magento\Sales\Model\Order\Email\Container\InvoiceIdentity;
1917
use Magento\Sales\Model\Order\Invoice;
2018
use Magento\TestFramework\Helper\Bootstrap;
@@ -36,7 +34,7 @@ class InvoiceSenderTest extends TestCase
3634
/** @var ObjectManagerInterface */
3735
private $objectManager;
3836

39-
/** @var CustomerRepository */
37+
/** @var CustomerRepositoryInterface */
4038
private $customerRepository;
4139

4240
/** @var InvoiceSender */
@@ -71,11 +69,11 @@ protected function setUp(): void
7169

7270
/**
7371
* @magentoDataFixture Magento/Sales/_files/order.php
72+
* @magentoAppArea frontend
7473
* @return void
7574
*/
7675
public function testSend(): void
7776
{
78-
Bootstrap::getInstance()->loadArea(Area::AREA_FRONTEND);
7977
$order = $this->getOrder('100000001');
8078
$order->setCustomerEmail('[email protected]');
8179
$invoice = $this->createInvoice($order);
@@ -183,10 +181,10 @@ public function testSendWithAsyncSendingEnabled(): void
183181
/**
184182
* Create invoice and set order
185183
*
186-
* @param Order $order
187-
* @return Invoice
184+
* @param OrderInterface $order
185+
* @return InvoiceInterface
188186
*/
189-
private function createInvoice(Order $order): Invoice
187+
private function createInvoice(OrderInterface $order): InvoiceInterface
190188
{
191189
/** @var Invoice $invoice */
192190
$invoice = $this->invoiceFactory->create();
@@ -199,9 +197,9 @@ private function createInvoice(Order $order): Invoice
199197
* Get order by increment_id
200198
*
201199
* @param string $incrementId
202-
* @return Order
200+
* @return OrderInterface
203201
*/
204-
private function getOrder(string $incrementId): Order
202+
private function getOrder(string $incrementId): OrderInterface
205203
{
206204
return $this->orderFactory->create()->loadByIncrementId($incrementId);
207205
}

dev/tests/integration/testsuite/Magento/Sales/_files/invoice_in_email_send_queue.php renamed to dev/tests/integration/testsuite/Magento/Sales/_files/invoice_with_send_email_flag.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
use Magento\TestFramework\Helper\Bootstrap;
1414
use Magento\TestFramework\Workaround\Override\Fixture\Resolver;
1515

16-
Resolver::getInstance()->requireDataFixture('Magento/Sales/_files/default_rollback.php');
1716
Resolver::getInstance()->requireDataFixture('Magento/Sales/_files/order.php');
1817

1918
$objectManager = Bootstrap::getObjectManager();
@@ -29,6 +28,5 @@
2928
$invoice = $invoiceService->prepareInvoice($order);
3029
$invoice->register();
3130
$invoice->setSendEmail(true);
32-
//$order = $invoice->getOrder();
3331
$order->setIsInProcess(true);
3432
$transactionSave->addObject($invoice)->addObject($order)->save();

dev/tests/integration/testsuite/Magento/Sales/_files/invoice_in_email_send_queue_rollback.php renamed to dev/tests/integration/testsuite/Magento/Sales/_files/invoice_with_send_email_flag_rollback.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77

88
use Magento\TestFramework\Workaround\Override\Fixture\Resolver;
99

10-
Resolver::getInstance()->requireDataFixture('Magento/Sales/_files/default_rollback.php');
10+
Resolver::getInstance()->requireDataFixture('Magento/Sales/_files/order_rollback.php');

0 commit comments

Comments
 (0)