ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ILIAS\FileUpload\FileUploadImplTest Class Reference

Class FileUploadImplTest. More...

+ Inheritance diagram for ILIAS\FileUpload\FileUploadImplTest:
+ Collaboration diagram for ILIAS\FileUpload\FileUploadImplTest:

Public Member Functions

 testRegisterWhichShouldSucceed ()
 @Test @small More...
 
 testRegisterWithProcessedFilesWhichShouldFail ()
 @Test @small More...
 
 testProcessWhichShouldSucceed ()
 @Test @small More...
 
 testProcessWithFailedUploadWhichShouldGetRejected ()
 @Test @small More...
 
 testHasUploadsWithoutUploadedFiles ()
 
 testHasUploadsWithSingleUploadedFile ()
 
 testHasUploadsWithMultipleUploadedFile ()
 

Protected Member Functions

 setUp ()
 @inheritDoc More...
 

Private Attributes

 $subject
 
 $prePorcessorManagerMock
 
 $filesystemsMock
 
 $globalHttpStateMock
 

Detailed Description

Class FileUploadImplTest.

Author
Nicolas Schäfli ns@st.nosp@m.uder.nosp@m.-raim.nosp@m.ann..nosp@m.ch

@runTestsInSeparateProcesses @preserveGlobalState disabled @backupGlobals disabled @backupStaticAttributes disabled

Definition at line 30 of file FileUploadImplTest.php.

Member Function Documentation

◆ setUp()

ILIAS\FileUpload\FileUploadImplTest::setUp ( )
protected

@inheritDoc

Definition at line 223 of file FileUploadImplTest.php.

223 : void
224 {
225 parent::setUp();
226
227 $this->prePorcessorManagerMock = \Mockery::mock(PreProcessorManager::class);
228 $this->filesystemsMock = \Mockery::mock(Filesystems::class);
229 $this->globalHttpStateMock = \Mockery::mock(GlobalHttpState::class);
230
231 $this->subject = new FileUploadImpl($this->prePorcessorManagerMock, $this->filesystemsMock, $this->globalHttpStateMock);
232 }

◆ testHasUploadsWithMultipleUploadedFile()

ILIAS\FileUpload\FileUploadImplTest::testHasUploadsWithMultipleUploadedFile ( )
Test:
@small

Definition at line 205 of file FileUploadImplTest.php.

206 {
207 $files = [];
208 for ($i = 0; $i < 10; $i++) {
209 $files[] = Mockery::mock(UploadedFileInterface::class);
210 }
211
212 $this->globalHttpStateMock->shouldReceive('request->getUploadedFiles')
213 ->once()
214 ->andReturn($files);
215
216 $this->assertTrue($this->subject->hasUploads());
217 }
$i
Definition: metadata.php:24

References $i.

◆ testHasUploadsWithoutUploadedFiles()

ILIAS\FileUpload\FileUploadImplTest::testHasUploadsWithoutUploadedFiles ( )
Test:
@small

Definition at line 177 of file FileUploadImplTest.php.

178 {
179 // No File-Upload Element
180 $this->globalHttpStateMock->shouldReceive('request->getUploadedFiles')
181 ->once()
182 ->andReturn([]);
183 $this->assertFalse($this->subject->hasUploads());
184 }

◆ testHasUploadsWithSingleUploadedFile()

ILIAS\FileUpload\FileUploadImplTest::testHasUploadsWithSingleUploadedFile ( )
Test:
@small

Definition at line 190 of file FileUploadImplTest.php.

191 {
192 $uploadedFile = Mockery::mock(UploadedFileInterface::class);
193
194 $this->globalHttpStateMock->shouldReceive('request->getUploadedFiles')
195 ->once()
196 ->andReturn([ $uploadedFile ]);
197
198 $this->assertTrue($this->subject->hasUploads());
199 }
$uploadedFile
Definition: imgupload.php:61

References $uploadedFile.

◆ testProcessWhichShouldSucceed()

ILIAS\FileUpload\FileUploadImplTest::testProcessWhichShouldSucceed ( )

@Test @small

Definition at line 89 of file FileUploadImplTest.php.

