public function testSendFailure() { $this->orderSenderMock->expects($this->once())->method('send')->willThrowException(new \Magento\Framework\Exception\MailException(__('test message'))); $this->messageManagerMock->expects($this->once())->method('addWarning'); $this->loggerMock->expects($this->once())->method('critical'); $this->assertFalse($this->emailSender->send($this->orderMock)); }
/** * Create new order * * @return \Magento\Sales\Model\Order */ public function createOrder() { $this->_prepareCustomer(); $this->_validate(); $quote = $this->getQuote(); $this->_prepareQuoteItems(); $orderData = []; if ($this->getSession()->getOrder()->getId()) { $oldOrder = $this->getSession()->getOrder(); $originalId = $oldOrder->getOriginalIncrementId(); if (!$originalId) { $originalId = $oldOrder->getIncrementId(); } $orderData = ['original_increment_id' => $originalId, 'relation_parent_id' => $oldOrder->getId(), 'relation_parent_real_id' => $oldOrder->getIncrementId(), 'edit_increment' => $oldOrder->getEditIncrement() + 1, 'increment_id' => $originalId . '-' . ($oldOrder->getEditIncrement() + 1)]; $quote->setReservedOrderId($orderData['increment_id']); } $order = $this->quoteManagement->submit($quote, $orderData); if ($this->getSession()->getOrder()->getId()) { $oldOrder = $this->getSession()->getOrder(); $oldOrder->setRelationChildId($order->getId()); $oldOrder->setRelationChildRealId($order->getIncrementId()); $this->orderManagement->cancel($oldOrder->getEntityId()); $order->save(); } if ($this->getSendConfirmation()) { $this->emailSender->send($order); } $this->_eventManager->dispatch('checkout_submit_all_after', ['order' => $order, 'quote' => $quote]); return $order; }
/** * Create new order * * @return \Magento\Sales\Model\Order */ public function createOrder() { $this->_prepareCustomer(); $this->_validate(); $quote = $this->getQuote(); $this->_prepareQuoteItems(); /** @var $service \Magento\Sales\Model\Service\Quote */ $service = $this->_objectManager->create('Magento\\Sales\\Model\\Service\\Quote', array('quote' => $quote)); if ($this->getSession()->getOrder()->getId()) { $oldOrder = $this->getSession()->getOrder(); $originalId = $oldOrder->getOriginalIncrementId(); if (!$originalId) { $originalId = $oldOrder->getIncrementId(); } $orderData = array('original_increment_id' => $originalId, 'relation_parent_id' => $oldOrder->getId(), 'relation_parent_real_id' => $oldOrder->getIncrementId(), 'edit_increment' => $oldOrder->getEditIncrement() + 1, 'increment_id' => $originalId . '-' . ($oldOrder->getEditIncrement() + 1)); $quote->setReservedOrderId($orderData['increment_id']); $service->setOrderData($orderData); } $order = $service->submitOrderWithDataObject(); if ($this->getSession()->getOrder()->getId()) { $oldOrder = $this->getSession()->getOrder(); $oldOrder->setRelationChildId($order->getId()); $oldOrder->setRelationChildRealId($order->getIncrementId()); $oldOrder->cancel()->save(); $order->save(); } if ($this->getSendConfirmation()) { $this->emailSender->send($order); } $this->_eventManager->dispatch('checkout_submit_all_after', array('order' => $order, 'quote' => $quote)); return $order; }