magento2-docker/dev/tests/integration/testsuite/Magento/Paypal/Model/PayflowproTest.php

93 lines
3.1 KiB
PHP
Executable File

<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Paypal\Model;
use Magento\Framework\DataObject;
use Magento\Framework\HTTP\LaminasClient;
use Magento\Framework\HTTP\LaminasClientFactory;
use Magento\Framework\Math\Random;
use Magento\Framework\ObjectManagerInterface;
use Magento\Payment\Model\Method\Logger;
use Magento\Paypal\Model\Payflow\Service\Gateway;
use Magento\Sales\Model\Order;
use Magento\TestFramework\Helper\Bootstrap;
use PHPUnit\Framework\TestCase;
class PayflowproTest extends TestCase
{
/**
* @var ObjectManagerInterface
*/
protected $_objectManager;
/**
* @var Payflowpro
*/
protected $_model;
/**
* @var LaminasClient
*/
protected $_httpClientMock;
/**
* @var Gateway
*/
protected $gatewayMock;
protected function setUp(): void
{
$this->_objectManager = Bootstrap::getObjectManager();
$httpClientFactoryMock = $this->getMockBuilder(LaminasClientFactory::class)
->setMethods(['create'])
->disableOriginalConstructor()
->getMock();
$this->_httpClientMock = $this->getMockBuilder(LaminasClient::class)->setMethods([])
->disableOriginalConstructor()->getMock();
$this->_httpClientMock->expects($this->any())->method('setUri')->willReturnSelf();
$this->_httpClientMock->expects($this->any())->method('setOptions')->willReturnSelf();
$this->_httpClientMock->expects($this->any())->method('setMethod')->willReturnSelf();
$this->_httpClientMock->expects($this->any())->method('setParameterPost')->willReturnSelf();
$this->_httpClientMock->expects($this->any())->method('setHeaders')->willReturnSelf();
$this->_httpClientMock->expects($this->any())->method('setUrlEncodeBody')->willReturnSelf();
$httpClientFactoryMock->expects($this->any())->method('create')
->willReturn($this->_httpClientMock);
$mathRandomMock = $this->createMock(Random::class);
$loggerMock = $this->createMock(Logger::class);
$this->gatewayMock =$this->_objectManager->create(
Gateway::class,
[
'httpClientFactory' => $httpClientFactoryMock,
'mathRandom' => $mathRandomMock,
'logger' => $loggerMock,
]
);
$this->_model = $this->_objectManager->create(
Payflowpro::class,
['gateway' => $this->gatewayMock]
);
}
/**
* @magentoDataFixture Magento/Sales/_files/order_paid_with_payflowpro.php
*/
public function testReviewPaymentNullResponce()
{
/** @var Order $order */
$order = $this->_objectManager->create(Order::class);
$order->loadByIncrementId('100000001');
$this->_httpClientMock->expects($this->any())->method('send')
->willReturn(new DataObject(['body' => 'RESULTval=12&val2=34']));
$expectedResult = ['resultval' => '12', 'val2' => '34', 'result_code' => null];
$this->assertEquals($expectedResult, $this->_model->acceptPayment($order->getPayment()));
}
}