ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilCertificateBackgroundImageUploadTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
27 
32 {
33  public function testFileCanBeUploaded(): void
34  {
35  $fileUpload = $this->getMockBuilder(FileUpload::class)
36  ->getMock();
37 
38  $fileUpload->method('hasBeenProcessed')
39  ->willReturn(false);
40 
41  $fileUpload->expects($this->once())
42  ->method('process');
43 
44  $fileUpload->method('hasUploads')
45  ->willReturn(true);
46 
47  $uploadResult = new UploadResult(
48  'phpunit',
49  1024,
50  'text/xml',
51  $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
52  new ProcessingStatus(ProcessingStatus::OK, 'uploaded'),
53  '/tmp'
54  );
55 
56  $fileUpload->method('getResults')
57  ->willReturn(["some/where/temporary" => $uploadResult]);
58 
59  $fileUpload->expects($this->once())
60  ->method('moveOneFileTo');
61 
62  $language = $this->getMockBuilder(ilLanguage::class)
63  ->disableOriginalConstructor()
64  ->getMock();
65 
66  $logger = $this->getMockBuilder(ilLogger::class)
67  ->disableOriginalConstructor()
68  ->getMock();
69 
70  $fileSystem = $this->getMockBuilder(Filesystem::class)
71  ->getMock();
72 
73  $fileSystem->method('hasDir')
74  ->willReturn(true);
75 
76  $fileSystem->method('has')
77  ->willReturn(true);
78 
79  $fileSystem->expects($this->once())
80  ->method('delete');
81 
82  $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
83  ->getMock();
84 
85  $utilHelper->expects($this->exactly(2))
86  ->method('convertImage');
87 
88  $fileUtilsHelper = $this->getMockBuilder(ilCertificateFileUtilsHelper::class)
89  ->getMock();
90 
91  $legacyPathHelper = $this->getMockBuilder(LegacyPathHelperHelper::class)
92  ->getMock();
93 
94  $legacyPathHelper->method('createRelativePath')
95  ->willReturn('the/relative/path');
96 
98  $fileUpload,
99  'certifcate/path/to/some/where',
100  $language,
101  $logger,
102  $fileSystem,
103  $utilHelper,
104  $fileUtilsHelper,
105  $legacyPathHelper,
106  'Some Root Directory',
107  'someclient',
108  $fileSystem
109  );
110 
111  $upload->uploadBackgroundImage('some/where/temporary', 3);
112  }
113 
117  public function testPendingFilesCanBeUploaded(): void
118  {
119  $fileUpload = $this->getMockBuilder(FileUpload::class)
120  ->getMock();
121 
122  $fileUpload->method('hasBeenProcessed')
123  ->willReturn(false);
124 
125  $fileUpload->expects($this->once())
126  ->method('process');
127 
128  $fileUpload->method('hasUploads')
129  ->willReturn(true);
130 
131  $uploadResult = new UploadResult(
132  '',
133  0,
134  '',
135  $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
136  new ProcessingStatus(ProcessingStatus::REJECTED, 'rejected'),
137  ''
138  );
139 
140  $fileUpload->method('getResults')
141  ->willReturn([0 => $uploadResult]);
142 
143  $fileUpload->expects($this->never())
144  ->method('moveOneFileTo');
145 
146  $language = $this->getMockBuilder(ilLanguage::class)
147  ->disableOriginalConstructor()
148  ->getMock();
149 
150  $logger = $this->getMockBuilder(ilLogger::class)
151  ->disableOriginalConstructor()
152  ->getMock();
153 
154  $fileSystem = $this->getMockBuilder(Filesystem::class)
155  ->getMock();
156 
157  $fileSystem->method('hasDir')
158  ->willReturn(true);
159 
160  $fileSystem->method('has')
161  ->willReturn(true);
162 
163  $fileSystem->expects($this->once())
164  ->method('delete');
165 
166  $fileSystem->expects($this->once())
167  ->method('writeStream');
168 
169  $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
170  ->getMock();
171 
172  $utilHelper->expects($this->exactly(2))
173  ->method('convertImage');
174 
175  $fileUtilsHelper = $this->getMockBuilder(ilCertificateFileUtilsHelper::class)
176  ->getMock();
177 
178  $legacyPathHelper = $this->getMockBuilder(LegacyPathHelperHelper::class)
179  ->getMock();
180 
181  $legacyPathHelper->method('createRelativePath')
182  ->willReturn('the/relative/path');
183 
184  $tmp_file_system = $this->getMockBuilder(Filesystem::class)
185  ->getMock();
186  $tmp_file_system->expects($this->once())
187  ->method('readStream')
188  ->willReturn($this->getMockBuilder(FileStream::class)->getMock());
189 
191  $fileUpload,
192  'certifcate/path/to/some/where',
193  $language,
194  $logger,
195  $fileSystem,
196  $utilHelper,
197  $fileUtilsHelper,
198  $legacyPathHelper,
199  'Some Root Directory',
200  'someclient',
201  $tmp_file_system
202  );
203 
204  $upload->uploadBackgroundImage('some/where/temporary', 3, [
205  'name' => 'pending_file.jpg',
206  'tmp_name' => '/tmp/f04akasf492'
207  ]);
208  }
209 }
Class ilCertificateBaseTestCase.
testPendingFilesCanBeUploaded()
This test ensures the workaround for https://mantis.ilias.de/view.php?id=28219 works as expected...