130 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
namespace Magento\GiftMessage\Api;
 | 
						|
 | 
						|
use Magento\TestFramework\TestCase\WebapiAbstract;
 | 
						|
 | 
						|
class GuestItemRepositoryTest extends WebapiAbstract
 | 
						|
{
 | 
						|
    public const SERVICE_VERSION = 'V1';
 | 
						|
    public const SERVICE_NAME = 'giftMessageGuestItemRepositoryV1';
 | 
						|
    public const RESOURCE_PATH = '/V1/guest-carts/';
 | 
						|
 | 
						|
    /**
 | 
						|
     * @var \Magento\TestFramework\ObjectManager
 | 
						|
     */
 | 
						|
    protected $objectManager;
 | 
						|
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php
 | 
						|
     * @magentoAppIsolation enabled
 | 
						|
     * @magentoDbIsolation disabled
 | 
						|
     */
 | 
						|
    public function testGet()
 | 
						|
    {
 | 
						|
        /** @var \Magento\Quote\Model\Quote $quote */
 | 
						|
        $quote = $this->objectManager->create(\Magento\Quote\Model\Quote::class);
 | 
						|
        $quote->load('test_order_item_with_message', 'reserved_order_id');
 | 
						|
        $product = $this->objectManager->create(\Magento\Catalog\Model\Product::class);
 | 
						|
        $product->load($product->getIdBySku('simple_with_message'));
 | 
						|
        $itemId = $quote->getItemByProduct($product)->getId();
 | 
						|
        /** @var  \Magento\Catalog\Model\Product $product */
 | 
						|
        $cartId = $quote->getId();
 | 
						|
        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
 | 
						|
        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
 | 
						|
            ->create(\Magento\Quote\Model\QuoteIdMaskFactory::class)
 | 
						|
            ->create();
 | 
						|
        $quoteIdMask->load($cartId, 'quote_id');
 | 
						|
        //Use masked cart Id
 | 
						|
        $cartId = $quoteIdMask->getMaskedId();
 | 
						|
 | 
						|
        $serviceInfo = [
 | 
						|
            'rest' => [
 | 
						|
                'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message/' . $itemId,
 | 
						|
                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
 | 
						|
            ],
 | 
						|
            'soap' => [
 | 
						|
                'service' => self::SERVICE_NAME,
 | 
						|
                'serviceVersion' => self::SERVICE_VERSION,
 | 
						|
                'operation' => self::SERVICE_NAME . 'Get',
 | 
						|
            ],
 | 
						|
        ];
 | 
						|
 | 
						|
        $expectedMessage = [
 | 
						|
            'recipient' => 'Jane Roe',
 | 
						|
            'sender' => 'John Doe',
 | 
						|
            'message' => 'Gift Message Text',
 | 
						|
        ];
 | 
						|
 | 
						|
        $requestData = ["cartId" => $cartId, "itemId" => $itemId];
 | 
						|
        $resultMessage = $this->_webApiCall($serviceInfo, $requestData);
 | 
						|
        $this->assertCount(5, $resultMessage);
 | 
						|
        unset($resultMessage['gift_message_id']);
 | 
						|
        unset($resultMessage['customer_id']);
 | 
						|
        $this->assertEquals($expectedMessage, $resultMessage);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php
 | 
						|
     * @magentoConfigFixture default_store sales/gift_options/allow_items 1
 | 
						|
     */
 | 
						|
    public function testSave()
 | 
						|
    {
 | 
						|
        $this->markTestSkipped('This test relies on system configuration state.');
 | 
						|
        // sales/gift_options/allow_items must be set to 1 in system configuration
 | 
						|
        // @todo remove above statement when \Magento\TestFramework\TestCase\WebapiAbstract::_updateAppConfig is fixed
 | 
						|
 | 
						|
        /** @var \Magento\Quote\Model\Quote $quote */
 | 
						|
        $quote = $this->objectManager->create(\Magento\Quote\Model\Quote::class);
 | 
						|
        $quote->load('test_order_item_with_message', 'reserved_order_id');
 | 
						|
        $product = $this->objectManager->create(\Magento\Catalog\Model\Product::class);
 | 
						|
        $product->load($product->getIdBySku('simple_with_message'));
 | 
						|
        $itemId = $quote->getItemByProduct($product)->getId();
 | 
						|
        $cartId = $quote->getId();
 | 
						|
        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
 | 
						|
        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
 | 
						|
            ->create(\Magento\Quote\Model\QuoteIdMaskFactory::class)
 | 
						|
            ->create();
 | 
						|
        $quoteIdMask->load($cartId, 'quote_id');
 | 
						|
        //Use masked cart Id
 | 
						|
        $cartId = $quoteIdMask->getMaskedId();
 | 
						|
 | 
						|
        $serviceInfo = [
 | 
						|
            'rest' => [
 | 
						|
                'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message/' .  $itemId,
 | 
						|
                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
 | 
						|
            ],
 | 
						|
            'soap' => [
 | 
						|
                'service' => self::SERVICE_NAME,
 | 
						|
                'serviceVersion' => self::SERVICE_VERSION,
 | 
						|
                'operation' => self::SERVICE_NAME . 'Save',
 | 
						|
            ],
 | 
						|
        ];
 | 
						|
 | 
						|
        $requestData = [
 | 
						|
            'cartId' => $cartId,
 | 
						|
            'itemId' => $itemId,
 | 
						|
            'giftMessage' => [
 | 
						|
                'recipient' => 'John Doe',
 | 
						|
                'sender' => 'Jane Roe',
 | 
						|
                'message' => 'Gift Message Text New',
 | 
						|
            ],
 | 
						|
        ];
 | 
						|
        $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
 | 
						|
        $messageId = $quote->getItemByProduct($product)->getGiftMessageId();
 | 
						|
        /** @var  \Magento\GiftMessage\Model\Message $message */
 | 
						|
        $message = $this->objectManager->create(\Magento\GiftMessage\Model\Message::class)->load($messageId);
 | 
						|
        $this->assertEquals('John Doe', $message->getRecipient());
 | 
						|
        $this->assertEquals('Jane Roe', $message->getSender());
 | 
						|
        $this->assertEquals('Gift Message Text New', $message->getMessage());
 | 
						|
    }
 | 
						|
}
 |