123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Multishipping\Test\Unit\Helper;
- /**
- * Multishipping data helper Test
- */
- class DataTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * Multishipping data helper
- *
- * @var \Magento\Multishipping\Helper\Data
- */
- protected $helper;
- /**
- * Core store config mock
- *
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\Config\ScopeConfigInterface
- */
- protected $scopeConfigMock;
- /**
- * Quote mock
- *
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Quote\Model\Quote
- */
- protected $quoteMock;
- /**
- * Checkout session mock
- *
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Checkout\Model\Session
- */
- protected $checkoutSessionMock;
- protected function setUp()
- {
- $this->quoteMock = $this->createMock(\Magento\Quote\Model\Quote::class);
- $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $arguments = $objectManager->getConstructArguments(\Magento\Multishipping\Helper\Data::class);
- $this->helper = $objectManager->getObject(\Magento\Multishipping\Helper\Data::class, $arguments);
- $this->checkoutSessionMock = $arguments['checkoutSession'];
- /** @var \Magento\Framework\App\Helper\Context $context */
- $context = $arguments['context'];
- $this->scopeConfigMock = $context->getScopeConfig();
- }
- public function testGetMaximumQty()
- {
- $maximumQty = 10;
- $this->scopeConfigMock->expects(
- $this->once()
- )->method(
- 'getValue'
- )->with(
- \Magento\Multishipping\Helper\Data::XML_PATH_CHECKOUT_MULTIPLE_MAXIMUM_QUANTITY
- )->will(
- $this->returnValue($maximumQty)
- );
- $this->assertEquals($maximumQty, $this->helper->getMaximumQty());
- }
- /**
- * @param bool $result
- * @param bool $quoteHasItems
- * @param bool $isMultiShipping
- * @param bool $hasItemsWithDecimalQty
- * @param bool $validateMinimumAmount
- * @param int $itemsSummaryQty
- * @param int $itemVirtualQty
- * @param int $maximumQty
- * @dataProvider isMultishippingCheckoutAvailableDataProvider
- */
- public function testIsMultishippingCheckoutAvailable(
- $result,
- $quoteHasItems,
- $isMultiShipping,
- $hasItemsWithDecimalQty,
- $validateMinimumAmount,
- $itemsSummaryQty,
- $itemVirtualQty,
- $maximumQty
- ) {
- $this->scopeConfigMock->expects(
- $this->once()
- )->method(
- 'isSetFlag'
- )->with(
- \Magento\Multishipping\Helper\Data::XML_PATH_CHECKOUT_MULTIPLE_AVAILABLE
- )->will(
- $this->returnValue($isMultiShipping)
- );
- $this->checkoutSessionMock->expects(
- $this->once()
- )->method(
- 'getQuote'
- )->will(
- $this->returnValue($this->quoteMock)
- );
- $this->quoteMock->expects($this->once())->method('hasItems')->will($this->returnValue($quoteHasItems));
- $this->quoteMock->expects(
- $this->any()
- )->method(
- 'hasItemsWithDecimalQty'
- )->will(
- $this->returnValue($hasItemsWithDecimalQty)
- );
- $this->quoteMock->expects(
- $this->any()
- )->method(
- 'validateMinimumAmount'
- )->with(
- true
- )->will(
- $this->returnValue($validateMinimumAmount)
- );
- $this->quoteMock->expects(
- $this->any()
- )->method(
- 'getItemsSummaryQty'
- )->will(
- $this->returnValue($itemsSummaryQty)
- );
- $this->quoteMock->expects(
- $this->any()
- )->method(
- 'getItemVirtualQty'
- )->will(
- $this->returnValue($itemVirtualQty)
- );
- $this->scopeConfigMock->expects(
- $this->any()
- )->method(
- 'getValue'
- )->with(
- \Magento\Multishipping\Helper\Data::XML_PATH_CHECKOUT_MULTIPLE_MAXIMUM_QUANTITY
- )->will(
- $this->returnValue($maximumQty)
- );
- $this->assertEquals($result, $this->helper->isMultishippingCheckoutAvailable());
- }
- /**
- * Data provider
- *
- * @return array
- */
- public function isMultishippingCheckoutAvailableDataProvider()
- {
- return [
- [true, false, true, null, null, null, null, null],
- [false, false, false, null, null, null, null, null],
- [false, true, true, true, null, null, null, null],
- [false, true, true, false, false, null, null, null],
- [true, true, true, false, true, 2, 1, 3],
- [false, true, true, false, true, 1, 2, null],
- [false, true, true, false, true, 2, 1, 1],
- ];
- }
- }
|