Skip to content

Commit b0c4044

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

File tree

1 file changed

+130
-0
lines changed

1 file changed

+130
-0
lines changed
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\ImportExport\Test\Unit\Model\Source;
9+
10+
use Laminas\File\Transfer\Adapter\Http;
11+
use Magento\Framework\Filesystem;
12+
use Magento\Framework\Filesystem\Directory\WriteInterface;
13+
use Magento\Framework\HTTP\Adapter\FileTransferFactory;
14+
use Magento\Framework\Math\Random;
15+
use Magento\ImportExport\Helper\Data as DataHelper;
16+
use Magento\ImportExport\Model\Source\Upload;
17+
use Magento\MediaStorage\Model\File\Uploader;
18+
use Magento\MediaStorage\Model\File\UploaderFactory;
19+
use PHPUnit\Framework\MockObject\MockObject;
20+
use PHPUnit\Framework\TestCase;
21+
22+
class UploadTest extends TestCase
23+
{
24+
/**
25+
* @var FileTransferFactory|MockObject
26+
*/
27+
protected $httpFactoryMock;
28+
/**
29+
* @var Upload
30+
*/
31+
private Upload $upload;
32+
/**
33+
* @var DataHelper|MockObject
34+
*/
35+
private $importExportDataMock;
36+
37+
/**
38+
* @var UploaderFactory|MockObject
39+
*/
40+
private $uploaderFactoryMock;
41+
42+
/**
43+
* @var Random|MockObject
44+
*/
45+
private $randomMock;
46+
47+
/**
48+
* @var MockObject|MockObject
49+
*/
50+
private MockObject $filesystemMock;
51+
52+
/**
53+
* @var Http|MockObject
54+
*/
55+
private Http $adapterMock;
56+
57+
/**
58+
* @var Uploader
59+
*/
60+
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+
93+
/**
94+
* Set up
95+
*/
96+
protected function setUp(): void
97+
{
98+
$this->httpFactoryMock = $this->createPartialMock(
99+
FileTransferFactory::class,
100+
['create']
101+
);
102+
$this->importExportDataMock = $this->createMock(DataHelper::class);
103+
$this->uploaderFactoryMock = $this->getMockBuilder(UploaderFactory::class)
104+
->disableOriginalConstructor()
105+
->getMock();
106+
$this->randomMock = $this->getMockBuilder(Random::class)
107+
->disableOriginalConstructor()
108+
->getMock();
109+
$this->filesystemMock = $this->createMock(Filesystem::class);
110+
$this->adapterMock = $this->createMock(Http::class);
111+
$directoryWrite = $this->getMockBuilder(WriteInterface::class)
112+
->disableOriginalConstructor()
113+
->getMock();
114+
$directoryWrite
115+
->expects($this->once())
116+
->method('getAbsolutePath')
117+
->willReturn('dasdad');
118+
$this->filesystemMock
119+
->expects($this->once())
120+
->method('getDirectoryWrite')
121+
->willReturn($directoryWrite);
122+
$this->upload = new Upload(
123+
$this->httpFactoryMock,
124+
$this->importExportDataMock,
125+
$this->uploaderFactoryMock,
126+
$this->randomMock,
127+
$this->filesystemMock
128+
);
129+
}
130+
}

0 commit comments

Comments
 (0)