1616use Magento \ImportExport \Model \Source \Upload ;
1717use Magento \MediaStorage \Model \File \Uploader ;
1818use Magento \MediaStorage \Model \File \UploaderFactory ;
19- use PHPUnit \Framework \MockObject \MockObject ;
2019use PHPUnit \Framework \TestCase ;
2120
2221class UploadTest extends TestCase
2322{
2423 /**
25- * @var FileTransferFactory|MockObject
24+ * Directory paths sample
25+ */
26+ const DIRECTORY_ABSOLUTE_PATH = 'dasdad ' ;
27+ /**
28+ * Allowed Extensions to Upload a file
29+ */
30+ const ALLOWED_EXTENSIONS = ['csv ' , 'zip ' ];
31+ /**
32+ * The name to use when saving the uploaded file
33+ */
34+ const SAVED_FILE_NAME = 'testString ' ;
35+ /**
36+ * The ID of the file being imported.
2637 */
27- protected $ httpFactoryMock ;
38+ const IMPORT_FILE_ID = 'import_file ' ;
39+
2840 /**
2941 * @var Upload
3042 */
3143 private Upload $ upload ;
44+
3245 /**
33- * @var DataHelper |MockObject
46+ * @var FileTransferFactory |MockObject
3447 */
35- private $ importExportDataMock ;
48+ protected FileTransferFactory | MockObject $ httpFactoryMock ;
3649
3750 /**
38- * @var UploaderFactory| MockObject
51+ * @var DataHelper|\PHPUnit\Framework\MockObject\ MockObject
3952 */
40- private $ uploaderFactoryMock ;
53+ private DataHelper | MockObject $ importExportDataMock ;
4154
4255 /**
43- * @var Random| MockObject
56+ * @var UploaderFactory|\PHPUnit\Framework\MockObject\ MockObject
4457 */
45- private $ randomMock ;
58+ private UploaderFactory | MockObject $ uploaderFactoryMock ;
4659
4760 /**
48- * @var MockObject| MockObject
61+ * @var Random|\PHPUnit\Framework\MockObject\ MockObject
4962 */
50- private MockObject $ filesystemMock ;
63+ private Random |MockObject $ randomMock ;
64+
65+ /**
66+ * @var Filesystem|MockObject
67+ */
68+ protected Filesystem |MockObject $ filesystemMock ;
5169
5270 /**
5371 * @var Http|MockObject
5472 */
55- private Http $ adapterMock ;
73+ private Http | MockObject $ adapterMock ;
5674
5775 /**
5876 * @var Uploader
5977 */
6078 private Uploader $ uploaderMock ;
61- /**
62- * Test importSource() method
63- */
64- public function testUploadSource (): void
65- {
66- $ this ->adapterMock
67- ->method ('isValid ' )
68- ->willReturn (true );
69- $ this ->httpFactoryMock
70- ->method ('create ' )
71- ->willReturn ($ this ->adapterMock );
72- $ this ->uploaderMock = $ this ->createMock (Uploader::class);
73- $ this ->uploaderMock
74- ->method ('setAllowedExtensions ' )
75- ->with (['csv ' , 'zip ' ]);
76- $ this ->uploaderMock
77- ->method ('skipDbProcessing ' )
78- ->with (true );
79- $ this ->uploaderFactoryMock
80- ->method ('create ' )
81- ->with (['fileId ' => 'import_file ' ])
82- ->willReturn ($ this ->uploaderMock );
83- $ this ->randomMock
84- ->method ('getRandomString ' )
85- ->with (32 );
86- $ this ->uploaderMock
87- ->method ('save ' )
88- ->willReturn (['file ' => 'testString ' ]);
89- $ result = $ this ->upload ->uploadSource ('testString ' );
90- $ this ->assertIsArray ($ result );
91- }
9279
9380 /**
94- * Set up
81+ * @inheritDoc
9582 */
9683 protected function setUp (): void
9784 {
@@ -111,13 +98,9 @@ protected function setUp(): void
11198 $ directoryWrite = $ this ->getMockBuilder (WriteInterface::class)
11299 ->disableOriginalConstructor ()
113100 ->getMock ();
114- $ directoryWrite
115- ->expects ($ this ->once ())
116- ->method ('getAbsolutePath ' )
117- ->willReturn ('dasdad ' );
118- $ this ->filesystemMock
119- ->expects ($ this ->once ())
120- ->method ('getDirectoryWrite ' )
101+ $ directoryWrite ->expects ($ this ->once ())->method ('getAbsolutePath ' )
102+ ->willReturn (self ::DIRECTORY_ABSOLUTE_PATH );
103+ $ this ->filesystemMock ->expects ($ this ->once ())->method ('getDirectoryWrite ' )
121104 ->willReturn ($ directoryWrite );
122105 $ this ->upload = new Upload (
123106 $ this ->httpFactoryMock ,
@@ -127,4 +110,26 @@ protected function setUp(): void
127110 $ this ->filesystemMock
128111 );
129112 }
113+
114+ /**
115+ * Test that the uploadSource method uploads a file and returns an array.
116+ *
117+ * @return void
118+ * @throws \Magento\Framework\Exception\LocalizedException
119+ */
120+ public function testUploadSource (): void
121+ {
122+ $ this ->adapterMock ->method ('isValid ' )->willReturn (true );
123+ $ this ->httpFactoryMock ->method ('create ' )->willReturn ($ this ->adapterMock );
124+ $ this ->uploaderMock = $ this ->createMock (Uploader::class);
125+ $ this ->uploaderMock ->method ('setAllowedExtensions ' )->with (self ::ALLOWED_EXTENSIONS );
126+ $ this ->uploaderMock ->method ('skipDbProcessing ' )->with (true );
127+ $ this ->uploaderFactoryMock ->method ('create ' )
128+ ->with (['fileId ' => self ::IMPORT_FILE_ID ])
129+ ->willReturn ($ this ->uploaderMock );
130+ $ this ->randomMock ->method ('getRandomString ' )->with (32 );
131+ $ this ->uploaderMock ->method ('save ' )->willReturn (['file ' => self ::SAVED_FILE_NAME ]);
132+ $ result = $ this ->upload ->uploadSource (self ::SAVED_FILE_NAME );
133+ $ this ->assertIsArray ($ result );
134+ }
130135}
0 commit comments