ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ILIAS\FileUpload\FileUploadImplTest Class Reference
+ Inheritance diagram for ILIAS\FileUpload\FileUploadImplTest:
+ Collaboration diagram for ILIAS\FileUpload\FileUploadImplTest:

Public Member Functions

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

Private Member Functions

 createHttpStateWithUploadedFiles (array $uploaded_files)
 
 createSubject (PreProcessorManager $pre_processor_manager, GlobalHttpState $http_state)
 
 createUploadedFile (int $error)
 

Detailed Description

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

Definition at line 38 of file FileUploadImplTest.php.

Member Function Documentation

◆ createHttpStateWithUploadedFiles()

ILIAS\FileUpload\FileUploadImplTest::createHttpStateWithUploadedFiles ( array  $uploaded_files)
private
Parameters
UploadedFileInterface[]$uploaded_files

Definition at line 43 of file FileUploadImplTest.php.

43 : GlobalHttpState
44 {
45 $request = $this->createMock(ServerRequestInterface::class);
46 $request->expects($this->once())
47 ->method('getUploadedFiles')
48 ->willReturn($uploaded_files);
49
50 $http_state = $this->createStub(GlobalHttpState::class);
51 $http_state->method('request')->willReturn($request);
52
53 return $http_state;
54 }
$request
@ilCtrl_Calls ilObjLearningSequenceContentGUI: ilObjLearningSequenceConditionsGUI
Definition: ltiauth.php:39

References $request.

◆ createSubject()

ILIAS\FileUpload\FileUploadImplTest::createSubject ( PreProcessorManager  $pre_processor_manager,
GlobalHttpState  $http_state 
)
private

Definition at line 56 of file FileUploadImplTest.php.

59 : FileUploadImpl {
60 return new FileUploadImpl(
61 $pre_processor_manager,
62 $this->createStub(Filesystems::class),
63 $http_state
64 );
65 }

◆ createUploadedFile()

ILIAS\FileUpload\FileUploadImplTest::createUploadedFile ( int  $error)
private

Definition at line 67 of file FileUploadImplTest.php.

67 : UploadedFileInterface
68 {
69 $uploaded_file = $this->createMock(UploadedFileInterface::class);
70 $uploaded_file->expects($this->once())
71 ->method('getClientFilename')
72 ->willReturn('hello.txt');
73 $uploaded_file->expects($this->once())
74 ->method('getSize')
75 ->willReturn(10);
76 $uploaded_file->expects($this->once())
77 ->method('getClientMediaType')
78 ->willReturn('text/plain');
79 $uploaded_file->expects($this->once())
80 ->method('getError')
81 ->willReturn($error);
82 $uploaded_file->expects($this->exactly(2))
83 ->method('getStream')
84 ->willReturn(Streams::ofString('Text file content.'));
85
86 return $uploaded_file;
87 }
static ofString(string $string)
Creates a new stream with an initial value.
Definition: Streams.php:41
ilErrorHandling $error
Definition: class.ilias.php:69

References ILIAS\$error, and ILIAS\Filesystem\Stream\Streams\ofString().

+ Here is the call graph for this function:

◆ testHasUploadsWithMultipleUploadedFile()

ILIAS\FileUpload\FileUploadImplTest::testHasUploadsWithMultipleUploadedFile ( )

Definition at line 190 of file FileUploadImplTest.php.

190 : void
191 {
192 $files = [];
193 for ($i = 0; $i < 10; $i++) {
194 $files[] = $this->createStub(UploadedFileInterface::class);
195 }
196
197 $subject = $this->createSubject(
198 $this->createStub(PreProcessorManager::class),
200 );
201
202 $this->assertTrue($subject->hasUploads());
203 }
createHttpStateWithUploadedFiles(array $uploaded_files)
createSubject(PreProcessorManager $pre_processor_manager, GlobalHttpState $http_state)

References $files.

◆ testHasUploadsWithoutUploadedFiles()

ILIAS\FileUpload\FileUploadImplTest::testHasUploadsWithoutUploadedFiles ( )

Definition at line 167 of file FileUploadImplTest.php.

167 : void
168 {
169 // No File-Upload Element
170 $subject = $this->createSubject(
171 $this->createStub(PreProcessorManager::class),
173 );
174
175 $this->assertFalse($subject->hasUploads());
176 }

