52 private \ILIAS\Filesystem\Provider\FlySystem\FlySystemFileAccess
$subject;
63 protected function setUp(): void
67 $this->filesystemMock = Mockery::mock(FilesystemOperator::class);
68 $this->adapterMock = Mockery::mock(FilesystemAdapter::class);
74 $file_content =
'Test file content.';
75 $path =
'/path/to/your/file';
77 $this->filesystemMock->shouldReceive(
'has')
79 ->with(ltrim(
$path,
'/'))
82 $this->filesystemMock->shouldReceive(
'read')
83 ->with(ltrim(
$path,
'/'))
85 ->andReturn($file_content);
88 $actualContent = $this->subject->read(
$path);
89 $this->assertSame($file_content, $actualContent);
94 $path =
'/path/to/your/file';
96 $this->filesystemMock->shouldReceive(
'has')
98 ->with(ltrim(
$path,
'/'))
101 $this->filesystemMock->shouldReceive(
'read')
102 ->with(ltrim(
$path,
'/'))
107 $this->expectException(IOException::class);
108 $this->expectExceptionMessage(
'File "' . ltrim(
$path,
'/') .
'" not found.');
109 $actualContent = $this->subject->read(
$path);
115 $path =
'/path/to/your/file';
117 $this->filesystemMock->shouldReceive(
'has')
119 ->with(ltrim(
$path,
'/'))
122 $this->filesystemMock->shouldReceive(
'read')
126 $this->expectException(IOException::class);
127 $this->expectExceptionMessage(
'File "' . ltrim(
$path,
'/') .
'" not found.');
128 $actualContent = $this->subject->read(
$path);
133 $mimeType =
'image/jpeg';
134 $this->filesystemMock->shouldReceive(
'mimeType')
136 ->andReturn($mimeType);
138 $actualMimeType = $this->subject->getMimeType(
'/path/to/your/file');
139 $this->assertSame($mimeType, $actualMimeType);
144 $content =
'Test file content.';
145 $this->filesystemMock->shouldReceive(
'has')
148 $this->filesystemMock->shouldReceive(
'write')
149 ->with(
'/path/to/your/file', $content)
153 $this->subject->put(
'/path/to/your/file', $content);
158 $content =
'Test file content.';
159 $this->filesystemMock->shouldReceive(
'has')
163 $this->filesystemMock->shouldReceive(
'write')
164 ->with(
'/path/to/your/file', $content)
168 $this->subject->put(
'/path/to/your/file', $content);
174 $path =
'/path/to/your/file';
175 $this->filesystemMock->shouldReceive(
'mimeType')
180 $this->expectException(IOException::class);
181 $this->expectExceptionMessage(
"Could not determine the MIME type of the file \"$path\".");
183 $this->subject->getMimeType(
$path);
188 $path =
'/path/to/your/file';
189 $this->filesystemMock->shouldReceive(
'mimeType')
192 ->andThrow(UnableToRetrieveMetadata::class);
194 $this->expectException(IOException::class);
195 $this->expectExceptionMessage(
"File \"$path\" not found.");
197 $this->subject->getMimeType(
$path);
204 $this->filesystemMock
205 ->shouldReceive(
'lastModified')
209 $actualTimestamp = $this->subject->getTimestamp(
'/path/to/your/file');
227 $path =
'/path/to/your/file';
228 $this->filesystemMock
229 ->shouldReceive(
'lastModified')
232 ->andThrow(UnableToRetrieveMetadata::class);
234 $this->expectException(IOException::class);
235 $this->expectExceptionMessage(
"Could not lookup timestamp of the file \"$path\".");
237 $this->subject->getTimestamp(
$path);
242 $path =
'/path/to/your/file';
243 $this->filesystemMock
244 ->shouldReceive(
'lastModified')
247 ->andThrow(UnableToReadFile::class);
249 $this->expectException(IOException::class);
250 $this->expectExceptionMessage(
"File \"$path\" not found.");
252 $this->subject->getTimestamp(
$path);
260 $this->filesystemMock->shouldReceive(
'fileSize')
262 ->andReturn($rawSize);
264 $actualSize = $this->subject->getSize(
'/path/to/your/file',
DataSize::KiB);
265 $this->assertSame($size->getSize(), $actualSize->getSize(),
'');
270 $path =
'/path/to/your/file';
271 $this->filesystemMock
272 ->shouldReceive(
'fileSize')
275 ->andThrow(UnableToRetrieveMetadata::class);
277 $this->expectException(IOException::class);
278 $this->expectExceptionMessage(
"File \"$path\" not found.");
285 $path =
'/path/to/your/file';
286 $this->filesystemMock
287 ->shouldReceive(
'fileSize')
290 ->andThrow(UnableToRetrieveMetadata::class);
292 $this->expectException(IOException::class);
293 $this->expectExceptionMessage(
"File \"$path\" not found.");
300 $path =
'/path/to/your/file';
301 $visibility =
"private";
303 $this->filesystemMock->shouldReceive(
'has')
308 $this->filesystemMock->shouldReceive(
'setVisibility')
310 ->withArgs([
$path, $visibility])
313 $operationSuccessful = $this->subject->setVisibility(
$path, $visibility);
314 $this->assertTrue($operationSuccessful);
319 $path =
'/path/to/your/file';
320 $visibility =
"private";
322 $this->filesystemMock->shouldReceive(
'has')
327 $this->filesystemMock->shouldReceive(
'setVisibility')
329 ->withArgs([
$path, $visibility])
330 ->andThrow(UnableToSetVisibility::class);
332 $operationSuccessful = $this->subject->setVisibility(
$path, $visibility);
333 $this->assertFalse($operationSuccessful);
342 $path =
'/path/to/your/file';
343 $visibility =
"private";
345 $this->filesystemMock->shouldReceive(
'has')
351 $this->expectExceptionMessage(
"Path \"$path\" not found.");
353 $this->subject->setVisibility(
$path, $visibility);
362 $path =
'/path/to/your/file';
363 $visibility =
"not valid";
365 $this->filesystemMock->shouldReceive(
'has')
370 $this->expectException(\InvalidArgumentException::class);
371 $this->expectExceptionMessage(
"The access must be 'public' or 'private' but '$visibility' was given.");
373 $this->subject->setVisibility(
$path, $visibility);
382 $path =
'/path/to/your/file';
383 $visibility =
"private";
385 $this->filesystemMock->shouldReceive(
'has')
390 $this->filesystemMock->shouldReceive(
'getVisibility')
393 ->andReturn($visibility);
395 $actualVisibility = $this->subject->getVisibility(
$path);
396 $this->assertSame($visibility, $actualVisibility);
405 $path =
'/path/to/your/file';
407 $this->filesystemMock->shouldReceive(
'has')
413 $this->expectExceptionMessage(
"Path \"$path\" not found.");
415 $this->subject->getVisibility(
$path);
424 $path =
'/path/to/your/file';
426 $this->filesystemMock->shouldReceive(
'has')
431 $this->filesystemMock->shouldReceive(
'getVisibility')
436 $this->expectException(IOException::class);
437 $this->expectExceptionMessage(
"Could not determine visibility for path '$path'.");
439 $this->subject->getVisibility(
$path);
448 $path =
'/path/to/your/file';
449 $content =
"some awesome content";
451 $this->filesystemMock
452 ->shouldReceive(
'has')
457 ->shouldReceive(
'write')
459 ->withArgs([
$path, $content]);
461 $this->subject->write(
$path, $content);
470 $path =
'/path/to/your/file';
471 $content =
"some awesome content";
473 $this->filesystemMock
474 ->shouldReceive(
'has')
478 ->shouldReceive(
'write')
480 ->withArgs([
$path, $content])
481 ->andThrow(UnableToWriteFile::class);
483 $this->expectException(FileAlreadyExistsException::class);
484 $this->expectExceptionMessage(
"File \"$path\" already exists.");
486 $this->subject->write(
$path, $content);
495 $path =
'/path/to/your/file';
496 $content =
"some awesome content";
498 $this->filesystemMock
499 ->shouldReceive(
'has')
504 ->shouldReceive(
'write')
506 ->withArgs([
$path, $content])
507 ->andThrow(UnableToWriteFile::class);
509 $this->expectException(IOException::class);
510 $this->expectExceptionMessage(
511 "Could not write to file \"$path\" because a general IO error occurred. Please check that your destination is writable." 514 $this->subject->write(
$path, $content);
523 $path =
'/path/to/your/file';
524 $content =
"some awesome content";
526 $this->filesystemMock->shouldReceive(
'write')
528 ->withArgs([
$path, $content])
531 $this->subject->update(
$path, $content);
540 $path =
'/path/to/your/file';
541 $content =
"some awesome content";
543 $this->filesystemMock->shouldReceive(
'write')
545 ->withArgs([
$path, $content])
546 ->andThrow(UnableToWriteFile::class);
548 $this->expectException(IOException::class);
549 $this->expectExceptionMessage(
550 "Could not write to file \"$path\" because a general IO error occurred. Please check that your destination is writable." 553 $this->subject->update(
$path, $content);
562 $path =
'/path/to/your/file';
563 $content =
"some awesome content";
565 $this->filesystemMock
566 ->shouldReceive(
'write')
568 ->withArgs([
$path, $content])
569 ->andThrow(UnableToWriteFile::class);
571 $this->expectException(IOException::class);
572 $this->expectExceptionMessage(
573 "Could not write to file \"$path\" because a general IO error occurred. Please check that your destination is writable." 576 $this->subject->update(
$path, $content);
585 $path =
'/path/to/your/file';
587 $this->filesystemMock->shouldReceive(
'delete')
592 $this->subject->delete(
$path);
601 $path =
'/path/to/your/file';
603 $this->filesystemMock->shouldReceive(
'delete')
606 ->andThrow(UnableToDeleteFile::class);
608 $this->expectException(IOException::class);
609 $this->expectExceptionMessage(
610 "Could not delete file \"$path\" because a general IO error occurred. Please check that your target is writable." 613 $this->subject->delete(
$path);
622 $path =
'/path/to/your/file';
624 $this->filesystemMock->shouldReceive(
'delete')
627 ->andThrow(UnableToRetrieveMetadata::class);
630 $this->expectExceptionMessage(
"File \"$path\" was not found delete operation failed.");
632 $this->subject->delete(
$path);
642 $path =
'/path/to/your/file';
643 $content =
"awesome content";
646 $this->subject = Mockery::mock(FlySystemFileAccess::class, [$this->filesystemMock])->makePartial();
649 ->shouldReceive(
'read')
652 ->andReturn($content)
654 ->shouldReceive(
'delete')
658 $this->subject->readAndDelete(
$path);
667 $source =
'/source/path';
668 $destination =
'/dest/path';
670 $this->filesystemMock
671 ->shouldReceive(
'has')
676 ->shouldReceive(
'move')
678 ->withArgs([$source, $destination])
681 $this->subject->rename($source, $destination);
690 $source =
'/source/path';
691 $destination =
'/dest/path';
693 $this->filesystemMock
694 ->shouldReceive(
'has')
699 ->shouldReceive(
'move')
701 ->withArgs([$source, $destination])
702 ->andThrow(UnableToRetrieveMetadata::class);
705 $this->expectExceptionMessage(
"File \"$source\" not found.");
707 $this->subject->rename($source, $destination);
716 $source =
'/source/path';
717 $destination =
'/dest/path';
719 $this->filesystemMock
720 ->shouldReceive(
'has')
725 ->shouldReceive(
'move')
727 ->withArgs([$source, $destination])
728 ->andThrow(UnableToMoveFile::class);
730 $this->expectException(IOException::class);
731 $this->expectExceptionMessage(
"File \"$destination\" already exists.");
733 $this->subject->rename($source, $destination);
742 $source =
'/source/path';
743 $destination =
'/dest/path';
745 $this->filesystemMock
746 ->shouldReceive(
'has')
751 ->shouldReceive(
'move')
753 ->withArgs([$source, $destination])
754 ->andThrow(UnableToMoveFile::class);
756 $this->expectException(IOException::class);
757 $this->expectExceptionMessage(
"Could not move file from \"$source\" to \"$destination\".");
759 $this->subject->rename($source, $destination);
768 $sourcePath =
'/path/to/your/source/file';
769 $destinationPath =
'/path/to/your/destination/file';
771 $this->filesystemMock
772 ->shouldReceive(
'has')
774 ->with($destinationPath)
777 ->shouldReceive(
'copy')
779 ->withArgs([$sourcePath, $destinationPath])
782 $this->subject->copy($sourcePath, $destinationPath);
791 $sourcePath =
'/path/to/your/source/file';
792 $destinationPath =
'/path/to/your/destination/file';
794 $this->filesystemMock
795 ->shouldReceive(
'has')
797 ->with($destinationPath)
800 ->shouldReceive(
'copy')
802 ->withArgs([$sourcePath, $destinationPath])
803 ->andThrow(UnableToCopyFile::class);
805 $this->expectException(IOException::class);
806 $this->expectExceptionMessage(
807 "Could not copy file \"$sourcePath\" to destination \"$destinationPath\" because a general IO error occurred. Please check that your destination is writable." 810 $this->subject->copy($sourcePath, $destinationPath);
819 $sourcePath =
'/path/to/your/source/file';
820 $destinationPath =
'/path/to/your/destination/file';
822 $this->filesystemMock
823 ->shouldReceive(
'has')
825 ->with($destinationPath)
828 ->shouldReceive(
'copy')
830 ->withArgs([$sourcePath, $destinationPath])
831 ->andThrow(UnableToRetrieveMetadata::class);
834 $this->expectExceptionMessage(
"File source \"$sourcePath\" was not found copy failed.");
836 $this->subject->copy($sourcePath, $destinationPath);
845 $sourcePath =
'/path/to/your/source/file';
846 $destinationPath =
'/path/to/your/destination/file';
848 $this->filesystemMock
849 ->shouldReceive(
'has')
851 ->with($destinationPath)
854 ->shouldReceive(
'copy')
856 ->withArgs([$sourcePath, $destinationPath])
857 ->andThrow(UnableToCopyFile::class);
859 $this->expectException(FileAlreadyExistsException::class);
860 $this->expectExceptionMessage(
"File \"$destinationPath\" already exists.");
862 $this->subject->copy($sourcePath, $destinationPath);
testGetTimestampWhichShouldSucceed()
testUpdateWithAdapterErrorWhichShouldFail()
testGetMimeTypeWhichShouldSucceed()
testSetVisibilityWithInvalidAccessModifierWhichShouldFail()
testWriteWhichShouldSucceed()
testGetVisibilityWithMissingFileWhichShouldFail()
testRenameWithGeneralErrorWhichShouldFail()
Class ChatMainBarProvider .
This class provides the data size with additional information to remove the work to calculate the siz...
Fly system file access implementation.
setUp()
Sets up the fixture, for example, open a network connection.
testGetSizeWhichShouldSucceed()
testGetTimestampWithMissingFileWhichShouldFail()
testDeleteWithMissingFileWhichShouldFail()
testPutContentExistingFile()
testCopyWhichShouldSucceed()
testGetSizeWithUnknownAdapterErrorWhichShouldFail()
League Flysystem Filesystem Mockery MockInterface $filesystemMock
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
testCopyWithMissingFileWhichShouldFail()
testReadWithGeneralFileAccessErrorWhichShouldFail()
testReadWhichShouldSucceed()
testCopyWithAdapterErrorWhichShouldFail()
testUpdateWithMissingFileWhichShouldFail()
testGetMimeTypeWithMissingFileWhichShouldFail()
testPutContentNonExistingFile()
testRenameWithExistingDestinationWhichShouldFail()
testDeleteWhichShouldSucceed()
testRenameWithMissingSourceWhichShouldFail()
testWriteWithAdapterErrorWhichShouldFail()
testCopyWithExistingDestinationFileWhichShouldFail()
testSetVisibilityThatFailedDueToAdapterFailureWhichShouldFail()
ILIAS Filesystem Provider FlySystem FlySystemFileAccess $subject
testGetVisibilityWhichShouldSucceed()
Mockery LegacyMockInterface $adapterMock
testGetTimestampWithUnknownErrorWhichShouldFail()
foreach($mandatory_scripts as $file) $timestamp
testUpdateWhichShouldSucceed()
testGetMimeTypeWithUnknownMimeTypeWhichShouldFail()
testReadWithMissingFileWhichShouldFail()
testSetVisibilityWhichShouldSucceed()
testGetVisibilityWithAdapterErrorWhichShouldFail()
testWriteWithAlreadyExistingFileWhichShouldFail()
testSetVisibilityWithMissingFileWhichShouldFail()
testReadAndDeleteWhichShouldSucceed()
Maybe a useless test.
testGetSizeWithMissingFileWhichShouldFail()
testRenameWhichShouldSucceed()
testDeleteWithAdapterErrorWhichShouldFail()