123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\Sales\Model\Order;
- use Magento\Checkout\Model\Session as CheckoutSession;
- use Magento\Framework\Data\Form\FormKey;
- use Magento\Framework\ObjectManagerInterface;
- use Magento\Quote\Api\GuestCartManagementInterface;
- use Magento\Quote\Model\Quote;
- use Magento\Quote\Model\QuoteIdMask;
- use Magento\Quote\Model\QuoteIdMaskFactory;
- use Magento\Sales\Model\OrderRepository;
- use Magento\TestFramework\Helper\Bootstrap;
- use Magento\TestFramework\Mail\Template\TransportBuilderMock;
- use PHPUnit\Framework\Constraint\StringContains;
- /**
- * Class verifies order creation.
- *
- * @magentoDbIsolation enabled
- * @magentoAppArea frontend
- */
- class CreateTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var ObjectManagerInterface
- */
- private $objectManager;
- /**
- * @var TransportBuilderMock
- */
- private $transportBuilder;
- /**
- * @var QuoteIdMaskFactory
- */
- private $quoteIdMaskFactory;
- /**
- * @var FormKey
- */
- private $formKey;
- /**
- * @inheritdoc
- */
- protected function setUp()
- {
- parent::setUp();
- $this->objectManager = Bootstrap::getObjectManager();
- $this->transportBuilder = $this->objectManager->get(TransportBuilderMock::class);
- $this->quoteIdMaskFactory = $this->objectManager->get(QuoteIdMaskFactory::class);
- $this->formKey = $this->objectManager->get(FormKey::class);
- }
- /**
- * @magentoDataFixture Magento/Sales/_files/guest_quote_with_addresses.php
- * @return void
- */
- public function testSendEmailOnOrderPlace(): void
- {
- /** @var Quote $quote */
- $quote = $this->objectManager->create(Quote::class);
- $quote->load('guest_quote', 'reserved_order_id');
- $checkoutSession = $this->objectManager->get(CheckoutSession::class);
- $checkoutSession->setQuoteId($quote->getId());
- /** @var QuoteIdMask $quoteIdMask */
- $quoteIdMask = $this->quoteIdMaskFactory->create();
- $quoteIdMask->load($quote->getId(), 'quote_id');
- $cartId = $quoteIdMask->getMaskedId();
- /** @var GuestCartManagementInterface $cartManagement */
- $cartManagement = $this->objectManager->get(GuestCartManagementInterface::class);
- $orderId = $cartManagement->placeOrder($cartId);
- $order = $this->objectManager->get(OrderRepository::class)->get($orderId);
- $message = $this->transportBuilder->getSentMessage();
- $subject = __('Your %1 order confirmation', $order->getStore()->getFrontendName())->render();
- $assert = $this->logicalAnd(
- new StringContains($order->getBillingAddress()->getName()),
- new StringContains(
- 'Thank you for your order from ' . $order->getStore()->getFrontendName()
- ),
- new StringContains(
- "Your Order <span class=\"no-link\">#{$order->getIncrementId()}</span>"
- )
- );
- $this->assertEquals($message->getSubject(), $subject);
- $this->assertThat($message->getRawMessage(), $assert);
- }
- }
|