Skip to content

Commit a0e00a6

Browse files
author
Yuri Kovsher
committed
MAGETWO-36731: Refactor controller actions in the Search module
1 parent 2a9e427 commit a0e00a6

File tree

2 files changed

+74
-46
lines changed

2 files changed

+74
-46
lines changed

app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Ajax/SuggestTest.php

Lines changed: 53 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
namespace Magento\Search\Test\Unit\Controller\Adminhtml\Ajax;
88

99
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
10+
use Magento\Framework\Controller\ResultFactory;
1011

1112
class SuggestTest extends \PHPUnit_Framework_TestCase
1213
{
@@ -16,9 +17,6 @@ class SuggestTest extends \PHPUnit_Framework_TestCase
1617
/** @var ObjectManagerHelper */
1718
private $objectManagerHelper;
1819

19-
/** @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject */
20-
private $response;
21-
2220
/** @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject */
2321
private $request;
2422

@@ -31,6 +29,21 @@ class SuggestTest extends \PHPUnit_Framework_TestCase
3129
/** @var \Magento\Search\Model\AutocompleteInterface|\PHPUnit_Framework_MockObject_MockObject */
3230
private $autocomplete;
3331

32+
/**
33+
* @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject
34+
*/
35+
protected $resultFactoryMock;
36+
37+
/**
38+
* @var \Magento\Backend\Model\View\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
39+
*/
40+
protected $resultRedirectMock;
41+
42+
/**
43+
* @var \Magento\Framework\Controller\Result\Json|\PHPUnit_Framework_MockObject_MockObject
44+
*/
45+
protected $resultJsonMock;
46+
3447
protected function setUp()
3548
{
3649
$this->autocomplete = $this->getMockBuilder('Magento\Search\Model\AutocompleteInterface')
@@ -41,27 +54,41 @@ protected function setUp()
4154
->disableOriginalConstructor()
4255
->setMethods([])
4356
->getMockForAbstractClass();
44-
$this->response = $this->getMockBuilder('\Magento\Framework\App\ResponseInterface')
45-
->disableOriginalConstructor()
46-
->setMethods(['representJson', 'setRedirect'])
47-
->getMockForAbstractClass();
4857
$this->url = $this->getMockBuilder('Magento\Framework\UrlInterface')
4958
->disableOriginalConstructor()
5059
->setMethods(['getBaseUrl'])
5160
->getMockForAbstractClass();
61+
$this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
62+
->disableOriginalConstructor()
63+
->getMock();
64+
$this->resultRedirectMock = $this->getMockBuilder('Magento\Backend\Model\View\Result\Redirect')
65+
->disableOriginalConstructor()
66+
->getMock();
67+
$this->resultJsonMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Json')
68+
->disableOriginalConstructor()
69+
->getMock();
70+
5271
$this->context = $this->getMockBuilder('Magento\Framework\App\Action\Context')
53-
->setMethods(['getRequest', 'getResponse', 'getUrl'])
5472
->disableOriginalConstructor()
5573
->getMock();
5674
$this->context->expects($this->atLeastOnce())
5775
->method('getRequest')
5876
->will($this->returnValue($this->request));
59-
$this->context->expects($this->atLeastOnce())
60-
->method('getResponse')
61-
->will($this->returnValue($this->response));
6277
$this->context->expects($this->any())
6378
->method('getUrl')
6479
->will($this->returnValue($this->url));
80+
$this->context->expects($this->any())
81+
->method('getResultFactory')
82+
->willReturn($this->resultFactoryMock);
83+
$this->resultFactoryMock->expects($this->any())
84+
->method('create')
85+
->willReturnMap(
86+
[
87+
[ResultFactory::TYPE_REDIRECT, [], $this->resultRedirectMock],
88+
[ResultFactory::TYPE_JSON, [], $this->resultJsonMock]
89+
]
90+
);
91+
6592
$this->objectManagerHelper = new ObjectManagerHelper($this);
6693
$this->controller = $this->objectManagerHelper->getObject(
6794
'Magento\Search\Controller\Ajax\Suggest',
@@ -95,23 +122,30 @@ public function testExecute()
95122
->method('getItems')
96123
->will($this->returnValue([$firstItemMock, $secondItemMock]));
97124

98-
$this->response->expects($this->once())
99-
->method('representJson');
100-
$this->controller->execute();
125+
$this->resultJsonMock->expects($this->once())
126+
->method('setData')
127+
->willReturnSelf();
128+
129+
$this->assertSame($this->resultJsonMock, $this->controller->execute());
101130
}
102131

103132
public function testExecuteEmptyQuery()
104133
{
105-
$searchString = "";
134+
$url = 'some url';
135+
$searchString = '';
106136

107137
$this->request->expects($this->once())
108138
->method('getParam')
109139
->with('q')
110140
->will($this->returnValue($searchString));
111141
$this->url->expects($this->once())
112-
->method('getBaseUrl');
113-
$this->response->expects($this->once())
114-
->method('setRedirect');
115-
$this->controller->execute();
142+
->method('getBaseUrl')
143+
->willReturn($url);
144+
$this->resultRedirectMock->expects($this->once())
145+
->method('setUrl')
146+
->with($url)
147+
->willReturnSelf();
148+
149+
$this->assertSame($this->resultRedirectMock, $this->controller->execute());
116150
}
117151
}

app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/MassDeleteTest.php

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
namespace Magento\Search\Test\Unit\Controller\Adminhtml\Term;
88

99
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
10+
use Magento\Framework\Controller\ResultFactory;
1011

1112
class MassDeleteTest extends \PHPUnit_Framework_TestCase
1213
{
@@ -28,27 +29,25 @@ class MassDeleteTest extends \PHPUnit_Framework_TestCase
2829
/** @var \Magento\Framework\View\Result\PageFactory|\PHPUnit_Framework_MockObject_MockObject */
2930
private $pageFactory;
3031

31-
/** @var \Magento\Backend\Model\View\Result\RedirectFactory|\PHPUnit_Framework_MockObject_MockObject */
32-
private $redirectFactory;
33-
34-
/** @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject */
35-
private $response;
36-
3732
/** @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject */
3833
private $request;
39-
/** @var \Magento\Backend\Model\View\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject */
40-
private $redirect;
34+
35+
/**
36+
* @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject
37+
*/
38+
private $resultFactoryMock;
39+
40+
/**
41+
* @var \Magento\Backend\Model\View\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
42+
*/
43+
private $resultRedirectMock;
4144

4245
protected function setUp()
4346
{
4447
$this->request = $this->getMockBuilder('\Magento\Framework\App\RequestInterface')
4548
->disableOriginalConstructor()
4649
->setMethods([])
4750
->getMockForAbstractClass();
48-
$this->response = $this->getMockBuilder('\Magento\Framework\App\ResponseInterface')
49-
->disableOriginalConstructor()
50-
->setMethods([])
51-
->getMockForAbstractClass();
5251
$this->objectManager = $this->getMockBuilder('\Magento\Framework\ObjectManagerInterface')
5352
->disableOriginalConstructor()
5453
->setMethods(['create'])
@@ -61,35 +60,31 @@ protected function setUp()
6160
->setMethods([])
6261
->disableOriginalConstructor()
6362
->getMock();
64-
$this->redirect = $this->getMockBuilder('Magento\Backend\Model\View\Result\Redirect')
65-
->setMethods(['setPath'])
63+
$this->resultRedirectMock = $this->getMockBuilder('Magento\Backend\Model\View\Result\Redirect')
6664
->disableOriginalConstructor()
6765
->getMock();
68-
$this->redirectFactory = $this->getMockBuilder('Magento\Backend\Model\View\Result\RedirectFactory')
69-
->setMethods(['create'])
66+
$this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
7067
->disableOriginalConstructor()
7168
->getMock();
72-
$this->redirectFactory->expects($this->any())
69+
$this->resultFactoryMock->expects($this->any())
7370
->method('create')
74-
->will($this->returnValue($this->redirect));
71+
->with(ResultFactory::TYPE_REDIRECT, [])
72+
->willReturn($this->resultRedirectMock);
7573
$this->context = $this->getMockBuilder('Magento\Backend\App\Action\Context')
7674
->disableOriginalConstructor()
7775
->getMock();
7876
$this->context->expects($this->atLeastOnce())
7977
->method('getRequest')
8078
->willReturn($this->request);
81-
$this->context->expects($this->atLeastOnce())
82-
->method('getResponse')
83-
->willReturn($this->response);
8479
$this->context->expects($this->any())
8580
->method('getObjectManager')
8681
->willReturn($this->objectManager);
8782
$this->context->expects($this->any())
8883
->method('getMessageManager')
8984
->willReturn($this->messageManager);
9085
$this->context->expects($this->any())
91-
->method('getResultRedirectFactory')
92-
->willReturn($this->redirectFactory);
86+
->method('getResultFactory')
87+
->willReturn($this->resultFactoryMock);
9388

9489
$this->objectManagerHelper = new ObjectManagerHelper($this);
9590
$this->controller = $this->objectManagerHelper->getObject(
@@ -114,13 +109,12 @@ public function testExecute()
114109
$this->messageManager->expects($this->once())
115110
->method('addSuccess')
116111
->will($this->returnSelf());
117-
$this->redirect->expects($this->once())
112+
$this->resultRedirectMock->expects($this->once())
118113
->method('setPath')
119114
->with('search/*/')
120-
->will($this->returnSelf());
115+
->willReturnSelf();
121116

122-
$result = $this->controller->execute();
123-
$this->assertSame($this->redirect, $result);
117+
$this->assertSame($this->resultRedirectMock, $this->controller->execute());
124118
}
125119

126120
/**

0 commit comments

Comments
 (0)