‪TYPO3CMS  ‪main
ProcessedFileTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\Test;
21 use PHPUnit\Framework\Exception;
22 use PHPUnit\Framework\MockObject\MockObject;
28 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
29 
33 final class ‪ProcessedFileTest extends UnitTestCase
34 {
35  protected bool ‪$resetSingletonInstances = true;
36 
37  protected ‪Folder&MockObject ‪$folderMock;
38 
39  protected ‪ResourceStorage&MockObject ‪$storageMock;
40 
41  protected array ‪$databaseRow = [];
42 
46  protected function ‪setUp(): void
47  {
48  parent::setUp();
49  $this->storageMock = $this->createMock(ResourceStorage::class);
50  $this->storageMock->method('getUid')->willReturn(5);
51  $this->storageMock->method('hashFile')->willReturn('');
52  $this->storageMock->method('deleteFile')->willReturn(true);
53 
54  $this->folderMock = $this->createMock(Folder::class);
55  $this->folderMock->method('getStorage')->willReturn($this->storageMock);
56 
57  $this->storageMock->method('getProcessingFolder')->willReturn($this->folderMock);
58 
59  $this->databaseRow = [
60  'uid' => '1234567',
61  'identifier' => 'dummy.txt',
62  'name' => ‪StringUtility::getUniqueId('dummy_'),
63  'storage' => $this->storageMock->getUid(),
64  'configuration' => null,
65  'originalfilesha1' => null,
66  ];
67  }
68 
69  protected function ‪getFileFixture(array $dbRow = null, ‪ResourceStorage ‪$storageMock = null): ‪File
70  {
71  return new ‪File($dbRow ?: $this->databaseRow, ‪$storageMock ?: $this->storageMock);
72  }
73 
74  protected function ‪getProcessedFileFixture(array $dbRow = null, ‪File $originalFile = null): ‪ProcessedFile
75  {
76  if ($originalFile === null) {
77  $originalFile = $this->‪getFileFixture();
78  }
79  return new ‪ProcessedFile($originalFile, 'dummy', [], $dbRow ?: $this->databaseRow);
80  }
81 
82  #[Test]
84  {
85  $processedFileObject = $this->‪getProcessedFileFixture();
86  self::assertSame($this->databaseRow, $processedFileObject->getProperties());
87  }
88 
89  #[Test]
90  public function ‪deletingProcessedFileRemovesFile(): void
91  {
92  $this->storageMock->expects(self::once())->method('deleteFile');
93  $processedDatabaseRow = ‪$this->databaseRow;
94  $processedDatabaseRow['identifier'] = 'processed_dummy.txt';
95  $processedFile = $this->‪getProcessedFileFixture($processedDatabaseRow);
96  $processedFile->delete(true);
97  }
98 
99  #[Test]
101  {
102  $this->storageMock->expects(self::never())->method('deleteFile');
103  $processedDatabaseRow = ‪$this->databaseRow;
104  $processedDatabaseRow['identifier'] = null;
105  $processedFile = $this->‪getProcessedFileFixture($processedDatabaseRow);
106  $processedFile->delete(true);
107  }
108 }
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\getFileFixture
‪getFileFixture(array $dbRow=null, ResourceStorage $storageMock=null)
Definition: ProcessedFileTest.php:69
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\$folderMock
‪Folder &MockObject $folderMock
Definition: ProcessedFileTest.php:37
‪TYPO3\CMS\Core\Tests\Unit\Resource
Definition: AbstractFileTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\propertiesOfProcessedFileAreSetFromDatabaseRow
‪propertiesOfProcessedFileAreSetFromDatabaseRow()
Definition: ProcessedFileTest.php:83
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\setUp
‪setUp()
Definition: ProcessedFileTest.php:46
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\$storageMock
‪ResourceStorage &MockObject $storageMock
Definition: ProcessedFileTest.php:39
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\$resetSingletonInstances
‪bool $resetSingletonInstances
Definition: ProcessedFileTest.php:35
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\$databaseRow
‪array $databaseRow
Definition: ProcessedFileTest.php:41
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest
Definition: ProcessedFileTest.php:34
‪TYPO3\CMS\Core\Resource\Folder
Definition: Folder.php:38
‪TYPO3\CMS\Core\Resource\File
Definition: File.php:26
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\deletingProcessedFileThatUsesOriginalFileDoesNotRemoveFile
‪deletingProcessedFileThatUsesOriginalFileDoesNotRemoveFile()
Definition: ProcessedFileTest.php:100
‪TYPO3\CMS\Core\Resource\ProcessedFile
Definition: ProcessedFile.php:47
‪TYPO3\CMS\Core\Resource\ResourceStorage
Definition: ResourceStorage.php:129
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\getProcessedFileFixture
‪getProcessedFileFixture(array $dbRow=null, File $originalFile=null)
Definition: ProcessedFileTest.php:74
‪TYPO3\CMS\Core\Tests\Unit\Resource\ProcessedFileTest\deletingProcessedFileRemovesFile
‪deletingProcessedFileRemovesFile()
Definition: ProcessedFileTest.php:90
‪TYPO3\CMS\Core\Utility\StringUtility
Definition: StringUtility.php:24
‪TYPO3\CMS\Core\Utility\StringUtility\getUniqueId
‪static getUniqueId(string $prefix='')
Definition: StringUtility.php:57