|
|
@@ -2,7 +2,6 @@
|
|
|
|
|
|
namespace App\Tests\Unit\Service\File\Storage;
|
|
|
|
|
|
-use ApiPlatform\Core\Api\IriConverterInterface;
|
|
|
use App\Entity\Access\Access;
|
|
|
use App\Entity\Core\File;
|
|
|
use App\Entity\Organization\Organization;
|
|
|
@@ -11,6 +10,7 @@ use App\Enum\Core\FileStatusEnum;
|
|
|
use App\Enum\Core\FileTypeEnum;
|
|
|
use App\Repository\Access\AccessRepository;
|
|
|
use App\Service\File\Storage\LocalStorage;
|
|
|
+use App\Service\File\Utils\FileUtils;
|
|
|
use DateTime;
|
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
|
use Gaufrette\Filesystem;
|
|
|
@@ -37,14 +37,14 @@ class LocalStorageTest extends TestCase
|
|
|
private EntityManagerInterface $entityManager;
|
|
|
private AccessRepository $accessRepository;
|
|
|
private Filesystem $filesystem;
|
|
|
- private IriConverterInterface $iriConverter;
|
|
|
+ private FileUtils $imageUtils;
|
|
|
|
|
|
public function setUp(): void
|
|
|
{
|
|
|
$this->filesystemMap = $this->getMockBuilder(FilesystemMap::class)->disableOriginalConstructor()->getMock();
|
|
|
$this->entityManager = $this->getMockBuilder(EntityManagerInterface::class)->disableOriginalConstructor()->getMock();
|
|
|
$this->accessRepository = $this->getMockBuilder(AccessRepository::class)->disableOriginalConstructor()->getMock();
|
|
|
- $this->iriConverter = $this->getMockBuilder(IriConverterInterface::class)->disableOriginalConstructor()->getMock();
|
|
|
+ $this->imageUtils = $this->getMockBuilder(FileUtils::class)->disableOriginalConstructor()->getMock();
|
|
|
|
|
|
$this->filesystem = $this->getMockBuilder(Filesystem::class)->disableOriginalConstructor()->getMock();
|
|
|
$this->filesystemMap->method('get')->with(TestableLocalStorage::FS_KEY)->willReturn($this->filesystem);
|
|
|
@@ -55,7 +55,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testExists(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['exists'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -72,7 +72,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testExistsInexistant(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['exists'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -91,7 +91,7 @@ class LocalStorageTest extends TestCase
|
|
|
public function testListByOwner(): void
|
|
|
{
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['listByOwner'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -110,15 +110,41 @@ class LocalStorageTest extends TestCase
|
|
|
/**
|
|
|
* @see LocalStorage::read()
|
|
|
*/
|
|
|
- public function testRead(): void
|
|
|
+ public function testReadPdf(): void
|
|
|
{
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['read'])
|
|
|
->getMock();
|
|
|
|
|
|
$file = $this->getMockBuilder(File::class)->getMock();
|
|
|
$file->method('getSlug')->willReturn('foo');
|
|
|
+ $file->method('getMimeType')->willReturn('application/pdf');
|
|
|
+
|
|
|
+ $this->filesystem->method('read')->with('foo')->willReturn('12345679');
|
|
|
+
|
|
|
+ $this->assertEquals(
|
|
|
+ '12345679',
|
|
|
+ $fileStorage->read($file)
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @see LocalStorage::read()
|
|
|
+ */
|
|
|
+ public function testReadImage(): void
|
|
|
+ {
|
|
|
+ $file = $this->getMockBuilder(File::class)->getMock();
|
|
|
+ $file->method('getSlug')->willReturn('foo');
|
|
|
+ $file->method('getMimeType')->willReturn('image/jpeg');
|
|
|
+
|
|
|
+ $imageUtils = $this->imageUtils;
|
|
|
+ $imageUtils->method('formatImage')->with($file)->willReturn('12345679');
|
|
|
+
|
|
|
+ $fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $imageUtils])
|
|
|
+ ->setMethodsExcept(['read'])
|
|
|
+ ->getMock();
|
|
|
|
|
|
$this->filesystem->method('read')->with('foo')->willReturn('12345679');
|
|
|
|
|
|
@@ -134,7 +160,7 @@ class LocalStorageTest extends TestCase
|
|
|
public function testPrepareFile(): void
|
|
|
{
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['prepareFile'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -175,7 +201,7 @@ class LocalStorageTest extends TestCase
|
|
|
public function testPrepareFileDefaultValues(): void
|
|
|
{
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['prepareFile'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -204,7 +230,7 @@ class LocalStorageTest extends TestCase
|
|
|
public function testPrepareFileNoFlush(): void
|
|
|
{
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['prepareFile'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -233,7 +259,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testWriteNewFile(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['write'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -287,7 +313,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testWriteExistingFile(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['write'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -340,7 +366,7 @@ class LocalStorageTest extends TestCase
|
|
|
public function testWriteExistingButMissingFile(): void
|
|
|
{
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['write'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -373,7 +399,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testWriteWithAccessOwner(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['write'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -416,7 +442,7 @@ class LocalStorageTest extends TestCase
|
|
|
public function testWriteWithNoName(): void
|
|
|
{
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['write'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -436,7 +462,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testMakeFile(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['makeFile'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -472,7 +498,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testSoftdelete(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['softDelete'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -496,7 +522,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testHardDelete(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['hardDelete'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -513,7 +539,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testHardDeleteFailed(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['hardDelete'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -533,7 +559,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testGetPrefixAccess(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -554,7 +580,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testGetPrefixOrganization(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -571,7 +597,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testGetPrefixPerson(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -588,7 +614,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testGetPrefixTemp(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -605,7 +631,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testGetPrefixWithType(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['getPrefix'])
|
|
|
->getMock();
|
|
|
|
|
|
@@ -622,7 +648,7 @@ class LocalStorageTest extends TestCase
|
|
|
*/
|
|
|
public function testGetOrganizationAndPersonFromOwner(): void {
|
|
|
$fileStorage = $this->getMockBuilder(TestableLocalStorage::class)
|
|
|
- ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->iriConverter])
|
|
|
+ ->setConstructorArgs([$this->filesystemMap, $this->entityManager, $this->accessRepository, $this->imageUtils])
|
|
|
->setMethodsExcept(['getOrganizationAndPersonFromOwner'])
|
|
|
->getMock();
|
|
|
|