public function testSaveWithException() { $scope = 'sadfa'; $scopeId = 0; $this->redirectFactory->expects($this->once())->method('create')->willReturn($this->redirect); $this->request->expects($this->exactly(2))->method('getParam')->withConsecutive(['scope'], ['scope_id'])->willReturnOnConsecutiveCalls($scope, $scopeId); $this->request->expects($this->once())->method('getParams')->willReturn(['header_default_title' => 'Default title']); $this->request->expects($this->once())->method('getFiles')->willReturn($this->fileParams); $this->fileParams->expects($this->once())->method('toArray')->willReturn(['header_logo' => ['tmp_name' => '', 'error' => 4]]); $this->configFactory->expects($this->once())->method('create')->with($scope, $scopeId, ['header_default_title' => 'Default title'])->willReturn($this->designConfig); $exception = new \Exception(__('Exception message')); $this->designConfigRepository->expects($this->once())->method('save')->with($this->designConfig)->willThrowException($exception); $this->messageManager->expects($this->once())->method('addException')->with($exception, 'Something went wrong while saving this configuration: Exception message'); $this->dataPersistor->expects($this->once())->method('set')->with('theme_design_config', ['header_default_title' => 'Default title']); $this->redirect->expects($this->once())->method('setPath')->with('theme/design_config/edit', ['scope' => $scope, 'scope_id' => $scopeId]); $this->assertSame($this->redirect, $this->controller->execute()); }