OrderTest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Model\ResourceModel;
  7. class OrderTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Sales\Model\ResourceModel\Order
  11. */
  12. protected $resourceModel;
  13. /**
  14. * @var int
  15. */
  16. protected $orderIncrementId;
  17. /**
  18. * @var \Magento\Framework\ObjectManagerInterface
  19. */
  20. protected $objectManager;
  21. protected function setUp()
  22. {
  23. $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  24. $this->resourceModel = $this->objectManager->create(\Magento\Sales\Model\ResourceModel\Order::class);
  25. $this->orderIncrementId = '100000001';
  26. }
  27. protected function tearDown()
  28. {
  29. $registry = $this->objectManager->get(\Magento\Framework\Registry::class);
  30. $registry->unregister('isSecureArea');
  31. $registry->register('isSecureArea', true);
  32. /** @var \Magento\Sales\Model\Order $order */
  33. $order = $this->objectManager->create(\Magento\Sales\Model\Order::class);
  34. $order->loadByIncrementId($this->orderIncrementId);
  35. $order->delete();
  36. $registry->unregister('isSecureArea');
  37. $registry->register('isSecureArea', false);
  38. parent::tearDown();
  39. }
  40. /**
  41. * @magentoDataFixture Magento/Catalog/_files/product_simple.php
  42. */
  43. public function testSaveOrder()
  44. {
  45. $addressData = [
  46. 'region' => 'CA',
  47. 'postcode' => '11111',
  48. 'lastname' => 'lastname',
  49. 'firstname' => 'firstname',
  50. 'street' => 'street',
  51. 'city' => 'Los Angeles',
  52. 'email' => 'admin@example.com',
  53. 'telephone' => '11111111',
  54. 'country_id' => 'US'
  55. ];
  56. $billingAddress = $this->objectManager->create(
  57. \Magento\Sales\Model\Order\Address::class,
  58. ['data' => $addressData]
  59. );
  60. $billingAddress->setAddressType('billing');
  61. $shippingAddress = clone $billingAddress;
  62. $shippingAddress->setId(null)->setAddressType('shipping');
  63. $payment = $this->objectManager->create(\Magento\Sales\Model\Order\Payment::class);
  64. $payment->setMethod('checkmo');
  65. /** @var \Magento\Sales\Model\Order\Item $orderItem */
  66. $orderItem = $this->objectManager->create(\Magento\Sales\Model\Order\Item::class);
  67. $orderItem->setProductId(1)
  68. ->setQtyOrdered(2)
  69. ->setBasePrice(10)
  70. ->setPrice(10)
  71. ->setRowTotal(10);
  72. /** @var \Magento\Sales\Model\Order $order */
  73. $order = $this->objectManager->create(\Magento\Sales\Model\Order::class);
  74. $order->setIncrementId($this->orderIncrementId)
  75. ->setState(\Magento\Sales\Model\Order::STATE_PROCESSING)
  76. ->setStatus($order->getConfig()->getStateDefaultStatus(\Magento\Sales\Model\Order::STATE_PROCESSING))
  77. ->setSubtotal(100)
  78. ->setBaseSubtotal(100)
  79. ->setBaseGrandTotal(100)
  80. ->setCustomerIsGuest(true)
  81. ->setCustomerEmail('customer@null.com')
  82. ->setBillingAddress($billingAddress)
  83. ->setShippingAddress($shippingAddress)
  84. ->setStoreId(
  85. $this->objectManager
  86. ->get(\Magento\Store\Model\StoreManagerInterface::class)
  87. ->getStore()
  88. ->getId()
  89. )
  90. ->addItem($orderItem)
  91. ->setPayment($payment);
  92. $this->resourceModel->save($order);
  93. $this->assertNotNull($order->getCreatedAt());
  94. $this->assertNotNull($order->getUpdatedAt());
  95. }
  96. }