16
16
use Magento \ImportExport \Model \Source \Upload ;
17
17
use Magento \MediaStorage \Model \File \Uploader ;
18
18
use Magento \MediaStorage \Model \File \UploaderFactory ;
19
- use PHPUnit \Framework \MockObject \MockObject ;
20
19
use PHPUnit \Framework \TestCase ;
21
20
22
21
class UploadTest extends TestCase
23
22
{
24
23
/**
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.
26
37
*/
27
- protected $ httpFactoryMock ;
38
+ const IMPORT_FILE_ID = 'import_file ' ;
39
+
28
40
/**
29
41
* @var Upload
30
42
*/
31
43
private Upload $ upload ;
44
+
32
45
/**
33
- * @var DataHelper |MockObject
46
+ * @var FileTransferFactory |MockObject
34
47
*/
35
- private $ importExportDataMock ;
48
+ protected FileTransferFactory | MockObject $ httpFactoryMock ;
36
49
37
50
/**
38
- * @var UploaderFactory| MockObject
51
+ * @var DataHelper|\PHPUnit\Framework\MockObject\ MockObject
39
52
*/
40
- private $ uploaderFactoryMock ;
53
+ private DataHelper | MockObject $ importExportDataMock ;
41
54
42
55
/**
43
- * @var Random| MockObject
56
+ * @var UploaderFactory|\PHPUnit\Framework\MockObject\ MockObject
44
57
*/
45
- private $ randomMock ;
58
+ private UploaderFactory | MockObject $ uploaderFactoryMock ;
46
59
47
60
/**
48
- * @var MockObject| MockObject
61
+ * @var Random|\PHPUnit\Framework\MockObject\ MockObject
49
62
*/
50
- private MockObject $ filesystemMock ;
63
+ private Random |MockObject $ randomMock ;
64
+
65
+ /**
66
+ * @var Filesystem|MockObject
67
+ */
68
+ protected Filesystem |MockObject $ filesystemMock ;
51
69
52
70
/**
53
71
* @var Http|MockObject
54
72
*/
55
- private Http $ adapterMock ;
73
+ private Http | MockObject $ adapterMock ;
56
74
57
75
/**
58
76
* @var Uploader
59
77
*/
60
78
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
- }
92
79
93
80
/**
94
- * Set up
81
+ * @inheritDoc
95
82
*/
96
83
protected function setUp (): void
97
84
{
@@ -111,13 +98,9 @@ protected function setUp(): void
111
98
$ directoryWrite = $ this ->getMockBuilder (WriteInterface::class)
112
99
->disableOriginalConstructor ()
113
100
->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 ' )
121
104
->willReturn ($ directoryWrite );
122
105
$ this ->upload = new Upload (
123
106
$ this ->httpFactoryMock ,
@@ -127,4 +110,26 @@ protected function setUp(): void
127
110
$ this ->filesystemMock
128
111
);
129
112
}
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
+ }
130
135
}
0 commit comments