mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-08 01:37:36 +00:00
85 lines
2.9 KiB
PHP
85 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\Checkout\Test\Unit\Model;
|
|
|
|
use Magento\Checkout\Api\Data\PaymentDetailsInterface;
|
|
use Magento\Checkout\Api\Data\ShippingInformationInterface;
|
|
use Magento\Checkout\Api\ShippingInformationManagementInterface;
|
|
use Magento\Checkout\Model\GuestShippingInformationManagement;
|
|
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
|
|
use Magento\Quote\Model\QuoteIdMask;
|
|
use Magento\Quote\Model\QuoteIdMaskFactory;
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class GuestShippingInformationManagementTest extends TestCase
|
|
{
|
|
/**
|
|
* @var MockObject
|
|
*/
|
|
protected $shippingInformationManagementMock;
|
|
|
|
/**
|
|
* @var MockObject
|
|
*/
|
|
protected $quoteIdMaskFactoryMock;
|
|
|
|
/**
|
|
* @var GuestShippingInformationManagement
|
|
*/
|
|
protected $model;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$objectManager = new ObjectManager($this);
|
|
$this->quoteIdMaskFactoryMock = $this->createPartialMock(
|
|
QuoteIdMaskFactory::class,
|
|
['create']
|
|
);
|
|
$this->shippingInformationManagementMock = $this->createMock(
|
|
ShippingInformationManagementInterface::class
|
|
);
|
|
|
|
$this->model = $objectManager->getObject(
|
|
GuestShippingInformationManagement::class,
|
|
[
|
|
'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock,
|
|
'shippingInformationManagement' => $this->shippingInformationManagementMock
|
|
]
|
|
);
|
|
}
|
|
|
|
public function testSaveAddressInformation()
|
|
{
|
|
$cartId = 'masked_id';
|
|
$quoteId = '100';
|
|
$addressInformationMock = $this->getMockForAbstractClass(ShippingInformationInterface::class);
|
|
|
|
$quoteIdMaskMock = $this->getMockBuilder(QuoteIdMask::class)
|
|
->addMethods(['getQuoteId'])
|
|
->onlyMethods(['load'])
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$this->quoteIdMaskFactoryMock->expects($this->once())->method('create')->willReturn($quoteIdMaskMock);
|
|
|
|
$quoteIdMaskMock->expects($this->once())->method('load')->with($cartId, 'masked_id')->willReturnSelf();
|
|
$quoteIdMaskMock->expects($this->once())->method('getQuoteId')->willReturn($quoteId);
|
|
|
|
$paymentInformationMock = $this->getMockForAbstractClass(PaymentDetailsInterface::class);
|
|
$this->shippingInformationManagementMock->expects($this->once())
|
|
->method('saveAddressInformation')
|
|
->with(
|
|
self::callback(fn($actualQuoteId): bool => (int) $quoteId === $actualQuoteId),
|
|
$addressInformationMock
|
|
)
|
|
->willReturn($paymentInformationMock);
|
|
|
|
$this->model->saveAddressInformation($cartId, $addressInformationMock);
|
|
}
|
|
}
|