public function testTryToSaveInvalidDataShouldFailWithErrors() { $validatorClass = 'Magento\\MediaStorage\\Model\\File\\Validator\\AvailablePath'; $helperClass = 'Magento\\Sitemap\\Helper\\Data'; $validPaths = []; $messages = ['message1', 'message2']; $sessionClass = 'Magento\\Backend\\Model\\Session'; $data = ['sitemap_filename' => 'sitemap_filename', 'sitemap_path' => '/sitemap_path']; $siteMapId = 1; $this->requestMock->expects($this->once())->method('getPostValue')->willReturn($data); $this->requestMock->expects($this->once())->method('getParam')->with('sitemap_id')->willReturn($siteMapId); $validator = $this->getMock($validatorClass, [], [], '', false); $validator->expects($this->once())->method('setPaths')->with($validPaths)->willReturnSelf(); $validator->expects($this->once())->method('isValid')->with('/sitemap_path/sitemap_filename')->willReturn(false); $validator->expects($this->once())->method('getMessages')->willReturn($messages); $helper = $this->getMock($helperClass, [], [], '', false); $helper->expects($this->once())->method('getValidPaths')->willReturn($validPaths); $session = $this->getMock($sessionClass, ['setFormData'], [], '', false); $session->expects($this->once())->method('setFormData')->with($data)->willReturnSelf(); $this->objectManagerMock->expects($this->once())->method('create')->with($validatorClass)->willReturn($validator); $this->objectManagerMock->expects($this->any())->method('get')->willReturnMap([[$helperClass, $helper], [$sessionClass, $session]]); $this->messageManagerMock->expects($this->at(0))->method('addError')->withConsecutive([$messages[0]], [$messages[1]])->willReturnSelf(); $this->resultRedirectMock->expects($this->once())->method('setPath')->with('adminhtml/*/edit', ['sitemap_id' => $siteMapId])->willReturnSelf(); $this->assertSame($this->resultRedirectMock, $this->saveController->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); } }