OrderRepositoryTest.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\GiftMessage\Model;
  7. class OrderRepositoryTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /** @var \Magento\Framework\ObjectManagerInterface */
  10. protected $objectManager;
  11. /** @var \Magento\GiftMessage\Model\Message */
  12. protected $message;
  13. /** @var \Magento\GiftMessage\Model\OrderRepository */
  14. protected $giftMessageOrderRepository;
  15. protected function setUp()
  16. {
  17. $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  18. $this->message = $this->objectManager->create(\Magento\GiftMessage\Model\Message::class);
  19. $this->message->setSender('Romeo');
  20. $this->message->setRecipient('Mercutio');
  21. $this->message->setMessage('I thought all for the best.');
  22. $this->giftMessageOrderRepository = $this->objectManager->create(
  23. \Magento\GiftMessage\Model\OrderRepository::class
  24. );
  25. }
  26. protected function tearDown()
  27. {
  28. $this->objectManager = null;
  29. $this->message = null;
  30. $this->giftMessageOrderRepository = null;
  31. }
  32. /**
  33. * @magentoDataFixture Magento/GiftMessage/_files/order_with_message.php
  34. * @magentoConfigFixture default_store sales/gift_options/allow_order 1
  35. */
  36. public function testGet()
  37. {
  38. /** @var \Magento\Sales\Model\Order $order */
  39. $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
  40. /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
  41. $message = $this->giftMessageOrderRepository->get($order->getEntityId());
  42. $this->assertEquals('Romeo', $message->getSender());
  43. $this->assertEquals('Mercutio', $message->getRecipient());
  44. $this->assertEquals('I thought all for the best.', $message->getMessage());
  45. }
  46. /**
  47. * @magentoDataFixture Magento/Sales/_files/order.php
  48. * @magentoConfigFixture default_store sales/gift_options/allow_order 1
  49. */
  50. public function testSave()
  51. {
  52. /** @var \Magento\Sales\Model\Order $order */
  53. $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
  54. /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
  55. $result = $this->giftMessageOrderRepository->save($order->getEntityId(), $this->message);
  56. $message = $this->giftMessageOrderRepository->get($order->getEntityId());
  57. $this->assertTrue($result);
  58. $this->assertEquals('Romeo', $message->getSender());
  59. $this->assertEquals('Mercutio', $message->getRecipient());
  60. $this->assertEquals('I thought all for the best.', $message->getMessage());
  61. }
  62. /**
  63. * @magentoDataFixture Magento/Sales/_files/order.php
  64. * @magentoConfigFixture default_store sales/gift_options/allow_order 0
  65. * @expectedException \Magento\Framework\Exception\CouldNotSaveException
  66. * @expectedExceptionMessage The gift message isn't available.
  67. */
  68. public function testSaveMessageIsNotAvailable()
  69. {
  70. /** @var \Magento\Sales\Model\Order $order */
  71. $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
  72. /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
  73. $this->giftMessageOrderRepository->save($order->getEntityId(), $this->message);
  74. }
  75. /**
  76. * @magentoDataFixture Magento/GiftMessage/_files/virtual_order.php
  77. * @magentoConfigFixture default_store sales/gift_options/allow_order 1
  78. * @expectedException \Magento\Framework\Exception\State\InvalidTransitionException
  79. * @expectedExceptionMessage Gift messages can't be used for virtual products.
  80. */
  81. public function testSaveMessageIsVirtual()
  82. {
  83. /** @var \Magento\Sales\Model\Order $order */
  84. $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
  85. /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
  86. $this->giftMessageOrderRepository->save($order->getEntityId(), $this->message);
  87. }
  88. /**
  89. * @magentoDataFixture Magento/GiftMessage/_files/empty_order.php
  90. * @magentoConfigFixture default_store sales/gift_options/allow_order 1
  91. * @expectedException \Magento\Framework\Exception\InputException
  92. */
  93. public function testSaveMessageIsEmpty()
  94. {
  95. /** @var \Magento\Sales\Model\Order $order */
  96. $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
  97. /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
  98. $this->giftMessageOrderRepository->save($order->getEntityId(), $this->message);
  99. $this->expectExceptionMessage(
  100. "Gift messages can't be used for an empty order. Create an order, add an item, and try again."
  101. );
  102. }
  103. /**
  104. * @magentoDataFixture Magento/GiftMessage/_files/empty_order.php
  105. * @magentoConfigFixture default_store sales/gift_options/allow_order 1
  106. * @expectedException \Magento\Framework\Exception\NoSuchEntityException
  107. * @expectedExceptionMessage No order exists with this ID. Verify your information and try again.
  108. */
  109. public function testSaveMessageNoProvidedItemId()
  110. {
  111. /** @var \Magento\Sales\Model\Order $order */
  112. $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
  113. /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
  114. $this->giftMessageOrderRepository->save($order->getEntityId() * 10, $this->message);
  115. }
  116. }