Skip to content

Commit 2c2454a

Browse files
committed
Fix unit tests
Signed-off-by: Denis Kopylov <dkopylov@magenius.team>
1 parent e264762 commit 2c2454a

File tree

2 files changed

+61
-39
lines changed

2 files changed

+61
-39
lines changed

app/code/Magento/Payment/Helper/Data.php

Lines changed: 52 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,24 @@
11
<?php
2+
declare(strict_types=1);
23
/**
34
* Copyright © Magento, Inc. All rights reserved.
45
* See COPYING.txt for license details.
56
*/
7+
68
namespace Magento\Payment\Helper;
79

10+
use Exception;
11+
use Magento\Framework\App\Area;
12+
use Magento\Framework\App\Config\Initial;
13+
use Magento\Framework\App\Helper\AbstractHelper;
14+
use Magento\Framework\App\Helper\Context;
15+
use Magento\Framework\Exception\LocalizedException;
16+
use Magento\Payment\Model\Config;
17+
use Magento\Payment\Model\Method\Factory;
18+
use Magento\Payment\Model\Method\Free;
819
use Magento\Quote\Model\Quote;
20+
use Magento\Store\Model\App\Emulation;
21+
use Magento\Store\Model\ScopeInterface;
922
use Magento\Store\Model\Store;
1023
use Magento\Payment\Block\Form;
1124
use Magento\Payment\Model\InfoInterface;
@@ -14,6 +27,7 @@
1427
use Magento\Framework\View\LayoutFactory;
1528
use Magento\Payment\Model\Method\AbstractMethod;
1629
use Magento\Payment\Model\MethodInterface;
30+
use UnexpectedValueException;
1731

