GuestCartRepositoryTest.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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 GuestCartRepositoryTest extends WebapiAbstract
  9. {
  10. const SERVICE_VERSION = 'V1';
  11. const SERVICE_NAME = 'giftMessageGuestCartRepositoryV1';
  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_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('message_order_21', 'reserved_order_id');
  31. $cartId = $quote->getId();
  32. /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
  33. $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  34. ->create(\Magento\Quote\Model\QuoteIdMaskFactory::class)
  35. ->create();
  36. $quoteIdMask->load($cartId, 'quote_id');
  37. //Use masked cart Id
  38. $cartId = $quoteIdMask->getMaskedId();
  39. $serviceInfo = [
  40. 'rest' => [
  41. 'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message',
  42. 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
  43. ],
  44. 'soap' => [
  45. 'service' => self::SERVICE_NAME,
  46. 'serviceVersion' => self::SERVICE_VERSION,
  47. 'operation' => self::SERVICE_NAME . 'Get',
  48. ],
  49. ];
  50. $expectedMessage = [
  51. 'recipient' => 'Mercutio',
  52. 'sender' => 'Romeo',
  53. 'message' => 'I thought all for the best.',
  54. ];
  55. $requestData = ["cartId" => $cartId];
  56. $resultMessage = $this->_webApiCall($serviceInfo, $requestData);
  57. $this->assertCount(5, $resultMessage);
  58. unset($resultMessage['gift_message_id']);
  59. unset($resultMessage['customer_id']);
  60. $this->assertEquals($expectedMessage, $resultMessage);
  61. }
  62. /**
  63. * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php
  64. */
  65. public function testSave()
  66. {
  67. // sales/gift_options/allow_order must be set to 1 in system configuration
  68. // @todo remove next statement when \Magento\TestFramework\TestCase\WebapiAbstract::_updateAppConfig is fixed
  69. $this->markTestIncomplete('This test relies on system configuration state.');
  70. /** @var \Magento\Quote\Model\Quote $quote */
  71. $quote = $this->objectManager->create(\Magento\Quote\Model\Quote::class);
  72. $quote->load('test_order_item_with_message', 'reserved_order_id');
  73. $cartId = $quote->getId();
  74. /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
  75. $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  76. ->create(\Magento\Quote\Model\QuoteIdMaskFactory::class)
  77. ->create();
  78. $quoteIdMask->load($cartId, 'quote_id');
  79. //Use masked cart Id
  80. $cartId = $quoteIdMask->getMaskedId();
  81. $serviceInfo = [
  82. 'rest' => [
  83. 'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message',
  84. 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
  85. ],
  86. 'soap' => [
  87. 'service' => self::SERVICE_NAME,
  88. 'serviceVersion' => self::SERVICE_VERSION,
  89. 'operation' => self::SERVICE_NAME . 'Save',
  90. ],
  91. ];
  92. $requestData = [
  93. 'cartId' => $cartId,
  94. 'giftMessage' => [
  95. 'recipient' => 'John Doe',
  96. 'sender' => 'Jane Roe',
  97. 'message' => 'Gift Message Text New',
  98. ],
  99. ];
  100. $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
  101. $quote->load('test_order_item_with_message', 'reserved_order_id');
  102. $quote->getGiftMessageId();
  103. /** @var \Magento\GiftMessage\Model\Message $message */
  104. $message = $this->objectManager->create(\Magento\GiftMessage\Model\Message::class)
  105. ->load($quote->getGiftMessageId());
  106. $this->assertEquals('John Doe', $message->getRecipient());
  107. $this->assertEquals('Jane Roe', $message->getSender());
  108. $this->assertEquals('Gift Message Text New', $message->getMessage());
  109. }
  110. }