/** * @return void */ public function testExecuteException() { $invoiceId = 2; $message = 'Invoice canceling error'; $e = new \Exception($message); $this->requestMock->expects($this->once()) ->method('getParam') ->with('invoice_id') ->will($this->returnValue($invoiceId)); $invoiceMock = $this->getMockBuilder('Magento\Sales\Model\Order\Invoice') ->disableOriginalConstructor() ->setMethods([]) ->getMock(); $invoiceMock->expects($this->once()) ->method('cancel') ->will($this->throwException($e)); $this->messageManagerMock->expects($this->once()) ->method('addError') ->with($message); $invoiceMock->expects($this->once()) ->method('getId') ->will($this->returnValue($invoiceId)); $invoiceRepository = $this->getMockBuilder('Magento\Sales\Api\InvoiceRepositoryInterface') ->disableOriginalConstructor() ->getMock(); $invoiceRepository->expects($this->any()) ->method('get') ->willReturn($invoiceMock); $this->objectManagerMock->expects($this->once()) ->method('create') ->with('Magento\Sales\Api\InvoiceRepositoryInterface') ->willReturn($invoiceRepository); $resultRedirect = $this->getMockBuilder('Magento\Backend\Model\View\Result\Redirect') ->disableOriginalConstructor() ->setMethods([]) ->getMock(); $resultRedirect->expects($this->once())->method('setPath')->with('sales/*/view', ['invoice_id' => $invoiceId]); $this->resultRedirectFactoryMock->expects($this->once()) ->method('create') ->will($this->returnValue($resultRedirect)); $this->assertSame($resultRedirect, $this->controller->executeInternal()); }