123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Payment\Test\Unit\Model\Method;
- /**
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- */
- class FreeTest extends \PHPUnit\Framework\TestCase
- {
- /** @var \Magento\Payment\Model\Method\Free */
- protected $methodFree;
- /** @var \PHPUnit_Framework_MockObject_MockObject */
- protected $scopeConfig;
- /** @var \PHPUnit_Framework_MockObject_MockObject */
- protected $currencyPrice;
- protected function setUp()
- {
- $paymentData = $this->createMock(\Magento\Payment\Helper\Data::class);
- $this->scopeConfig = $this->createMock(\Magento\Framework\App\Config\ScopeConfigInterface::class);
- $this->currencyPrice = $this->getMockBuilder(\Magento\Framework\Pricing\PriceCurrencyInterface::class)
- ->getMock();
- $context = $this->createPartialMock(\Magento\Framework\Model\Context::class, ['getEventDispatcher']);
- $eventManagerMock = $this->createMock(\Magento\Framework\Event\ManagerInterface::class);
- $context->expects($this->any())->method('getEventDispatcher')->willReturn($eventManagerMock);
- $registry = $this->createMock(\Magento\Framework\Registry::class);
- $extensionAttributesFactory = $this->createMock(\Magento\Framework\Api\ExtensionAttributesFactory::class);
- $customAttributeFactory = $this->createMock(\Magento\Framework\Api\AttributeValueFactory::class);
- $loggerMock = $this->getMockBuilder(\Magento\Payment\Model\Method\Logger::class)
- ->setConstructorArgs([$this->getMockForAbstractClass(\Psr\Log\LoggerInterface::class)])
- ->getMock();
- $this->methodFree = new \Magento\Payment\Model\Method\Free(
- $context,
- $registry,
- $extensionAttributesFactory,
- $customAttributeFactory,
- $paymentData,
- $this->scopeConfig,
- $loggerMock,
- $this->currencyPrice
- );
- }
- /**
- * @param string $orderStatus
- * @param string $paymentAction
- * @param mixed $result
- * @dataProvider getConfigPaymentActionProvider
- */
- public function testGetConfigPaymentAction($orderStatus, $paymentAction, $result)
- {
- $this->scopeConfig->expects($this->at(0))
- ->method('getValue')
- ->will($this->returnValue($orderStatus));
- if ($orderStatus != 'pending') {
- $this->scopeConfig->expects($this->at(1))
- ->method('getValue')
- ->will($this->returnValue($paymentAction));
- }
- $this->assertEquals($result, $this->methodFree->getConfigPaymentAction());
- }
- /**
- * @param float $grandTotal
- * @param bool $isActive
- * @param bool $notEmptyQuote
- * @param bool $result
- * @dataProvider getIsAvailableProvider
- */
- public function testIsAvailable($grandTotal, $isActive, $notEmptyQuote, $result)
- {
- $quote = null;
- if ($notEmptyQuote) {
- $quote = $this->createMock(\Magento\Quote\Model\Quote::class);
- $quote->expects($this->any())
- ->method('__call')
- ->with($this->equalTo('getGrandTotal'))
- ->will($this->returnValue($grandTotal));
- }
- $this->currencyPrice->expects($this->any())
- ->method('round')
- ->willReturnArgument(0);
- $this->scopeConfig->expects($this->any())
- ->method('getValue')
- ->will($this->returnValue($isActive));
- $this->assertEquals($result, $this->methodFree->isAvailable($quote));
- }
- /**
- * @return array
- */
- public function getIsAvailableProvider()
- {
- return [
- [0, true, true, true],
- [0.1, true, true, false],
- [0, false, false, false],
- [1, true, false, false],
- [0, true, false, false]
- ];
- }
- /**
- * @return array
- */
- public function getConfigPaymentActionProvider()
- {
- return [
- ['pending', 'action', null],
- ['processing', 'payment_action', 'payment_action']
- ];
- }
- }
|