◆ testHasUploadsWithSingleUploadedFile()

ILIAS\FileUpload\FileUploadImplTest::testHasUploadsWithSingleUploadedFile ( )

Definition at line 179 of file FileUploadImplTest.php.

179 : void
180 {
181 $subject = $this->createSubject(
182 $this->createStub(PreProcessorManager::class),
183 $this->createHttpStateWithUploadedFiles([$this->createStub(UploadedFileInterface::class)])
184 );
185
186 $this->assertTrue($subject->hasUploads());
187 }

◆ testProcessWhichShouldSucceed()

ILIAS\FileUpload\FileUploadImplTest::testProcessWhichShouldSucceed ( )

Definition at line 122 of file FileUploadImplTest.php.

122 : void
123 {
124 $processing_result = new ProcessingStatus(ProcessingStatus::OK, 'All green!');
125
126 $pre_processor_manager = $this->createMock(PreProcessorManager::class);
127 $pre_processor_manager->expects($this->once())
128 ->method('process')
129 ->willReturn($processing_result);
130
131 $subject = $this->createSubject(
132 $pre_processor_manager,
133 $this->createHttpStateWithUploadedFiles([$this->createUploadedFile(UPLOAD_ERR_OK)])
134 );
135
136 $subject->process();
137
138 $this->assertTrue($subject->hasBeenProcessed());
139 $results = $subject->getResults();
140 $this->assertCount(1, $results);
141 $result = reset($results);
142 $this->assertSame($processing_result, $result->getStatus());
143 $this->assertSame('hello.txt', $result->getName());
144 $this->assertSame(10, $result->getSize());
145 $this->assertSame('text/plain', $result->getMimeType());
146 }
$results

References $results, and ILIAS\FileUpload\DTO\ProcessingStatus\OK.

◆ testProcessWithFailedUploadWhichShouldGetRejected()

ILIAS\FileUpload\FileUploadImplTest::testProcessWithFailedUploadWhichShouldGetRejected ( )

Definition at line 149 of file FileUploadImplTest.php.

149 : void
150 {
151 $pre_processor_manager = $this->createMock(PreProcessorManager::class);
152 $pre_processor_manager->expects($this->never())
153 ->method('process');
154
155 $subject = $this->createSubject(
156 $pre_processor_manager,
157 $this->createHttpStateWithUploadedFiles([$this->createUploadedFile(UPLOAD_ERR_PARTIAL)])
158 );
159
160 $subject->process();
161
162 $result = $subject->getResults()[0];
163 $this->assertSame(ProcessingStatus::REJECTED, $result->getStatus()->getCode());
164 }

References ILIAS\FileUpload\DTO\ProcessingStatus\REJECTED.

◆ testRegisterWhichShouldSucceed()

ILIAS\FileUpload\FileUploadImplTest::testRegisterWhichShouldSucceed ( )

Definition at line 90 of file FileUploadImplTest.php.

90 : void
91 {
92 $processor = $this->createStub(PreProcessor::class);
93
94 $pre_processor_manager = $this->createMock(PreProcessorManager::class);
95 $pre_processor_manager->expects($this->once())
96 ->method('with')
97 ->with($processor);
98
99 $subject = $this->createSubject($pre_processor_manager, $this->createStub(GlobalHttpState::class));
100 $subject->register($processor);
101 }

◆ testRegisterWithProcessedFilesWhichShouldFail()

ILIAS\FileUpload\FileUploadImplTest::testRegisterWithProcessedFilesWhichShouldFail ( )

Definition at line 104 of file FileUploadImplTest.php.

104 : void
105 {
106 $processor = $this->createStub(PreProcessor::class);
107
108 $pre_processor_manager = $this->createMock(PreProcessorManager::class);
109 $pre_processor_manager->expects($this->never())
110 ->method('with');
111
112 $subject = $this->createSubject($pre_processor_manager, $this->createHttpStateWithUploadedFiles([]));
113
114 $this->expectException(IllegalStateException::class);
115 $this->expectExceptionMessage('Can not register processor after the upload was processed.');
116
117 $subject->process();
118 $subject->register($processor);
119 }

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