101 $this->creditmemoMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Creditmemo::class)
102 ->disableOriginalConstructor()
103 ->setMethods([
'getInvoice',
'getOrder',
'cancel',
'getId',
'void',
'__wakeup'])
105 $titleMock = $this->getMockBuilder(\
Magento\Framework\
App\Action\Title::class)
106 ->disableOriginalConstructor()
108 $this->requestMock = $this->getMockBuilder(\
Magento\Framework\
App\Request\Http::class)
109 ->disableOriginalConstructor()
111 $this->responseMock = $this->getMockBuilder(\
Magento\Framework\
App\
Response\Http::class)
112 ->disableOriginalConstructor()
114 $this->objectManagerMock = $this->createMock(\
Magento\Framework\ObjectManagerInterface::class);
115 $this->helperMock = $this->getMockBuilder(\
Magento\Backend\Helper\Data::class)
116 ->disableOriginalConstructor()
118 $this->messageManagerMock = $this->getMockBuilder(\
Magento\Framework\Message\Manager::class)
119 ->disableOriginalConstructor()
121 $this->sessionMock = $this->getMockBuilder(\
Magento\Backend\Model\Session::class)
122 ->disableOriginalConstructor()
124 $this->actionFlagMock = $this->getMockBuilder(\
Magento\Framework\
App\ActionFlag::class)
125 ->disableOriginalConstructor()
127 $this->contextMock = $this->getMockBuilder(\
Magento\Backend\
App\Action\Context::class)
138 'getResultRedirectFactory' 141 ->disableOriginalConstructor()
143 $this->loaderMock = $this->getMockBuilder(\
Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader::class)
144 ->disableOriginalConstructor()
146 $this->senderMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\
Email\Sender\CreditmemoSender::class)
147 ->disableOriginalConstructor()
149 $this->resultRedirectFactoryMock = $this->getMockBuilder(
150 \
Magento\Backend\Model\View\Result\RedirectFactory::class
151 )->disableOriginalConstructor()
152 ->setMethods([
'create'])
154 $this->resultForwardFactoryMock = $this->getMockBuilder(
155 \
Magento\Backend\Model\View\Result\ForwardFactory::class
156 )->disableOriginalConstructor()
157 ->setMethods([
'create'])
159 $this->resultRedirectMock = $this->getMockBuilder(\
Magento\Backend\Model\View\Result\Redirect::class)
160 ->disableOriginalConstructor()
162 $this->resultForwardMock = $this->getMockBuilder(\
Magento\Backend\Model\View\Result\Forward::class)
163 ->disableOriginalConstructor()
166 $this->contextMock->expects($this->any())
167 ->method(
'getRequest')
168 ->willReturn($this->requestMock);
169 $this->contextMock->expects($this->any())
170 ->method(
'getResponse')
171 ->willReturn($this->responseMock);
172 $this->contextMock->expects($this->any())
173 ->method(
'getActionFlag')
174 ->willReturn($this->actionFlagMock);
175 $this->contextMock->expects($this->any())
176 ->method(
'getHelper')
177 ->willReturn($this->helperMock);
178 $this->contextMock->expects($this->any())
179 ->method(
'getSession')
180 ->willReturn($this->sessionMock);
181 $this->contextMock->expects($this->any())
182 ->method(
'getObjectManager')
183 ->willReturn($this->objectManagerMock);
184 $this->contextMock->expects($this->any())
186 ->willReturn($titleMock);
187 $this->contextMock->expects($this->any())
188 ->method(
'getMessageManager')
189 ->willReturn($this->messageManagerMock);
190 $this->contextMock->expects($this->any())
191 ->method(
'getResultRedirectFactory')
192 ->willReturn($this->resultRedirectFactoryMock);
194 $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
196 \
Magento\Sales\Controller\Adminhtml\Order\Creditmemo\VoidAction::class,
198 'context' => $this->contextMock,
199 'creditmemoLoader' => $this->loaderMock,
200 'resultForwardFactory' => $this->resultForwardFactoryMock
210 $this->requestMock->expects($this->any())
212 ->withAnyParameters()
213 ->willReturnArgument(0);
214 $this->loaderMock->expects($this->once())
217 $this->resultForwardFactoryMock->expects($this->once())
219 ->willReturn($this->resultForwardMock);
220 $this->resultForwardMock->expects($this->once())
225 $this->assertInstanceOf(
226 \
Magento\Backend\Model\View\Result\Forward::class,
227 $this->controller->execute()
238 $e = new \Magento\Framework\Exception\LocalizedException(
__(
$message));
240 $this->requestMock->expects($this->any())
242 ->withAnyParameters()
243 ->willReturnArgument(0);
244 $this->creditmemoMock->expects($this->once())
246 ->willThrowException($e);
247 $this->loaderMock->expects($this->once())
249 ->willReturn($this->creditmemoMock);
250 $this->resultRedirectFactoryMock->expects($this->once())
252 ->willReturn($this->resultRedirectMock);
253 $this->creditmemoMock->expects($this->atLeastOnce())
256 $this->resultRedirectMock->expects($this->once())
258 ->with(
'sales/*/view', [
'creditmemo_id' =>
$id])
261 $this->assertInstanceOf(
262 \
Magento\Backend\Model\View\Result\Redirect::class,
263 $this->controller->execute()
276 $this->requestMock->expects($this->any())
278 ->withAnyParameters()
279 ->willReturnArgument(0);
280 $this->creditmemoMock->expects($this->once())
282 ->willThrowException($e);
283 $this->loaderMock->expects($this->once())
285 ->willReturn($this->creditmemoMock);
286 $this->resultRedirectFactoryMock->expects($this->once())
288 ->willReturn($this->resultRedirectMock);
289 $this->creditmemoMock->expects($this->atLeastOnce())
292 $this->resultRedirectMock->expects($this->once())
294 ->with(
'sales/*/view', [
'creditmemo_id' =>
$id])
297 $this->assertInstanceOf(
298 \
Magento\Backend\Model\View\Result\Redirect::class,
299 $this->controller->execute()
310 $transactionMock = $this->getMockBuilder(\
Magento\Framework\DB\Transaction::class)
311 ->disableOriginalConstructor()
313 $orderMock = $this->getMockBuilder(\
Magento\Sales\Model\Order::class)
314 ->disableOriginalConstructor()
316 $invoiceMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Invoice::class)
317 ->disableOriginalConstructor()
320 $this->requestMock->expects($this->any())
322 ->withAnyParameters()
323 ->willReturnArgument(0);
324 $this->loaderMock->expects($this->once())
326 ->willReturn($this->creditmemoMock);
327 $this->objectManagerMock->expects($this->once())
329 ->with(\
Magento\Framework\DB\Transaction::class)
330 ->willReturn($transactionMock);
331 $this->creditmemoMock->expects($this->any())
333 ->willReturn($orderMock);
334 $this->creditmemoMock->expects($this->any())
335 ->method(
'getInvoice')
336 ->willReturn($invoiceMock);
337 $this->messageManagerMock->expects($this->once())
338 ->method(
'addSuccessMessage')
339 ->with(
'You voided the credit memo.');
340 $this->resultRedirectFactoryMock->expects($this->once())
342 ->willReturn($this->resultRedirectMock);
343 $this->creditmemoMock->expects($this->atLeastOnce())
346 $this->resultRedirectMock->expects($this->once())
348 ->with(
'sales/*/view', [
'creditmemo_id' =>
$id])
351 $this->assertInstanceOf(
352 \
Magento\Backend\Model\View\Result\Redirect::class,
353 $this->controller->execute()
$resultRedirectFactoryMock
$resultForwardFactoryMock
testExecuteModelException()
testExecuteNoCreditmemo()