@@ -284,9 +284,11 @@ protected function setUp()
284
284
->getMock ();
285
285
$ this ->storeResolver =
286
286
$ this ->getMockBuilder (\Magento \CatalogImportExport \Model \Import \Product \StoreResolver::class)
287
- ->setMethods ([
288
- 'getStoreCodeToId ' ,
289
- ])
287
+ ->setMethods (
288
+ [
289
+ 'getStoreCodeToId ' ,
290
+ ]
291
+ )
290
292
->disableOriginalConstructor ()
291
293
->getMock ();
292
294
$ this ->skuProcessor =
@@ -410,7 +412,7 @@ protected function _objectConstructor()
410
412
$ this ->_filesystem ->expects ($ this ->once ())
411
413
->method ('getDirectoryWrite ' )
412
414
->with (DirectoryList::ROOT )
413
- ->will ($ this ->returnValue ( self :: MEDIA_DIRECTORY ) );
415
+ ->willReturn ($ this ->_mediaDirectory );
414
416
415
417
$ this ->validator ->expects ($ this ->any ())->method ('init ' );
416
418
return $ this ;
@@ -596,9 +598,13 @@ public function testGetMultipleValueSeparatorDefault()
596
598
public function testGetMultipleValueSeparatorFromParameters ()
597
599
{
598
600
$ expectedSeparator = 'value ' ;
599
- $ this ->setPropertyValue ($ this ->importProduct , '_parameters ' , [
600
- \Magento \ImportExport \Model \Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR => $ expectedSeparator ,
601
- ]);
601
+ $ this ->setPropertyValue (
602
+ $ this ->importProduct ,
603
+ '_parameters ' ,
604
+ [
605
+ \Magento \ImportExport \Model \Import::FIELD_FIELD_MULTIPLE_VALUE_SEPARATOR => $ expectedSeparator ,
606
+ ]
607
+ );
602
608
603
609
$ this ->assertEquals (
604
610
$ expectedSeparator ,
@@ -618,9 +624,13 @@ public function testGetEmptyAttributeValueConstantDefault()
618
624
public function testGetEmptyAttributeValueConstantFromParameters ()
619
625
{
620
626
$ expectedSeparator = '__EMPTY__VALUE__TEST__ ' ;
621
- $ this ->setPropertyValue ($ this ->importProduct , '_parameters ' , [
622
- \Magento \ImportExport \Model \Import::FIELD_EMPTY_ATTRIBUTE_VALUE_CONSTANT => $ expectedSeparator ,
623
- ]);
627
+ $ this ->setPropertyValue (
628
+ $ this ->importProduct ,
629
+ '_parameters ' ,
630
+ [
631
+ \Magento \ImportExport \Model \Import::FIELD_EMPTY_ATTRIBUTE_VALUE_CONSTANT => $ expectedSeparator ,
632
+ ]
633
+ );
624
634
625
635
$ this ->assertEquals (
626
636
$ expectedSeparator ,
@@ -632,9 +642,12 @@ public function testDeleteProductsForReplacement()
632
642
{
633
643
$ importProduct = $ this ->getMockBuilder (Product::class)
634
644
->disableOriginalConstructor ()
635
- ->setMethods ([
636
- 'setParameters ' , '_deleteProducts '
637
- ])
645
+ ->setMethods (
646
+ [
647
+ 'setParameters ' ,
648
+ '_deleteProducts '
649
+ ]
650
+ )
638
651
->getMock ();
639
652
640
653
$ importProduct ->expects ($ this ->once ())->method ('setParameters ' )->with (
@@ -764,9 +777,13 @@ public function testGetProductWebsites()
764
777
'key 3 ' => 'val ' ,
765
778
];
766
779
$ expectedResult = array_keys ($ productValue );
767
- $ this ->setPropertyValue ($ this ->importProduct , 'websitesCache ' , [
768
- $ productSku => $ productValue
769
- ]);
780
+ $ this ->setPropertyValue (
781
+ $ this ->importProduct ,
782
+ 'websitesCache ' ,
783
+ [
784
+ $ productSku => $ productValue
785
+ ]
786
+ );
770
787
771
788
$ actualResult = $ this ->importProduct ->getProductWebsites ($ productSku );
772
789
@@ -785,9 +802,13 @@ public function testGetProductCategories()
785
802
'key 3 ' => 'val ' ,
786
803
];
787
804
$ expectedResult = array_keys ($ productValue );
788
- $ this ->setPropertyValue ($ this ->importProduct , 'categoriesCache ' , [
789
- $ productSku => $ productValue
790
- ]);
805
+ $ this ->setPropertyValue (
806
+ $ this ->importProduct ,
807
+ 'categoriesCache ' ,
808
+ [
809
+ $ productSku => $ productValue
810
+ ]
811
+ );
791
812
792
813
$ actualResult = $ this ->importProduct ->getProductCategories ($ productSku );
793
814
@@ -1112,9 +1133,13 @@ public function testValidateRowSetAttributeSetCodeIntoRowData()
1112
1133
->disableOriginalConstructor ()
1113
1134
->getMock ();
1114
1135
$ productType ->expects ($ this ->once ())->method ('isRowValid ' )->with ($ expectedRowData );
1115
- $ this ->setPropertyValue ($ importProduct , '_productTypeModels ' , [
1116
- $ newSku ['type_id ' ] => $ productType
1117
- ]);
1136
+ $ this ->setPropertyValue (
1137
+ $ importProduct ,
1138
+ '_productTypeModels ' ,
1139
+ [
1140
+ $ newSku ['type_id ' ] => $ productType
1141
+ ]
1142
+ );
1118
1143
1119
1144
//suppress option validation
1120
1145
$ this ->_rewriteGetOptionEntityInImportProduct ($ importProduct );
@@ -1229,6 +1254,56 @@ public function testParseAttributesWithWrappedValuesWillReturnsLowercasedAttribu
1229
1254
$ this ->assertArrayNotHasKey ('PARAM2 ' , $ attributes );
1230
1255
}
1231
1256
1257
+ /**
1258
+ * @param bool $isRead
1259
+ * @param bool $isWrite
1260
+ * @param string $message
1261
+ * @dataProvider fillUploaderObjectDataProvider
1262
+ */
1263
+ public function testFillUploaderObject ($ isRead , $ isWrite , $ message )
1264
+ {
1265
+ $ fileUploaderMock = $ this
1266
+ ->getMockBuilder (\Magento \CatalogImportExport \Model \Import \Uploader::class)
1267
+ ->disableOriginalConstructor ()
1268
+ ->getMock ();
1269
+
1270
+ $ fileUploaderMock
1271
+ ->method ('setTmpDir ' )
1272
+ ->with ('pub/media/import ' )
1273
+ ->willReturn ($ isRead );
1274
+
1275
+ $ fileUploaderMock
1276
+ ->method ('setDestDir ' )
1277
+ ->with ('pub/media/catalog/product ' )
1278
+ ->willReturn ($ isWrite );
1279
+
1280
+ $ this ->_mediaDirectory
1281
+ ->method ('getRelativePath ' )
1282
+ ->willReturnMap (
1283
+ [
1284
+ ['import ' , 'import ' ],
1285
+ ['catalog/product ' , 'catalog/product ' ],
1286
+ ]
1287
+ );
1288
+
1289
+ $ this ->_mediaDirectory
1290
+ ->method ('create ' )
1291
+ ->with ('pub/media/catalog/product ' );
1292
+
1293
+ $ this ->_uploaderFactory
1294
+ ->expects ($ this ->once ())
1295
+ ->method ('create ' )
1296
+ ->willReturn ($ fileUploaderMock );
1297
+
1298
+ try {
1299
+ $ this ->importProduct ->getUploader ();
1300
+ $ this ->assertNotNull ($ this ->getPropertyValue ($ this ->importProduct , '_fileUploader ' ));
1301
+ } catch (\Magento \Framework \Exception \LocalizedException $ e ) {
1302
+ $ this ->assertNull ($ this ->getPropertyValue ($ this ->importProduct , '_fileUploader ' ));
1303
+ $ this ->assertEquals ($ message , $ e ->getMessage ());
1304
+ }
1305
+ }
1306
+
1232
1307
/**
1233
1308
* Test that errors occurred during importing images are logged.
1234
1309
*
@@ -1275,6 +1350,20 @@ function ($name) use ($throwException, $exception) {
1275
1350
);
1276
1351
}
1277
1352
1353
+ /**
1354
+ * Data provider for testFillUploaderObject.
1355
+ *
1356
+ * @return array
1357
+ */
1358
+ public function fillUploaderObjectDataProvider ()
1359
+ {
1360
+ return [
1361
+ [false , true , 'File directory \'pub/media/import \' is not readable. ' ],
1362
+ [true , false , 'File directory \'pub/media/catalog/product \' is not writable. ' ],
1363
+ [true , true , '' ],
1364
+ ];
1365
+ }
1366
+
1278
1367
/**
1279
1368
* Data provider for testUploadMediaFiles.
1280
1369
*
0 commit comments