|
|
@@ -9,14 +9,14 @@ use App\Entity\Person\Person;
|
|
|
use App\Enum\Core\FileStatusEnum;
|
|
|
use App\Enum\Core\FileTypeEnum;
|
|
|
use App\Repository\Access\AccessRepository;
|
|
|
-use App\Service\Storage\FileStorage;
|
|
|
+use App\Service\Storage\LocalStorage;
|
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
|
use Gaufrette\Filesystem;
|
|
|
use JetBrains\PhpStorm\Pure;
|
|
|
use Knp\Bundle\GaufretteBundle\FilesystemMap;
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
|
|
-class TestableFileStorage extends FileStorage {
|
|
|
+class TestableLocalStorage extends LocalStorage {
|
|
|
public const FS_KEY = parent::FS_KEY;
|
|
|
|
|
|
public function getPrefix(mixed $owner, bool $isTemporary, string $type = null): string {
|
|
|
@@ -44,11 +44,11 @@ class FileStorageTest extends TestCase
|
|
|
$this->iriConverter = $this->getMockBuilder(IriConverterInterface::class)->disableOriginalConstructor()->getMock();
|
|
|
|
|
|
$this->filesystem = $this->getMockBuilder(Filesystem::class)->disableOriginalConstructor()->getMock();
|
|
|
- $this->filesystemMap->method('get')->with(TestableFileStorage::FS_KEY)->willReturn($this->filesystem);
|
|
|
+ $this->filesystemMap->method('get')->with(TestableLocalStorage::FS_KEY)->willReturn($this->filesystem);
|
|
|
}
|
|
|
|
|
|
public function testExists(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['exists'])
|
|
|
->getMock();
|
|
|
@@ -62,7 +62,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testExistsInexistant(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['exists'])
|
|
|
->getMock();
|
|
|
@@ -77,7 +77,7 @@ class FileStorageTest extends TestCase
|
|
|
|
|
|
public function testGetDownloadIri(): void
|
|
|
{
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['getDownloadIri'])
|
|
|
->getMock();
|
|
|
@@ -99,7 +99,7 @@ class FileStorageTest extends TestCase
|
|
|
|
|
|
public function testListByOwner(): void
|
|
|
{
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['listByOwner'])
|
|
|
->getMock();
|
|
|
@@ -118,7 +118,7 @@ class FileStorageTest extends TestCase
|
|
|
|
|
|
public function testRead(): void
|
|
|
{
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['read'])
|
|
|
->getMock();
|
|
|
@@ -136,7 +136,7 @@ class FileStorageTest extends TestCase
|
|
|
|
|
|
public function testPrepareFile(): void
|
|
|
{
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['prepareFile'])
|
|
|
->getMock();
|
|
|
@@ -174,7 +174,7 @@ class FileStorageTest extends TestCase
|
|
|
|
|
|
public function testPrepareFileDefaultValues(): void
|
|
|
{
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['prepareFile'])
|
|
|
->getMock();
|
|
|
@@ -200,7 +200,7 @@ class FileStorageTest extends TestCase
|
|
|
|
|
|
public function testPrepareFileNoFlush(): void
|
|
|
{
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['prepareFile'])
|
|
|
->getMock();
|
|
|
@@ -226,7 +226,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testWriteFileNewFile(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['writeFile'])
|
|
|
->getMock();
|
|
|
@@ -277,7 +277,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testWriteFileExistingFile(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['writeFile'])
|
|
|
->getMock();
|
|
|
@@ -327,7 +327,7 @@ class FileStorageTest extends TestCase
|
|
|
|
|
|
public function testWriteFileExistingButMissingFile(): void
|
|
|
{
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['writeFile'])
|
|
|
->getMock();
|
|
|
@@ -357,7 +357,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testWriteFileWithAccessOwner(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['writeFile'])
|
|
|
->getMock();
|
|
|
@@ -398,7 +398,7 @@ class FileStorageTest extends TestCase
|
|
|
|
|
|
public function testWriteFileWithNoName(): void
|
|
|
{
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['writeFile'])
|
|
|
->getMock();
|
|
|
@@ -415,7 +415,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testMakeFile(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['makeFile'])
|
|
|
->getMock();
|
|
|
@@ -448,7 +448,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testDelete(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['delete'])
|
|
|
->getMock();
|
|
|
@@ -471,7 +471,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testDeleteFailed(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['delete'])
|
|
|
->getMock();
|
|
|
@@ -495,7 +495,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testGetPrefixAccess(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
@@ -513,7 +513,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testGetPrefixOrganization(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
@@ -527,7 +527,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testGetPrefixPerson(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
@@ -541,7 +541,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testGetPrefixTemp(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
@@ -555,7 +555,7 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testGetPrefixWithType(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
@@ -569,30 +569,30 @@ class FileStorageTest extends TestCase
|
|
|
}
|
|
|
|
|
|
public function testGuessMimeTypeFromFilename(): void {
|
|
|
- $this->assertEquals('application/pdf', TestableFileStorage::guessMimeTypeFromFilename('file.pdf'));
|
|
|
- $this->assertEquals('text/csv', TestableFileStorage::guessMimeTypeFromFilename('file.csv'));
|
|
|
- $this->assertEquals('text/plain', TestableFileStorage::guessMimeTypeFromFilename('file.txt'));
|
|
|
- $this->assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', TestableFileStorage::guessMimeTypeFromFilename('file.xlsx'));
|
|
|
- $this->assertEquals('application/xml', TestableFileStorage::guessMimeTypeFromFilename('file.xml'));
|
|
|
-
|
|
|
- $this->assertEquals(null, TestableFileStorage::guessMimeTypeFromFilename('file'));
|
|
|
- $this->assertEquals(null, TestableFileStorage::guessMimeTypeFromFilename('file.invalid'));
|
|
|
+ $this->assertEquals('application/pdf', TestableLocalStorage::guessMimeTypeFromFilename('file.pdf'));
|
|
|
+ $this->assertEquals('text/csv', TestableLocalStorage::guessMimeTypeFromFilename('file.csv'));
|
|
|
+ $this->assertEquals('text/plain', TestableLocalStorage::guessMimeTypeFromFilename('file.txt'));
|
|
|
+ $this->assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', TestableLocalStorage::guessMimeTypeFromFilename('file.xlsx'));
|
|
|
+ $this->assertEquals('application/xml', TestableLocalStorage::guessMimeTypeFromFilename('file.xml'));
|
|
|
+
|
|
|
+ $this->assertEquals(null, TestableLocalStorage::guessMimeTypeFromFilename('file'));
|
|
|
+ $this->assertEquals(null, TestableLocalStorage::guessMimeTypeFromFilename('file.invalid'));
|
|
|
}
|
|
|
|
|
|
public function testGuessMimeTypeFromExt(): void {
|
|
|
- $this->assertEquals('application/pdf', TestableFileStorage::getMimeTypeFromExt('pdf'));
|
|
|
- $this->assertEquals('text/csv', TestableFileStorage::getMimeTypeFromExt('csv'));
|
|
|
- $this->assertEquals('text/plain', TestableFileStorage::getMimeTypeFromExt('txt'));
|
|
|
- $this->assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', TestableFileStorage::getMimeTypeFromExt('xlsx'));
|
|
|
- $this->assertEquals('application/xml', TestableFileStorage::getMimeTypeFromExt('xml'));
|
|
|
-
|
|
|
- $this->assertEquals('text/plain', TestableFileStorage::getMimeTypeFromExt('.txt'));
|
|
|
- $this->assertEquals(null, TestableFileStorage::getMimeTypeFromExt(''));
|
|
|
- $this->assertEquals(null, TestableFileStorage::getMimeTypeFromExt('invalid'));
|
|
|
+ $this->assertEquals('application/pdf', TestableLocalStorage::getMimeTypeFromExt('pdf'));
|
|
|
+ $this->assertEquals('text/csv', TestableLocalStorage::getMimeTypeFromExt('csv'));
|
|
|
+ $this->assertEquals('text/plain', TestableLocalStorage::getMimeTypeFromExt('txt'));
|
|
|
+ $this->assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', TestableLocalStorage::getMimeTypeFromExt('xlsx'));
|
|
|
+ $this->assertEquals('application/xml', TestableLocalStorage::getMimeTypeFromExt('xml'));
|
|
|
+
|
|
|
+ $this->assertEquals('text/plain', TestableLocalStorage::getMimeTypeFromExt('.txt'));
|
|
|
+ $this->assertEquals(null, TestableLocalStorage::getMimeTypeFromExt(''));
|
|
|
+ $this->assertEquals(null, TestableLocalStorage::getMimeTypeFromExt('invalid'));
|
|
|
}
|
|
|
|
|
|
public function testGetOrganizationAndPersonFromOwner(): void {
|
|
|
- $fileStorage = $this->getMockBuilder(TestableFileStorage::class)
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
->setMethodsExcept(['getOrganizationAndPersonFromOwner'])
|
|
|
->getMock();
|