GuestItemRepositoryTest.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\GiftMessage\Api;
  7. use Magento\TestFramework\TestCase\WebapiAbstract;
  8. class GuestItemRepositoryTest extends WebapiAbstract
  9. {
  10. const SERVICE_VERSION = 'V1';
  11. const SERVICE_NAME = 'giftMessageGuestItemRepositoryV1';
  12. const RESOURCE_PATH = '/V1/guest-carts/';
  13. /**
  14. * @var \Magento\TestFramework\ObjectManager
  15. */
  16. protected $objectManager;
  17. protected function setUp()
  18. {
  19. $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  20. }
  21. /**
  22. * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php
  23. * @magentoAppIsolation enabled
  24. * @magentoDbIsolation disabled
  25. */
  26. public function testGet()
  27. {
  28. /** @var \Magento\Quote\Model\Quote $quote */
  29. $quote = $this->objectManager->create(\Magento\Quote\Model\Quote::class);
  30. $quote->load('test_order_item_with_message', 'reserved_order_id');
  31. $product = $this->objectManager->create(\Magento\Catalog\Model\Product::class);
  32. $product->load($product->getIdBySku('simple_with_message'));
  33. $itemId = $quote->getItemByProduct($product)->getId();
  34. /** @var \Magento\Catalog\Model\Product $product */
  35. $cartId = $quote->getId();
  36. /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
  37. $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  38. ->create(\Magento\Quote\Model\QuoteIdMaskFactory::class)
  39. ->create();
  40. $quoteIdMask->load($cartId, 'quote_id');
  41. //Use masked cart Id
  42. $cartId = $quoteIdMask->getMaskedId();
  43. $serviceInfo = [
  44. 'rest' => [
  45. 'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message/' . $itemId,
  46. 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
  47. ],
  48. 'soap' => [
  49. 'service' => self::SERVICE_NAME,
  50. 'serviceVersion' => self::SERVICE_VERSION,
  51. 'operation' => self::SERVICE_NAME . 'Get',
  52. ],
  53. ];
  54. $expectedMessage = [
  55. 'recipient' => 'Jane Roe',
  56. 'sender' => 'John Doe',
  57. 'message' => 'Gift Message Text',
  58. ];
  59. $requestData = ["cartId" => $cartId, "itemId" => $itemId];
  60. $resultMessage = $this->_webApiCall($serviceInfo, $requestData);
  61. $this->assertCount(5, $resultMessage);
  62. unset($resultMessage['gift_message_id']);
  63. unset($resultMessage['customer_id']);
  64. $this->assertEquals($expectedMessage, $resultMessage);
  65. }
  66. /**
  67. * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php
  68. */
  69. public function testSave()
  70. {
  71. // sales/gift_options/allow_items must be set to 1 in system configuration
  72. // @todo remove next statement when \Magento\TestFramework\TestCase\WebapiAbstract::_updateAppConfig is fixed
  73. $this->markTestIncomplete('This test relies on system configuration state.');
  74. /** @var \Magento\Quote\Model\Quote $quote */
  75. $quote = $this->objectManager->create(\Magento\Quote\Model\Quote::class);
  76. $quote->load('test_order_item_with_message', 'reserved_order_id');
  77. $product = $this->objectManager->create(\Magento\Catalog\Model\Product::class);
  78. $product->load($product->getIdBySku('simple_with_message'));
  79. $itemId = $quote->getItemByProduct($product)->getId();
  80. $cartId = $quote->getId();
  81. /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
  82. $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  83. ->create(\Magento\Quote\Model\QuoteIdMaskFactory::class)
  84. ->create();
  85. $quoteIdMask->load($cartId, 'quote_id');
  86. //Use masked cart Id
  87. $cartId = $quoteIdMask->getMaskedId();
  88. $serviceInfo = [
  89. 'rest' => [
  90. 'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message/' . $itemId,
  91. 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
  92. ],
  93. 'soap' => [
  94. 'service' => self::SERVICE_NAME,
  95. 'serviceVersion' => self::SERVICE_VERSION,
  96. 'operation' => self::SERVICE_NAME . 'Save',
  97. ],
  98. ];
  99. $requestData = [
  100. 'cartId' => $cartId,
  101. 'itemId' => $itemId,
  102. 'giftMessage' => [
  103. 'recipient' => 'John Doe',
  104. 'sender' => 'Jane Roe',
  105. 'message' => 'Gift Message Text New',
  106. ],
  107. ];
  108. $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
  109. $messageId = $quote->getItemByProduct($product)->getGiftMessageId();
  110. /** @var \Magento\GiftMessage\Model\Message $message */
  111. $message = $this->objectManager->create(\Magento\GiftMessage\Model\Message::class)->load($messageId);
  112. $this->assertEquals('John Doe', $message->getRecipient());
  113. $this->assertEquals('Jane Roe', $message->getSender());
  114. $this->assertEquals('Gift Message Text New', $message->getMessage());
  115. }
  116. }