/** * @param array $indexerIds * @param \Exception $exception * @param array $expectsExceptionValues * @dataProvider executeDataProvider */ public function testExecute($indexerIds, $exception, $expectsExceptionValues) { $this->model = new \Magento\Indexer\Controller\Adminhtml\Indexer\MassOnTheFly($this->contextMock); $this->request->expects($this->any())->method('getParam')->with('indexer_ids')->will($this->returnValue($indexerIds)); if (!is_array($indexerIds)) { $this->messageManager->expects($this->once())->method('addError')->with(__('Please select indexers.'))->will($this->returnValue(1)); } else { $this->objectManager->expects($this->any())->method('get')->with('Magento\\Framework\\Indexer\\IndexerRegistry')->will($this->returnValue($this->indexReg)); $indexerInterface = $this->getMockForAbstractClass('Magento\\Framework\\Indexer\\IndexerInterface', ['setScheduled'], '', false); $this->indexReg->expects($this->any())->method('get')->with(1)->will($this->returnValue($indexerInterface)); if ($exception !== null) { $indexerInterface->expects($this->any())->method('setScheduled')->with(false)->will($this->throwException($exception)); } else { $indexerInterface->expects($this->any())->method('setScheduled')->with(false)->will($this->returnValue(1)); } $this->messageManager->expects($this->any())->method('addSuccess')->will($this->returnValue(1)); if ($exception !== null) { $this->messageManager->expects($this->exactly($expectsExceptionValues[2]))->method('addError')->with($exception->getMessage()); $this->messageManager->expects($this->exactly($expectsExceptionValues[1]))->method('addException')->with($exception, "We couldn't change indexer(s)' mode because of an error."); } } $this->helper->expects($this->any())->method("getUrl")->willReturn("magento.com"); $this->response->expects($this->any())->method("setRedirect")->willReturn(1); $this->model->execute(); }
/** * {@inheritdoc} */ public function dispatch(\Magento\Framework\App\RequestInterface $request) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'dispatch'); if (!$pluginInfo) { return parent::dispatch($request); } else { return $this->___callPlugins('dispatch', func_get_args(), $pluginInfo); } }
/** * {@inheritdoc} */ public function getResponse() { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getResponse'); if (!$pluginInfo) { return parent::getResponse(); } else { return $this->___callPlugins('getResponse', func_get_args(), $pluginInfo); } }