99use Magento \Framework \App \Bootstrap ;
1010use Magento \Framework \App \Filesystem \DirectoryList ;
1111use Magento \ImportExport \Model \Export \Adapter \AbstractAdapter ;
12+ use Magento \Framework \Filesystem \Driver \File ;
1213use Magento \Store \Model \Store ;
1314use Magento \TestFramework \Annotation \DataFixture ;
1415use Magento \TestFramework \Workaround \Override \Fixture \Resolver ;
@@ -66,11 +67,6 @@ abstract class AbstractProductExportImportTestCase extends \PHPUnit\Framework\Te
6667 'tax_class_id ' ,
6768 ];
6869
69- /**
70- * @var AbstractAdapter
71- */
72- private $ writer ;
73-
7470 /**
7571 * @var string
7672 */
@@ -97,7 +93,7 @@ protected function tearDown(): void
9793 $ this ->executeFixtures ($ this ->fixtures , true );
9894
9995 if ($ this ->csvFile !== null ) {
100- $ directoryWrite = $ this ->fileSystem ->getDirectoryWrite (DirectoryList::VAR_DIR );
96+ $ directoryWrite = $ this ->fileSystem ->getDirectoryWrite (DirectoryList::VAR_IMPORT_EXPORT );
10197 $ directoryWrite ->delete ($ this ->csvFile );
10298 }
10399 }
@@ -416,12 +412,13 @@ private function exportProducts(Product $exportProduct = null)
416412 $ exportProduct = $ exportProduct ?: $ this ->objectManager ->create (
417413 Product::class
418414 );
419- $ this -> writer = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()->create (
415+ $ writer = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()->create (
420416 \Magento \ImportExport \Model \Export \Adapter \Csv::class,
421417 ['fileSystem ' => $ this ->fileSystem , 'destination ' => $ csvfile ]
422418 );
423- $ exportProduct ->setWriter ($ this -> writer );
419+ $ exportProduct ->setWriter ($ writer );
424420 $ this ->assertNotEmpty ($ exportProduct ->export ());
421+ $ writer ->getFileHandler ()->close ();
425422
426423 return $ csvfile ;
427424 }
@@ -451,19 +448,21 @@ private function importProducts(string $csvfile, string $behavior): void
451448 $ appParams = \Magento \TestFramework \Helper \Bootstrap::getInstance ()->getBootstrap ()
452449 ->getApplication ()
453450 ->getInitParams ()[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS ];
454- $ uploader = $ importModel ->getUploader ();
455- $ rootDirectory = $ this ->fileSystem ->getDirectoryWrite (DirectoryList::ROOT );
456- $ destDir = $ rootDirectory ->getRelativePath (
457- $ appParams [DirectoryList::MEDIA ][DirectoryList::PATH ] . '/catalog/product '
458- );
459- $ tmpDir = $ rootDirectory ->getRelativePath (
460- $ appParams [DirectoryList::MEDIA ][DirectoryList::PATH ] . '/import '
461- );
451+ $ mediaDirectory = $ this ->fileSystem ->getDirectoryWrite (DirectoryList::MEDIA );
462452
463- $ rootDirectory ->create ($ destDir );
464- $ rootDirectory ->create ($ tmpDir );
465- $ this ->assertTrue ($ uploader ->setDestDir ($ destDir ));
466- $ this ->assertTrue ($ uploader ->setTmpDir ($ tmpDir ));
453+ $ mediaDir = $ mediaDirectory ->getDriver () instanceof File ?
454+ $ appParams [DirectoryList::MEDIA ][DirectoryList::PATH ] : 'media ' ;
455+
456+ $ mediaDirectory ->create ('catalog/product ' );
457+ $ mediaDirectory ->create ('import ' );
458+ $ importModel ->setParameters (
459+ [
460+ \Magento \ImportExport \Model \Import::FIELD_NAME_IMG_FILE_DIR => $ mediaDir . '/import '
461+ ]
462+ );
463+ $ uploader = $ importModel ->getUploader ();
464+ $ this ->assertTrue ($ uploader ->setDestDir ($ mediaDir . '/catalog/product ' ));
465+ $ this ->assertTrue ($ uploader ->setTmpDir ($ mediaDir . '/import ' ));
467466
468467 $ errors = $ importModel ->setParameters (
469468 [
0 commit comments