diff --git a/backend/tests/Fakes/FakeFileUploader.php b/backend/tests/Fakes/FakeFilesystem.php similarity index 57% rename from backend/tests/Fakes/FakeFileUploader.php rename to backend/tests/Fakes/FakeFilesystem.php index 9273887..57ff059 100644 --- a/backend/tests/Fakes/FakeFileUploader.php +++ b/backend/tests/Fakes/FakeFilesystem.php @@ -3,9 +3,9 @@ namespace Tests\Fakes; use App\Shared\Files\FileToUpload; -use App\Shared\Files\FileUploader; +use App\Shared\Files\Filesystem; -class FakeFileUploader implements FileUploader +class FakeFilesystem implements Filesystem { /** * @var array @@ -17,6 +17,16 @@ class FakeFileUploader implements FileUploader */ public array $deletedPaths = []; + /** + * @var string[] + */ + public array $readPaths = []; + + /** + * @var array + */ + private array $filesByPath = []; + public function upload(FileToUpload $file, string $folder): string { $this->uploads[] = ['file' => $file, 'folder' => $folder]; @@ -33,4 +43,16 @@ class FakeFileUploader implements FileUploader { $this->deletedPaths[] = $path; } + + public function put(string $path, string $contents): void + { + $this->filesByPath[$path] = $contents; + } + + public function read(string $path): ?string + { + $this->readPaths[] = $path; + + return $this->filesByPath[$path] ?? null; + } } diff --git a/backend/tests/Fakes/FakeStoredFileReader.php b/backend/tests/Fakes/FakeStoredFileReader.php deleted file mode 100644 index cfe377f..0000000 --- a/backend/tests/Fakes/FakeStoredFileReader.php +++ /dev/null @@ -1,30 +0,0 @@ - - */ - private array $filesByPath = []; - - /** - * @var string[] - */ - public array $readPaths = []; - - public function put(string $path, string $contents): void - { - $this->filesByPath[$path] = $contents; - } - - public function read(string $path): ?string - { - $this->readPaths[] = $path; - - return $this->filesByPath[$path] ?? null; - } -} diff --git a/backend/tests/Unit/Controllers/ElementControllerTest.php b/backend/tests/Unit/Controllers/ElementControllerTest.php index 99c3a1c..ca25498 100644 --- a/backend/tests/Unit/Controllers/ElementControllerTest.php +++ b/backend/tests/Unit/Controllers/ElementControllerTest.php @@ -25,8 +25,7 @@ use App\Set\Set as DomainSet; use Illuminate\Http\Request; use Illuminate\Http\UploadedFile; use Tests\Fakes\FakeElementRepository; -use Tests\Fakes\FakeFileUploader; -use Tests\Fakes\FakeStoredFileReader; +use Tests\Fakes\FakeFilesystem; use Tests\TestCase; class ElementControllerTest extends TestCase @@ -35,46 +34,43 @@ class ElementControllerTest extends TestCase private FakeElementRepository $elementRepo; - private FakeFileUploader $fileUploader; - - private FakeStoredFileReader $storedFileReader; + private FakeFilesystem $filesystem; protected function setUp(): void { $this->elementRepo = new FakeElementRepository(); - $this->fileUploader = new FakeFileUploader(); - $this->storedFileReader = new FakeStoredFileReader(); + $this->filesystem = new FakeFilesystem(); $getElement = new GetElement($this->elementRepo); $updateElement = new UpdateElement( new UpdateTitle($this->elementRepo), new UpdateDescription($this->elementRepo), - new UpdateIconImageUrl($this->elementRepo, $this->fileUploader), + new UpdateIconImageUrl($this->elementRepo, $this->filesystem), new UpdateRichText($this->elementRepo), - new UpdateShortPdfPath($this->elementRepo, $this->fileUploader), - new UpdateLongPdfPath($this->elementRepo, $this->fileUploader), + new UpdateShortPdfPath($this->elementRepo, $this->filesystem), + new UpdateLongPdfPath($this->elementRepo, $this->filesystem), new UpdateYoutubeUrl($this->elementRepo), new UpdateIconImage( $this->elementRepo, - $this->fileUploader, + $this->filesystem, ), new UpdateShortPdf( $this->elementRepo, - $this->fileUploader, + $this->filesystem, ), new UpdateLongPdf( $this->elementRepo, - $this->fileUploader, + $this->filesystem, ), $this->elementRepo, ); $this->controller = new ElementController( $getElement, new CreateChildElement($this->elementRepo), - new DeleteChildElement($this->elementRepo, $this->fileUploader), + new DeleteChildElement($this->elementRepo, $this->filesystem), new ReorderChildElements($this->elementRepo), $updateElement, - new GetElementPdf($this->storedFileReader), - $this->fileUploader, + new GetElementPdf($this->filesystem), + $this->filesystem, ); } @@ -252,7 +248,7 @@ class ElementControllerTest extends TestCase public function testShowPdfReturnsPdfResponse(): void { - $this->storedFileReader->put( + $this->filesystem->put( 'element-pdfs/short/baderech.pdf', 'pdf-bytes', ); @@ -311,7 +307,7 @@ class ElementControllerTest extends TestCase ); $this->assertSame( 'element-icons', - $this->fileUploader->uploads[0]['folder'], + $this->filesystem->uploads[0]['folder'], ); } @@ -345,7 +341,7 @@ class ElementControllerTest extends TestCase $this->assertArrayNotHasKey('pdfPath', $body['element']); $this->assertSame( 'element-pdfs/short', - $this->fileUploader->uploads[0]['folder'], + $this->filesystem->uploads[0]['folder'], ); } @@ -378,7 +374,7 @@ class ElementControllerTest extends TestCase ); $this->assertSame( 'element-pdfs/long', - $this->fileUploader->uploads[0]['folder'], + $this->filesystem->uploads[0]['folder'], ); } diff --git a/backend/tests/Unit/Element/UseCases/DeleteChildElementTest.php b/backend/tests/Unit/Element/UseCases/DeleteChildElementTest.php index bac9af2..c7f47e6 100644 --- a/backend/tests/Unit/Element/UseCases/DeleteChildElementTest.php +++ b/backend/tests/Unit/Element/UseCases/DeleteChildElementTest.php @@ -10,21 +10,21 @@ use App\Exceptions\BadRequestException; use App\Exceptions\NotFoundException; use App\Set\Set as DomainSet; use Tests\Fakes\FakeElementRepository; -use Tests\Fakes\FakeFileUploader; +use Tests\Fakes\FakeFilesystem; use Tests\TestCase; class DeleteChildElementTest extends TestCase { private FakeElementRepository $elementRepository; - private FakeFileUploader $fileUploader; + private FakeFilesystem $fileUploader; private DeleteChildElement $deleteChildElement; protected function setUp(): void { $this->elementRepository = new FakeElementRepository(); - $this->fileUploader = new FakeFileUploader(); + $this->fileUploader = new FakeFilesystem(); $this->deleteChildElement = new DeleteChildElement( $this->elementRepository, $this->fileUploader, diff --git a/backend/tests/Unit/Element/UseCases/GetElementPdfTest.php b/backend/tests/Unit/Element/UseCases/GetElementPdfTest.php index bd7c0ee..a8abd59 100644 --- a/backend/tests/Unit/Element/UseCases/GetElementPdfTest.php +++ b/backend/tests/Unit/Element/UseCases/GetElementPdfTest.php @@ -5,24 +5,24 @@ namespace Tests\Unit\Element\UseCases; use App\Element\UseCases\GetElementPdf\GetElementPdf; use App\Element\UseCases\GetElementPdf\GetElementPdfRequest; use App\Exceptions\NotFoundException; -use Tests\Fakes\FakeStoredFileReader; +use Tests\Fakes\FakeFilesystem; use Tests\TestCase; class GetElementPdfTest extends TestCase { - private FakeStoredFileReader $storedFileReader; + private FakeFilesystem $filesystem; private GetElementPdf $useCase; protected function setUp(): void { - $this->storedFileReader = new FakeStoredFileReader(); - $this->useCase = new GetElementPdf($this->storedFileReader); + $this->filesystem = new FakeFilesystem(); + $this->useCase = new GetElementPdf($this->filesystem); } public function testReturnsShortPdfFile(): void { - $this->storedFileReader->put( + $this->filesystem->put( 'element-pdfs/short/baderech.pdf', 'short-pdf-bytes', ); @@ -37,13 +37,13 @@ class GetElementPdfTest extends TestCase $this->assertSame('application/pdf', $result->getMimeType()); $this->assertSame( ['element-pdfs/short/baderech.pdf'], - $this->storedFileReader->readPaths, + $this->filesystem->readPaths, ); } public function testReturnsLongPdfFile(): void { - $this->storedFileReader->put( + $this->filesystem->put( 'element-pdfs/long/baderech-long.pdf', 'long-pdf-bytes', ); @@ -58,7 +58,7 @@ class GetElementPdfTest extends TestCase $this->assertSame('application/pdf', $result->getMimeType()); $this->assertSame( ['element-pdfs/long/baderech-long.pdf'], - $this->storedFileReader->readPaths, + $this->filesystem->readPaths, ); } diff --git a/backend/tests/Unit/Element/UseCases/UpdateElementFieldsTest.php b/backend/tests/Unit/Element/UseCases/UpdateElementFieldsTest.php index 1d83906..7382f8b 100644 --- a/backend/tests/Unit/Element/UseCases/UpdateElementFieldsTest.php +++ b/backend/tests/Unit/Element/UseCases/UpdateElementFieldsTest.php @@ -21,19 +21,19 @@ use App\Element\UseCases\UpdateElement\UpdateYoutubeUrlRequest; use App\Exceptions\BadRequestException; use App\Set\Set as DomainSet; use Tests\Fakes\FakeElementRepository; -use Tests\Fakes\FakeFileUploader; +use Tests\Fakes\FakeFilesystem; use Tests\TestCase; class UpdateElementFieldsTest extends TestCase { private FakeElementRepository $elementRepo; - private FakeFileUploader $fileUploader; + private FakeFilesystem $fileUploader; protected function setUp(): void { $this->elementRepo = new FakeElementRepository(); - $this->fileUploader = new FakeFileUploader(); + $this->fileUploader = new FakeFilesystem(); } public function testUpdateTitleUpdatesOnlyTitle(): void diff --git a/backend/tests/Unit/Element/UseCases/UpdateElementTest.php b/backend/tests/Unit/Element/UseCases/UpdateElementTest.php index 6804e7a..16e1579 100644 --- a/backend/tests/Unit/Element/UseCases/UpdateElementTest.php +++ b/backend/tests/Unit/Element/UseCases/UpdateElementTest.php @@ -20,21 +20,21 @@ use App\Exceptions\BadRequestException; use App\Exceptions\NotFoundException; use App\Set\Set as DomainSet; use Tests\Fakes\FakeElementRepository; -use Tests\Fakes\FakeFileUploader; +use Tests\Fakes\FakeFilesystem; use Tests\TestCase; class UpdateElementTest extends TestCase { private FakeElementRepository $elementRepo; - private FakeFileUploader $fileUploader; + private FakeFilesystem $fileUploader; private UpdateElement $updateElement; protected function setUp(): void { $this->elementRepo = new FakeElementRepository(); - $this->fileUploader = new FakeFileUploader(); + $this->fileUploader = new FakeFilesystem(); $this->updateElement = new UpdateElement( new UpdateTitle($this->elementRepo), new UpdateDescription($this->elementRepo), diff --git a/backend/tests/Unit/Element/UseCases/UpdateIconImageTest.php b/backend/tests/Unit/Element/UseCases/UpdateIconImageTest.php index 2aef04a..43cb115 100644 --- a/backend/tests/Unit/Element/UseCases/UpdateIconImageTest.php +++ b/backend/tests/Unit/Element/UseCases/UpdateIconImageTest.php @@ -10,21 +10,21 @@ use App\Exceptions\BadRequestException; use App\Exceptions\NotFoundException; use App\Set\Set as DomainSet; use Tests\Fakes\FakeElementRepository; -use Tests\Fakes\FakeFileUploader; +use Tests\Fakes\FakeFilesystem; use Tests\TestCase; class UpdateIconImageTest extends TestCase { private FakeElementRepository $elementRepository; - private FakeFileUploader $fileUploader; + private FakeFilesystem $fileUploader; private UpdateIconImage $useCase; protected function setUp(): void { $this->elementRepository = new FakeElementRepository(); - $this->fileUploader = new FakeFileUploader(); + $this->fileUploader = new FakeFilesystem(); $this->useCase = new UpdateIconImage( $this->elementRepository, $this->fileUploader, diff --git a/backend/tests/Unit/Element/UseCases/UpdateLongPdfTest.php b/backend/tests/Unit/Element/UseCases/UpdateLongPdfTest.php index ba34617..deaecac 100644 --- a/backend/tests/Unit/Element/UseCases/UpdateLongPdfTest.php +++ b/backend/tests/Unit/Element/UseCases/UpdateLongPdfTest.php @@ -9,21 +9,21 @@ use App\Element\UseCases\UpdateElement\UpdateLongPdfRequest; use App\Exceptions\BadRequestException; use App\Set\Set as DomainSet; use Tests\Fakes\FakeElementRepository; -use Tests\Fakes\FakeFileUploader; +use Tests\Fakes\FakeFilesystem; use Tests\TestCase; class UpdateLongPdfTest extends TestCase { private FakeElementRepository $elementRepository; - private FakeFileUploader $fileUploader; + private FakeFilesystem $fileUploader; private UpdateLongPdf $useCase; protected function setUp(): void { $this->elementRepository = new FakeElementRepository(); - $this->fileUploader = new FakeFileUploader(); + $this->fileUploader = new FakeFilesystem(); $this->useCase = new UpdateLongPdf( $this->elementRepository, $this->fileUploader, diff --git a/backend/tests/Unit/Element/UseCases/UpdateShortPdfTest.php b/backend/tests/Unit/Element/UseCases/UpdateShortPdfTest.php index 9cea03a..6b48ab0 100644 --- a/backend/tests/Unit/Element/UseCases/UpdateShortPdfTest.php +++ b/backend/tests/Unit/Element/UseCases/UpdateShortPdfTest.php @@ -10,21 +10,21 @@ use App\Exceptions\BadRequestException; use App\Exceptions\NotFoundException; use App\Set\Set as DomainSet; use Tests\Fakes\FakeElementRepository; -use Tests\Fakes\FakeFileUploader; +use Tests\Fakes\FakeFilesystem; use Tests\TestCase; class UpdateShortPdfTest extends TestCase { private FakeElementRepository $elementRepository; - private FakeFileUploader $fileUploader; + private FakeFilesystem $fileUploader; private UpdateShortPdf $useCase; protected function setUp(): void { $this->elementRepository = new FakeElementRepository(); - $this->fileUploader = new FakeFileUploader(); + $this->fileUploader = new FakeFilesystem(); $this->useCase = new UpdateShortPdf( $this->elementRepository, $this->fileUploader,