ILIAS  trunk Revision v5.2.0beta1-34115-g3a2438be29
ILIAS\FileUpload\FileUploadImplTest Class Reference

Class FileUploadImplTest. More...

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

Public Member Functions

 testRegisterWhichShouldSucceed ()
 
 testRegisterWithProcessedFilesWhichShouldFail ()
 
 testProcessWhichShouldSucceed ()
 
 testProcessWithFailedUploadWhichShouldGetRejected ()
 
 testHasUploadsWithoutUploadedFiles ()
 
 testHasUploadsWithSingleUploadedFile ()
 
 testHasUploadsWithMultipleUploadedFile ()
 

Protected Member Functions

 setUp ()
 

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

disabled disabled disabled

Definition at line 30 of file FileUploadImplTest.php.

Member Function Documentation

◆ setUp()

ILIAS\FileUpload\FileUploadImplTest::setUp ( )
protected

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:

Definition at line 205 of file FileUploadImplTest.php.

References $i.

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: saml1-acs.php:28

◆ testHasUploadsWithoutUploadedFiles()

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

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:

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  }

◆ testProcessWhichShouldSucceed()

ILIAS\FileUpload\FileUploadImplTest::testProcessWhichShouldSucceed ( )

Definition at line 89 of file FileUploadImplTest.php.

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

90  {
91  $processingResult = new ProcessingStatus(ProcessingStatus::OK, 'All green!');
92  $uploadedFile = Mockery::mock(UploadedFileInterface::class);
93  $uploadedFile
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 = [
115  $uploadedFile
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 $string)
Creates a new stream with an initial value.
Definition: Streams.php:41
+ Here is the call graph for this function:

◆ testProcessWithFailedUploadWhichShouldGetRejected()

ILIAS\FileUpload\FileUploadImplTest::testProcessWithFailedUploadWhichShouldGetRejected ( )

Definition at line 134 of file FileUploadImplTest.php.

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

135  {
136  $uploadedFile = Mockery::mock(UploadedFileInterface::class);
137  $uploadedFile
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 = [
159  $uploadedFile
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  }
const REJECTED
Upload got rejected by a processor.
static ofString(string $string)
Creates a new stream with an initial value.
Definition: Streams.php:41
+ Here is the call graph for this function:

◆ testRegisterWhichShouldSucceed()

ILIAS\FileUpload\FileUploadImplTest::testRegisterWhichShouldSucceed ( )

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 ( )

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: