123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\GiftMessage\Model;
- class OrderItemRepositoryTest extends \PHPUnit\Framework\TestCase
- {
- /** @var \Magento\Framework\ObjectManagerInterface */
- protected $objectManager;
- /** @var \Magento\GiftMessage\Model\Message */
- protected $message;
- /** @var \Magento\GiftMessage\Model\OrderItemRepository */
- protected $giftMessageOrderItemRepository;
- protected function setUp()
- {
- $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
- $this->message = $this->objectManager->create(\Magento\GiftMessage\Model\Message::class);
- $this->message->setSender('Romeo');
- $this->message->setRecipient('Mercutio');
- $this->message->setMessage('I thought all for the best.');
- $this->giftMessageOrderItemRepository = $this->objectManager->create(
- \Magento\GiftMessage\Model\OrderItemRepository::class
- );
- }
- protected function tearDown()
- {
- $this->objectManager = null;
- $this->message = null;
- $this->giftMessageOrderItemRepository = null;
- }
- /**
- * @magentoDataFixture Magento/GiftMessage/_files/order_with_message.php
- * @magentoConfigFixture default_store sales/gift_options/allow_items 1
- */
- public function testGet()
- {
- /** @var \Magento\Sales\Model\Order $order */
- $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
- /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
- $orderItem = $order->getItems();
- $orderItem = array_shift($orderItem);
- /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
- $message = $this->giftMessageOrderItemRepository->get($order->getEntityId(), $orderItem->getItemId());
- $this->assertEquals('Romeo', $message->getSender());
- $this->assertEquals('Mercutio', $message->getRecipient());
- $this->assertEquals('I thought all for the best.', $message->getMessage());
- }
- /**
- * @magentoDataFixture Magento/GiftMessage/_files/order_with_message.php
- * @magentoConfigFixture default_store sales/gift_options/allow_items 1
- * @expectedException \Magento\Framework\Exception\NoSuchEntityException
- * @expectedExceptionMessage No item with the provided ID was found in the Order. Verify the ID and try again.
- */
- public function testGetNoProvidedItemId()
- {
- /** @var \Magento\Sales\Model\Order $order */
- $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
- /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
- $orderItem = $order->getItems();
- $orderItem = array_shift($orderItem);
- /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
- $this->giftMessageOrderItemRepository->get($order->getEntityId(), $orderItem->getItemId() * 10);
- }
- /**
- * @magentoDataFixture Magento/Sales/_files/order.php
- * @magentoConfigFixture default_store sales/gift_options/allow_items 1
- */
- public function testSave()
- {
- /** @var \Magento\Sales\Model\Order $order */
- $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
- /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
- $orderItem = $order->getItems();
- $orderItem = array_shift($orderItem);
- /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
- $result = $this->giftMessageOrderItemRepository->save(
- $order->getEntityId(),
- $orderItem->getItemId(),
- $this->message
- );
- $message = $this->giftMessageOrderItemRepository->get($order->getEntityId(), $orderItem->getItemId());
- $this->assertTrue($result);
- $this->assertEquals('Romeo', $message->getSender());
- $this->assertEquals('Mercutio', $message->getRecipient());
- $this->assertEquals('I thought all for the best.', $message->getMessage());
- }
- /**
- * @magentoDataFixture Magento/Sales/_files/order.php
- * @magentoConfigFixture default_store sales/gift_options/allow_items 0
- * @expectedException \Magento\Framework\Exception\CouldNotSaveException
- * @expectedExceptionMessage The gift message isn't available.
- */
- public function testSaveMessageIsNotAvailable()
- {
- /** @var \Magento\Sales\Model\Order $order */
- $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
- /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
- $orderItem = $order->getItems();
- $orderItem = array_shift($orderItem);
- /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
- $this->giftMessageOrderItemRepository->save($order->getEntityId(), $orderItem->getItemId(), $this->message);
- }
- /**
- * @magentoDataFixture Magento/GiftMessage/_files/virtual_order.php
- * @magentoConfigFixture default_store sales/gift_options/allow_items 1
- * @expectedException \Magento\Framework\Exception\State\InvalidTransitionException
- * @expectedExceptionMessage Gift messages can't be used for virtual products.
- */
- public function testSaveMessageIsVirtual()
- {
- /** @var \Magento\Sales\Model\Order $order */
- $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
- /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
- $orderItem = $order->getItems();
- $orderItem = array_shift($orderItem);
- /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
- $this->giftMessageOrderItemRepository->save($order->getEntityId(), $orderItem->getItemId(), $this->message);
- }
- /**
- * @magentoDataFixture Magento/GiftMessage/_files/empty_order.php
- * @magentoConfigFixture default_store sales/gift_options/allow_items 1
- * @expectedException \Magento\Framework\Exception\NoSuchEntityException
- * @expectedExceptionMessage No item with the provided ID was found in the Order. Verify the ID and try again.
- */
- public function testSaveMessageNoProvidedItemId()
- {
- /** @var \Magento\Sales\Model\Order $order */
- $order = $this->objectManager->create(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
- /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
- $orderItem = $order->getItems();
- $orderItem = array_shift($orderItem);
- /** @var \Magento\GiftMessage\Api\Data\MessageInterface $message */
- $this->giftMessageOrderItemRepository->save(
- $order->getEntityId(),
- $orderItem->getItemId() * 10,
- $this->message
- );
- }
- }
|