Skip to content

Commit 0155c79

Browse files
committed
AC-8384: Zend_Validate_File_Upload- undefined class on 2.4.6
1 parent b0c4044 commit 0155c79

File tree

2 files changed

+67
-53
lines changed

2 files changed

+67
-53
lines changed

app/code/Magento/ImportExport/Model/Source/Upload.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Magento\MediaStorage\Model\File\Uploader;
1919
use Magento\MediaStorage\Model\File\UploaderFactory;
2020
use Laminas\Validator\File\Upload as FileUploadValidator;
21+
use Laminas\File\Transfer\Adapter\Http;
2122

2223
class Upload
2324
{
@@ -46,6 +47,10 @@ class Upload
4647
*/
4748
private $varDirectory;
4849

50+
/**
51+
* @param WriteInterface $varDirectory
52+
*/
53+
4954
/**
5055
* @param FileTransferFactory $httpFactory
5156
* @param DataHelper $importExportData
@@ -75,7 +80,9 @@ public function __construct(
7580
*/
7681
public function uploadSource(string $entity)
7782
{
78-
/** @var $adapter \Laminas\File\Transfer\Adapter\Http */
83+
/**
84+
* @var $adapter \Laminas\File\Transfer\Adapter\Http
85+
*/
7986
$adapter = $this->httpFactory->create();
8087
if (!$adapter->isValid(Import::FIELD_NAME_SOURCE_FILE)) {
8188
$errors = $adapter->getErrors();
@@ -87,7 +94,9 @@ public function uploadSource(string $entity)
8794
throw new LocalizedException($errorMessage);
8895
}
8996

90-
/** @var $uploader Uploader */
97+
/**
98+
* @var $uploader Uploader
99+
*/
91100
$uploader = $this->uploaderFactory->create(['fileId' => Import::FIELD_NAME_SOURCE_FILE]);
92101
$uploader->setAllowedExtensions(['csv', 'zip']);
93102
$uploader->skipDbProcessing(true);

app/code/Magento/ImportExport/Test/Unit/Model/Source/UploadTest.php

Lines changed: 56 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -16,82 +16,69 @@
1616
use Magento\ImportExport\Model\Source\Upload;
1717
use Magento\MediaStorage\Model\File\Uploader;
1818
use Magento\MediaStorage\Model\File\UploaderFactory;
19-
use PHPUnit\Framework\MockObject\MockObject;
2019
use PHPUnit\Framework\TestCase;
2120

2221
class 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

Comments
 (0)