/** * Save file to storage * * @param array $result * @return $this */ protected function _afterSave($result) { if (empty($result['path']) || empty($result['file'])) { return $this; } if ($this->_coreFileStorage->isInternalStorage() || $this->skipDbProcessing()) { return $this; } $this->_result['file'] = $this->_coreFileStorageDb->saveUploadedFile($result); return $this; }
/** * @param array $result * @param string $expected * @param int $storage * @param int $callNum * @param int $callDirWrite * @dataProvider saveUploadedFileDataProvider */ public function testSaveUploadedFile($result, $expected, $expectedFullPath, $storage, $callNum, $callDirWrite = 0) { $this->configMock->expects($this->once())->method('getValue')->with(\Magento\MediaStorage\Model\File\Storage::XML_PATH_STORAGE_MEDIA, 'default')->will($this->returnValue($storage)); $dbModelMock = $this->getMockBuilder('Magento\\MediaStorage\\Model\\File\\Storage\\Database')->disableOriginalConstructor()->getMock(); $this->dbStorageFactoryMock->expects($this->exactly($callNum))->method('create')->will($this->returnValue($dbModelMock)); $dirWriteMock = $this->getMockBuilder('Magento\\Framework\\Filesystem\\Directory\\WriteInterface')->disableOriginalConstructor()->getMock(); $this->filesystemMock->expects($this->exactly($callDirWrite))->method('getDirectoryWrite')->with(DirectoryList::ROOT)->will($this->returnValue($dirWriteMock)); $dirWriteMock->expects($this->exactly($callDirWrite))->method('renameFile'); $map = [['directory/filename.ext', true], ['directory/filename_1.ext', true], ['directory/filename_2.ext', false]]; $dbModelMock->expects($this->any())->method('fileExists')->will($this->returnValueMap($map)); $dbModelMock->expects($this->exactly($callNum))->method('saveFile')->with($expectedFullPath); $this->assertEquals($expected, $this->helper->saveUploadedFile($result)); }