Skip to content

Commit a21ec40

Browse files
committed
Merge remote-tracking branch 'origin/MC-29273' into 2.4-develop-pr2
2 parents 3176a36 + 271a286 commit a21ec40

File tree

2 files changed

+101
-66
lines changed
  • app/code/Magento/CurrencySymbol
    • Controller/Adminhtml/System/Currencysymbol
    • Test/Unit/Controller/Adminhtml/System/Currencysymbol

2 files changed

+101
-66
lines changed

app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,68 @@
55
*/
66
namespace Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol;
77

8-
use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
8+
use Magento\Backend\App\Action;
9+
use Magento\Backend\Model\View\Result\Redirect;
10+
use Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol as CurrencysymbolController;
11+
use Magento\CurrencySymbol\Model\System\CurrencysymbolFactory;
12+
use Magento\Framework\App\Action\HttpPostActionInterface;
13+
use Magento\Framework\Controller\ResultInterface;
14+
use Magento\Framework\Filter\FilterManager;
915

1016
/**
11-
* Class Save
17+
* Controller to save currency symbol
1218
*/
13-
class Save extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol implements HttpPostActionInterface
19+
class Save extends CurrencysymbolController implements HttpPostActionInterface
1420
{
21+
/**
22+
* @var FilterManager
23+
*/
24+
private $filterManager;
25+
26+
/**
27+
* @var CurrencysymbolFactory
28+
*/
29+
private $currencySymbolFactory;
30+
31+
/**
32+
* @param Action\Context $context
33+
* @param FilterManager $filterManager
34+
* @param CurrencysymbolFactory $currencySymbolFactory
35+
*/
36+
public function __construct(
37+
Action\Context $context,
38+
FilterManager $filterManager,
39+
CurrencysymbolFactory $currencySymbolFactory
40+
) {
41+
parent::__construct($context);
42+
$this->filterManager = $filterManager;
43+
$this->currencySymbolFactory = $currencySymbolFactory;
44+
}
45+
1546
/**
1647
* Save custom Currency symbol
1748
*
18-
* @return void
49+
* @return ResultInterface
1950
*/
2051
public function execute()
2152
{
53+
/** @var Redirect $resultRedirect */
54+
$resultRedirect = $this->resultRedirectFactory->create();
2255
$symbolsDataArray = $this->getRequest()->getParam('custom_currency_symbol', null);
2356
if (is_array($symbolsDataArray)) {
2457
foreach ($symbolsDataArray as &$symbolsData) {
25-
/** @var $filterManager \Magento\Framework\Filter\FilterManager */
26-
$filterManager = $this->_objectManager->get(\Magento\Framework\Filter\FilterManager::class);
27-
$symbolsData = $filterManager->stripTags($symbolsData);
58+
$symbolsData = $this->filterManager->stripTags($symbolsData);
2859
}
2960
}
3061

3162
try {
32-
$this->_objectManager->create(\Magento\CurrencySymbol\Model\System\Currencysymbol::class)
33-
->setCurrencySymbolsData($symbolsDataArray);
63+
$currencySymbol = $this->currencySymbolFactory->create();
64+
$currencySymbol->setCurrencySymbolsData($symbolsDataArray);
3465
$this->messageManager->addSuccessMessage(__('You applied the custom currency symbols.'));
3566
} catch (\Exception $e) {
3667
$this->messageManager->addErrorMessage($e->getMessage());
3768
}
3869

39-
$this->getResponse()->setRedirect($this->_redirect->getRedirectUrl($this->getUrl('*')));
70+
return $resultRedirect->setPath('*');
4071
}
4172
}

app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php

Lines changed: 60 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -5,132 +5,136 @@
55
*/
66
namespace Magento\CurrencySymbol\Test\Unit\Controller\Adminhtml\System\Currencysymbol;
77

8+
use Magento\Backend\Helper\Data;
9+
use Magento\Backend\Model\View\Result\Redirect;
10+
use Magento\Backend\Model\View\Result\RedirectFactory;
11+
use Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol\Save;
12+
use Magento\CurrencySymbol\Model\System\Currencysymbol;
13+
use Magento\CurrencySymbol\Model\System\CurrencysymbolFactory;
14+
use Magento\Framework\App\RequestInterface;
15+
use Magento\Framework\App\Response\RedirectInterface;
16+
use Magento\Framework\App\ResponseInterface;
17+
use Magento\Framework\Filter\FilterManager;
18+
use Magento\Framework\Message\ManagerInterface;
819
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
20+
use PHPUnit\Framework\TestCase;
21+
use PHPUnit\Framework\MockObject\MockObject;
922