1832
/**
1933
* Payment module base helper
@@ -22,67 +36,68 @@
2236
* @api
2337
* @since 100.0.2
2438
*/
25-
class Data extends \Magento\Framework\App\Helper\AbstractHelper
39+
class Data extends AbstractHelper
2640
{
2741
const XML_PATH_PAYMENT_METHODS = 'payment';
2842

2943
/**
30-
* @var \Magento\Payment\Model\Config
44+
* @var Config
3145
*/
3246
protected $_paymentConfig;
3347

3448
/**
3549
* Layout
3650
* @deprecated
37-
* @var \Magento\Framework\View\LayoutInterface
51+
* @var LayoutInterface
3852
*/
3953
protected $_layout;
4054

4155
/**
4256
* LayoutFactory
43-
* @var \Magento\Framework\View\LayoutFactory
57+
*
58+
* @var LayoutFactory
4459
*/
45-
private $_layoutFactory;
60+
private $layoutFactory;
4661

4762
/**
4863
* Factory for payment method models
4964
*
50-
* @var \Magento\Payment\Model\Method\Factory
65+
* @var Factory
5166
*/
5267
protected $_methodFactory;
5368

5469
/**
5570
* App emulation model
5671
*
57-
* @var \Magento\Store\Model\App\Emulation
72+
* @var Emulation
5873
*/
5974
protected $_appEmulation;
6075

6176
/**
62-
* @var \Magento\Framework\App\Config\Initial
77+
* @var Initial
6378
*/
6479
protected $_initialConfig;
6580

6681
/**
6782
* Construct
6883
*
69-
* @param \Magento\Framework\App\Helper\Context $context
84+
* @param Context $context
7085
* @param LayoutFactory $layoutFactory
71-
* @param \Magento\Payment\Model\Method\Factory $paymentMethodFactory
72-
* @param \Magento\Store\Model\App\Emulation $appEmulation
73-
* @param \Magento\Payment\Model\Config $paymentConfig
74-
* @param \Magento\Framework\App\Config\Initial $initialConfig
86+
* @param Factory $paymentMethodFactory
87+
* @param Emulation $appEmulation
88+
* @param Config $paymentConfig
89+
* @param Initial $initialConfig
7590
*/
7691
public function __construct(
77-
\Magento\Framework\App\Helper\Context $context,
92+
Context $context,
7893
LayoutFactory $layoutFactory,
79-
\Magento\Payment\Model\Method\Factory $paymentMethodFactory,
80-
\Magento\Store\Model\App\Emulation $appEmulation,
81-
\Magento\Payment\Model\Config $paymentConfig,
82-
\Magento\Framework\App\Config\Initial $initialConfig
94+
Factory $paymentMethodFactory,
95+
Emulation $appEmulation,
96+
Config $paymentConfig,
97+
Initial $initialConfig
8398
) {
8499
parent::__construct($context);
85-
$this->_layoutFactory = $layoutFactory;
100+
$this->layoutFactory = $layoutFactory;
86101
$this->_methodFactory = $paymentMethodFactory;
87102
$this->_appEmulation = $appEmulation;
88103
$this->_paymentConfig = $paymentConfig;
@@ -105,18 +120,18 @@ protected function getMethodModelConfigName($code)
105120
*
106121
* @param string $code
107122
*
108-
* @throws \Magento\Framework\Exception\LocalizedException
109123
* @return MethodInterface
124+
* @throws LocalizedException
110125
*/
111126
public function getMethodInstance($code)
112127
{
113128
$class = $this->scopeConfig->getValue(
114129
$this->getMethodModelConfigName($code),
115-
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
130+
ScopeInterface::SCOPE_STORE
116131
);
117132

118133
if (!$class) {
119-
throw new \UnexpectedValueException('Payment model name is not provided in config!');
134+
throw new UnexpectedValueException('Payment model name is not provided in config!');
120135
}
121136

122137
return $this->_methodFactory->create($class);
@@ -139,7 +154,7 @@ public function getStoreMethods($store = null, $quote = null)
139154
foreach (array_keys($methods) as $code) {
140155
$model = $this->scopeConfig->getValue(
141156
$this->getMethodModelConfigName($code),
142-
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
157+
ScopeInterface::SCOPE_STORE,
143158
$store
144159
);
145160
if (!$model) {
@@ -184,12 +199,12 @@ public function getMethodFormBlock(MethodInterface $method, LayoutInterface $lay
184199
* Retrieve payment information block
185200
*
186201
* @param InfoInterface $info
187-
* @param \Magento\Framework\View\LayoutInterface $layout
202+
* @param LayoutInterface $layout
188203
* @return Template
189204
*/
190205
public function getInfoBlock(InfoInterface $info, LayoutInterface $layout = null)
191206
{
192-
$layout = $layout ?: $this->_layoutFactory->create();
207+
$layout = $layout ?: $this->layoutFactory->create();
193208
$blockType = $info->getMethodInstance()->getInfoBlockType();
194209
$block = $layout->createBlock($blockType);
195210
$block->setInfo($info);
@@ -202,21 +217,21 @@ public function getInfoBlock(InfoInterface $info, LayoutInterface $layout = null
202217
* @param InfoInterface $info
203218
* @param int $storeId
204219
* @return string
205-
* @throws \Exception
220+
* @throws Exception
206221
*/
207222
public function getInfoBlockHtml(InfoInterface $info, $storeId)
208223
{
209-
$this->_appEmulation->startEnvironmentEmulation($storeId, \Magento\Framework\App\Area::AREA_FRONTEND, true);
224+
$this->_appEmulation->startEnvironmentEmulation($storeId, Area::AREA_FRONTEND, true);
210225

211226
try {
212227
// Retrieve specified view block from appropriate design package (depends on emulated store)
213228
$paymentBlock = $this->getInfoBlock($info);
214-
$paymentBlock->setArea(\Magento\Framework\App\Area::AREA_FRONTEND)
229+
$paymentBlock->setArea(Area::AREA_FRONTEND)
215230
->setIsSecureMode(true);
216231
$paymentBlock->getMethod()
217232
->setStore($storeId);
218233
$paymentBlockHtml = $paymentBlock->toHtml();
219-
} catch (\Exception $exception) {
234+
} catch (Exception $exception) {
220235
$this->_appEmulation->stopEnvironmentEmulation();
221236
throw $exception;
222237
}
@@ -319,8 +334,8 @@ public function getPaymentMethodList($sorted = true, $asLabelValue = false, $wit
319334
public function isZeroSubTotal($store = null)
320335
{
321336
return $this->scopeConfig->getValue(
322-
\Magento\Payment\Model\Method\Free::XML_PATH_PAYMENT_FREE_ACTIVE,
323-
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
337+
Free::XML_PATH_PAYMENT_FREE_ACTIVE,
338+
ScopeInterface::SCOPE_STORE,
324339
$store
325340
);
326341
}
@@ -334,8 +349,8 @@ public function isZeroSubTotal($store = null)
334349
public function getZeroSubTotalOrderStatus($store = null)
335350
{
336351
return $this->scopeConfig->getValue(
337-
\Magento\Payment\Model\Method\Free::XML_PATH_PAYMENT_FREE_ORDER_STATUS,
338-
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
352+
Free::XML_PATH_PAYMENT_FREE_ORDER_STATUS,
353+
ScopeInterface::SCOPE_STORE,
339354
$store
340355
);
341356
}
@@ -349,8 +364,8 @@ public function getZeroSubTotalOrderStatus($store = null)
349364
public function getZeroSubTotalPaymentAutomaticInvoice($store = null)
350365
{
351366
return $this->scopeConfig->getValue(
352-
\Magento\Payment\Model\Method\Free::XML_PATH_PAYMENT_FREE_PAYMENT_ACTION,
353-
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
367+
Free::XML_PATH_PAYMENT_FREE_PAYMENT_ACTION,
368+
ScopeInterface::SCOPE_STORE,
354369
$store
355370
);
356371
}
@@ -365,9 +380,9 @@ public function getZeroSubTotalPaymentAutomaticInvoice($store = null)
365380
private function getMethodStoreTitle(string $code, ?int $storeId = null): string
366381
{
367382
$configPath = sprintf('%s/%s/title', self::XML_PATH_PAYMENT_METHODS, $code);
368-
return (string) $this->scopeConfig->getValue(
383+
return (string)$this->scopeConfig->getValue(
369384
$configPath,
370-
\Magento\Store\Model\ScopeInterface::SCOPE_STORE,
385+
ScopeInterface::SCOPE_STORE,
371386
$storeId
372387
);
373388
}

app/code/Magento/Payment/Test/Unit/Helper/DataTest.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1313
use Magento\Framework\TestFramework\Unit\Matcher\MethodInvokedAtIndex;
1414
use Magento\Framework\View\Element\BlockInterface;
15+
use Magento\Framework\View\LayoutFactory;
1516
use Magento\Framework\View\LayoutInterface;
1617
use Magento\Payment\Helper\Data;
1718
use Magento\Payment\Model\Info;
@@ -44,6 +45,11 @@ class DataTest extends TestCase
4445
*/
4546
private $appEmulation;
4647

48+
/**
49+
* @var LayoutFactory|MockObject
50+
*/
51+
private $layoutFactoryMock;
52+
4753
protected function setUp(): void
4854
{
4955
$objectManagerHelper = new ObjectManager($this);
@@ -53,8 +59,7 @@ protected function setUp(): void
5359
$context = $arguments['context'];
5460
$this->scopeConfig = $context->getScopeConfig();
5561
$this->layoutMock = $this->getMockForAbstractClass(LayoutInterface::class);
56-
$layoutFactoryMock = $arguments['layoutFactory'];
57-
$layoutFactoryMock->expects($this->once())->method('create')->willReturn($this->layoutMock);
62+
$this->layoutFactoryMock = $arguments['layoutFactory'];
5863

5964
$this->methodFactory = $arguments['paymentMethodFactory'];
6065
$this->appEmulation = $arguments['appEmulation'];
@@ -214,6 +219,7 @@ public function testGetInfoBlock()
214219
$this->layoutMock->expects($this->once())->method('createBlock')
215220
->with($blockType)
216221
->willReturn($blockMock);
222+
$this->layoutFactoryMock->expects($this->once())->method('create')->willReturn($this->layoutMock);
217223
$blockMock->expects($this->once())->method('setInfo')->with($infoMock);
218224

219225
$this->assertSame($blockMock, $this->helper->getInfoBlock($infoMock));
@@ -242,6 +248,7 @@ public function testGetInfoBlockHtml()
242248
$this->layoutMock->expects($this->once())->method('createBlock')
243249
->with($blockType)
244250
->willReturn($paymentBlockMock);
251+
$this->layoutFactoryMock->expects($this->once())->method('create')->willReturn($this->layoutMock);
245252
$paymentBlockMock->expects($this->once())->method('setInfo')->with($infoMock);
246253
$paymentBlockMock->expects($this->once())->method('setArea')
247254
->with(Area::AREA_FRONTEND)

0 commit comments

Comments
 (0)