public function testMoveFileName() { $fileName = 'test_uploader_file'; $expectedRelativeFilePath = $this->uploader->getTmpDir() . '/' . $fileName; $this->directoryMock->expects($this->any())->method('getRelativePath')->with($expectedRelativeFilePath); $uploaderMock = $this->getMockBuilder('\\Magento\\CatalogImportExport\\Model\\Import\\Uploader')->setConstructorArgs([$this->coreFileStorageDb, $this->coreFileStorage, $this->imageFactory, $this->validator, $this->filesystem, $this->readFactory])->setMethods(['_setUploadFile', 'save', 'getTmpDir'])->getMock(); //Check invoking of getTmpDir(), _setUploadFile(), save() methods. $uploaderMock->expects($this->once())->method('getTmpDir')->will($this->returnValue('')); $uploaderMock->expects($this->once())->method('_setUploadFile')->will($this->returnSelf()); $uploaderMock->expects($this->once())->method('save')->will($this->returnValue(['name' => null])); $uploaderMock->move($fileName); }
/** * Returns an object for upload a media files * * @param string $type * @param array $parameters * @return \Magento\CatalogImportExport\Model\Import\Uploader * @throws \Magento\Framework\Exception\LocalizedException */ public function getUploader($type, $parameters) { $dirConfig = DirectoryList::getDefaultConfig(); $dirAddon = $dirConfig[DirectoryList::MEDIA][DirectoryList::PATH]; $DS = DIRECTORY_SEPARATOR; if (!empty($parameters[\Magento\ImportExport\Model\Import::FIELD_NAME_IMG_FILE_DIR])) { $tmpPath = $parameters[\Magento\ImportExport\Model\Import::FIELD_NAME_IMG_FILE_DIR]; } else { $tmpPath = $dirAddon . $DS . $this->mediaDirectory->getRelativePath('import'); } if (!$this->fileUploader->setTmpDir($tmpPath)) { throw new \Magento\Framework\Exception\LocalizedException(__('File directory \'%1\' is not readable.', $tmpPath)); } $destinationDir = "downloadable/files/" . $type; $destinationPath = $dirAddon . $DS . $this->mediaDirectory->getRelativePath($destinationDir); $this->mediaDirectory->create($destinationDir); if (!$this->fileUploader->setDestDir($destinationPath)) { throw new \Magento\Framework\Exception\LocalizedException(__('File directory \'%1\' is not writable.', $destinationPath)); } return $this->fileUploader; }
/** * @dataProvider dataForUploaderDir */ public function testSetUploaderDirFalse($newSku, $bunch, $allowImport) { $this->connectionMock->expects($this->any())->method('fetchAll')->with($this->select)->willReturnOnConsecutiveCalls([['attribute_set_name' => '1', 'attribute_id' => '1'], ['attribute_set_name' => '2', 'attribute_id' => '2']]); $this->downloadableModelMock = $this->objectManagerHelper->getObject('\\Magento\\DownloadableImportExport\\Model\\Import\\Product\\Type\\Downloadable', ['attrSetColFac' => $this->attrSetColFacMock, 'prodAttrColFac' => $this->prodAttrColFacMock, 'resource' => $this->resourceMock, 'params' => $this->paramsArray, 'uploaderHelper' => $this->uploaderHelper, 'downloadableHelper' => $this->downloadableHelper]); $this->entityModelMock->expects($this->once())->method('getNewSku')->will($this->returnValue($newSku)); $this->entityModelMock->expects($this->at(1))->method('getNextBunch')->will($this->returnValue($bunch)); $this->entityModelMock->expects($this->at(2))->method('getNextBunch')->will($this->returnValue(null)); $this->entityModelMock->expects($this->any())->method('isRowAllowedToImport')->willReturn($allowImport); $exception = new \Magento\Framework\Exception\LocalizedException(new \Magento\Framework\Phrase('Error')); $this->setExpectedException('\\Magento\\Framework\\Exception\\LocalizedException'); $this->setExpectedException('\\Exception'); $this->uploaderMock->expects($this->any())->method('move')->will($this->throwException($exception)); $this->downloadableModelMock->saveData(); }
/** * Returns an object for upload a media files * * @return \Magento\CatalogImportExport\Model\Import\Uploader * @throws \Magento\Framework\Exception\LocalizedException */ protected function _getUploader() { if (is_null($this->_fileUploader)) { $this->_fileUploader = $this->_uploaderFactory->create(); $this->_fileUploader->init(); $dirConfig = DirectoryList::getDefaultConfig(); $dirAddon = $dirConfig[DirectoryList::MEDIA][DirectoryList::PATH]; $DS = DIRECTORY_SEPARATOR; if (!empty($this->_parameters[\Magento\ImportExport\Model\Import::FIELD_NAME_IMG_FILE_DIR])) { $tmpPath = $this->_parameters[\Magento\ImportExport\Model\Import::FIELD_NAME_IMG_FILE_DIR]; } else { $tmpPath = $dirAddon . $DS . $this->_mediaDirectory->getRelativePath('import'); } if (!$this->_fileUploader->setTmpDir($tmpPath)) { throw new \Magento\Framework\Exception\LocalizedException(__('File directory \'%1\' is not readable.', $tmpPath)); } $destinationDir = "catalog/product"; $destinationPath = $dirAddon . $DS . $this->_mediaDirectory->getRelativePath($destinationDir); $this->_mediaDirectory->create($destinationPath); if (!$this->_fileUploader->setDestDir($destinationPath)) { throw new \Magento\Framework\Exception\LocalizedException(__('File directory \'%1\' is not writable.', $destinationPath)); } } return $this->_fileUploader; }
/** * Returns an object for upload a media files * * @return \Magento\CatalogImportExport\Model\Import\Uploader * @throws \Magento\Framework\Model\Exception */ protected function _getUploader() { if (is_null($this->_fileUploader)) { $this->_fileUploader = $this->_uploaderFactory->create(); $this->_fileUploader->init(); $tmpPath = $this->_mediaDirectory->getAbsolutePath('import'); if (!$this->_fileUploader->setTmpDir($tmpPath)) { throw new \Magento\Framework\Model\Exception(sprintf("File directory '%s' is not readable.", $tmpPath)); } $destinationDir = "catalog/product"; $destinationPath = $this->_mediaDirectory->getAbsolutePath($destinationDir); $this->_mediaDirectory->create($destinationDir); if (!$this->_fileUploader->setDestDir($destinationPath)) { throw new \Magento\Framework\Model\Exception(sprintf("File directory '%s' is not writable.", $destinationPath)); } } return $this->_fileUploader; }