1023
/**
11-
* Class SaveTest
24+
* Test ot to save currency symbol controller
1225
*/
13-
class SaveTest extends \PHPUnit\Framework\TestCase
26+
class SaveTest extends TestCase
1427
{
1528
/**
16-
* @var \Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol\Save
29+
* @var Save
1730
*/
1831
protected $action;
1932

2033
/**
21-
* @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject
34+
* @var RedirectFactory|MockObject
35+
*/
36+
private $resultRedirectFactory;
37+
38+
/**
39+
* @var RequestInterface|MockObject
2240
*/
2341
protected $requestMock;
2442

2543
/**
26-
* @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject
44+
* @var ResponseInterface|MockObject
2745
*/
2846
protected $responseMock;
2947

3048
/**
31-
* @var \Magento\Framework\ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
49+
* @var ManagerInterface|MockObject
3250
*/
33-
protected $objectManagerMock;
51+
protected $messageManagerMock;
3452

3553
/**
36-
* @var \Magento\CurrencySymbol\Model\System\Currencysymbol|\PHPUnit_Framework_MockObject_MockObject
54+
* @var RedirectInterface|MockObject
3755
*/
38-
protected $currencySymbolMock;
56+
protected $redirectMock;
3957

4058
/**
41-
* @var \Magento\Framework\Message\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
59+
* @var Data|MockObject
4260
*/
43-
protected $messageManagerMock;
61+
protected $helperMock;
4462

4563
/**
46-
* @var \Magento\Framework\App\Response\RedirectInterface|\PHPUnit_Framework_MockObject_MockObject
64+
* @var FilterManager|MockObject
4765
*/
48-
protected $redirectMock;
66+
private $filterManager;
4967

5068
/**
51-
* @var \Magento\Backend\Helper\Data|\PHPUnit_Framework_MockObject_MockObject
69+
* @var CurrencysymbolFactory|MockObject
5270
*/
53-
protected $helperMock;
71+
private $currencySymbolFactory;
5472

5573
/**
56-
* @var \Magento\Framework\Filter\FilterManager|\PHPUnit_Framework_MockObject_MockObject
74+
* @inheritdoc
5775
*/
58-
protected $filterManagerMock;
59-
6076
protected function setUp()
6177
{
6278
$objectManager = new ObjectManager($this);
63-
64-
$this->requestMock = $this->createMock(\Magento\Framework\App\RequestInterface::class);
65-
66-
$this->helperMock = $this->createMock(\Magento\Backend\Helper\Data::class);
67-
68-
$this->redirectMock = $this->createMock(\Magento\Framework\App\Response\RedirectInterface::class);
69-
79+
$this->requestMock = $this->createMock(RequestInterface::class);
80+
$this->helperMock = $this->createMock(Data::class);
81+
$this->redirectMock = $this->createMock(RedirectInterface::class);
7082
$this->responseMock = $this->createPartialMock(
71-
\Magento\Framework\App\ResponseInterface::class,
83+
ResponseInterface::class,
7284
['setRedirect', 'sendResponse']
7385
);
74-
75-
$this->currencySymbolMock = $this->createMock(\Magento\CurrencySymbol\Model\System\Currencysymbol::class);
76-
77-
$this->filterManagerMock = $this->createPartialMock(
78-
\Magento\Framework\Filter\FilterManager::class,
86+
$this->messageManagerMock = $this->createMock(ManagerInterface::class);
87+
$this->resultRedirectFactory = $this->createMock(RedirectFactory::class);
88+
$this->filterManager = $this->createPartialMock(
89+
FilterManager::class,
7990
['stripTags']
8091
);
92+
$this->currencySymbolFactory = $this->createMock(CurrencysymbolFactory::class);
8193

82-
$this->objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
83-
84-
$this->messageManagerMock = $this->createMock(\Magento\Framework\Message\ManagerInterface::class);
8594
$this->action = $objectManager->getObject(
86-
\Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol\Save::class,
95+
Save::class,
8796
[
8897
'request' => $this->requestMock,
8998
'response' => $this->responseMock,
90-
'objectManager' => $this->objectManagerMock,
9199
'redirect' => $this->redirectMock,
92100
'helper' => $this->helperMock,
93-
'messageManager' => $this->messageManagerMock
101+
'messageManager' => $this->messageManagerMock,
102+
'resultRedirectFactory' => $this->resultRedirectFactory,
103+
'filterManager' => $this->filterManager,
104+
'currencySymbolFactory' => $this->currencySymbolFactory,
94105
]
95106
);
96107
}
97108

109+
/**
110+
* Test to Save custom Currency symbol
111+
*/
98112
public function testExecute()
99113
{
100114
$firstElement = 'firstElement';
101115
$symbolsDataArray = [$firstElement];
102-
$redirectUrl = 'redirectUrl';
103116

104117
$this->requestMock->expects($this->once())
105118
->method('getParam')
106119
->with('custom_currency_symbol')
107120
->willReturn($symbolsDataArray);
108121

109-
$this->helperMock->expects($this->once())->method('getUrl')->with('*');
110-
$this->redirectMock->expects($this->once())->method('getRedirectUrl')->willReturn($redirectUrl);
111-
112-
$this->currencySymbolMock->expects($this->once())->method('setCurrencySymbolsData')->with($symbolsDataArray);
113-
$this->responseMock->expects($this->once())->method('setRedirect');
114-
115-
$this->filterManagerMock->expects($this->once())
122+
$currencySymbol = $this->createMock(Currencysymbol::class);
123+
$currencySymbol->expects($this->once())->method('setCurrencySymbolsData')->with($symbolsDataArray);
124+
$this->currencySymbolFactory->method('create')->willReturn($currencySymbol);
125+
$this->filterManager->expects($this->once())
116126
->method('stripTags')
117127
->with($firstElement)
118128
->willReturn($firstElement);
119129

120-
$this->objectManagerMock->expects($this->once())
121-
->method('create')
122-
->with(\Magento\CurrencySymbol\Model\System\Currencysymbol::class)
123-
->willReturn($this->currencySymbolMock);
124-
125-
$this->objectManagerMock->expects($this->once())
126-
->method('get')
127-
->with(\Magento\Framework\Filter\FilterManager::class)
128-
->willReturn($this->filterManagerMock);
129-
130130
$this->messageManagerMock->expects($this->once())
131131
->method('addSuccessMessage')
132132
->with(__('You applied the custom currency symbols.'));
133133

134-
$this->action->execute();
134+
$redirect = $this->createMock(Redirect::class);
135+
$redirect->expects($this->once())->method('setPath')->with('*')->willReturnSelf();
136+
$this->resultRedirectFactory->method('create')->willReturn($redirect);
137+
138+
$this->assertEquals($redirect, $this->action->execute());
135139
}
136140
}

0 commit comments

Comments
 (0)