90 {
91 $processingResult = new ProcessingStatus(ProcessingStatus::OK, 'All green!');
92 $uploadedFile = Mockery::mock(UploadedFileInterface::class);
94 ->shouldReceive('getClientFilename')
95 ->once()
96 ->andReturn('hello.txt')
97 ->getMock()
98 ->shouldReceive('getSize')
99 ->once()
100 ->andReturn(10)
101 ->getMock()
102 ->shouldReceive('getClientMediaType')
103 ->once()
104 ->andReturn('text/plain')
105 ->getMock()
106 ->shouldReceive('getError')
107 ->once()
108 ->andReturn(UPLOAD_ERR_OK)
109 ->getMock()
110 ->shouldReceive('getStream')
111 ->twice()
112 ->andReturn(Streams::ofString("Text file content."));
113
114 $uploadedFiles = [
116 ];
117
118 $this->prePorcessorManagerMock->shouldReceive('process')
119 ->withAnyArgs()
120 ->once()
121 ->andReturn($processingResult);
122
123 $this->globalHttpStateMock->shouldReceive('request->getUploadedFiles')
124 ->once()
125 ->andReturn($uploadedFiles);
126
127 $this->subject->process();
128 }
static ofString($string)
Creates a new stream with an initial value.
Definition: Streams.php:30

References $uploadedFile, ILIAS\Filesystem\Stream\Streams\ofString(), and ILIAS\FileUpload\DTO\ProcessingStatus\OK.

+ Here is the call graph for this function:

◆ testProcessWithFailedUploadWhichShouldGetRejected()

ILIAS\FileUpload\FileUploadImplTest::testProcessWithFailedUploadWhichShouldGetRejected ( )

@Test @small

Definition at line 134 of file FileUploadImplTest.php.

135 {
136 $uploadedFile = Mockery::mock(UploadedFileInterface::class);
138 ->shouldReceive('getClientFilename')
139 ->once()
140 ->andReturn('hello.txt')
141 ->getMock()
142 ->shouldReceive('getSize')
143 ->once()
144 ->andReturn(10)
145 ->getMock()
146 ->shouldReceive('getClientMediaType')
147 ->once()
148 ->andReturn('text/plain')
149 ->getMock()
150 ->shouldReceive('getError')
151 ->once()
152 ->andReturn(UPLOAD_ERR_PARTIAL)
153 ->getMock()
154 ->shouldReceive('getStream')
155 ->twice()
156 ->andReturn(Streams::ofString("Text file content."));
157
158 $uploadedFiles = [
160 ];
161
162 $this->globalHttpStateMock->shouldReceive('request->getUploadedFiles')
163 ->once()
164 ->andReturn($uploadedFiles);
165
166 $this->subject->process();
167
168 $result = $this->subject->getResults()[0];
169 $this->assertSame(ProcessingStatus::REJECTED, $result->getStatus()->getCode());
170 }
$result
const REJECTED
Upload got rejected by a processor.

References $result, $uploadedFile, ILIAS\Filesystem\Stream\Streams\ofString(), and ILIAS\FileUpload\DTO\ProcessingStatus\REJECTED.

+ Here is the call graph for this function:

◆ testRegisterWhichShouldSucceed()

ILIAS\FileUpload\FileUploadImplTest::testRegisterWhichShouldSucceed ( )

@Test @small

Definition at line 56 of file FileUploadImplTest.php.

57 {
58 $processorMock = \Mockery::mock(PreProcessor::class);
59 $this->prePorcessorManagerMock->shouldReceive('with')
60 ->once()
61 ->with($processorMock);
62
63 $this->subject->register($processorMock);
64 }

◆ testRegisterWithProcessedFilesWhichShouldFail()

ILIAS\FileUpload\FileUploadImplTest::testRegisterWithProcessedFilesWhichShouldFail ( )

@Test @small

Definition at line 70 of file FileUploadImplTest.php.

71 {
72 $processorMock = \Mockery::mock(PreProcessor::class);
73
74 $this->globalHttpStateMock->shouldReceive('request->getUploadedFiles')
75 ->once()
76 ->andReturn([]);
77
78 $this->expectException(IllegalStateException::class);
79 $this->expectExceptionMessage('Can not register processor after the upload was processed.');
80
81 $this->subject->process();
82 $this->subject->register($processorMock);
83 }

Field Documentation

◆ $filesystemsMock

MockInterface Filesystems ILIAS\FileUpload\FileUploadImplTest::$filesystemsMock
private

Definition at line 45 of file FileUploadImplTest.php.

◆ $globalHttpStateMock

MockInterface GlobalHttpState ILIAS\FileUpload\FileUploadImplTest::$globalHttpStateMock
private

Definition at line 49 of file FileUploadImplTest.php.

◆ $prePorcessorManagerMock

MockInterface PreProcessorManager ILIAS\FileUpload\FileUploadImplTest::$prePorcessorManagerMock
private

Definition at line 41 of file FileUploadImplTest.php.

◆ $subject

FileUpload ILIAS\FileUpload\FileUploadImplTest::$subject
private

Definition at line 37 of file FileUploadImplTest.php.


The documentation for this class was generated from the following file: