Files
michaelschiemer/tests/Framework/Filesystem/FileStorageTest.php
Michael Schiemer 55a330b223 Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
2025-08-11 20:13:26 +02:00

71 lines
2.1 KiB
PHP

<?php
declare(strict_types=1);
namespace Tests\Framework\Filesystem;
use App\Framework\Filesystem\Exceptions\FileNotFoundException;
use App\Framework\Filesystem\FileStorage;
use App\Framework\Filesystem\InMemoryStorage;
test('speichert und lädt Dateien', function () {
$tempFile = tempnam(sys_get_temp_dir(), 'test_');
$content = 'Testinhalt ' . uniqid();
$storage = new FileStorage();
$storage->put($tempFile, $content);
expect($storage->exists($tempFile))->toBeTrue();
expect($storage->get($tempFile))->toBe($content);
expect($storage->size($tempFile))->toBe(strlen($content));
// Aufräumen
$storage->delete($tempFile);
expect($storage->exists($tempFile))->toBeFalse();
});
test('wirft Exception bei nicht existierender Datei', function () {
$storage = new FileStorage();
$nonExistingFile = '/tmp/doesnt_exist_' . uniqid();
expect(fn () => $storage->get($nonExistingFile))
->toThrow(FileNotFoundException::class);
});
test('kopiert Dateien', function () {
$tempFile = tempnam(sys_get_temp_dir(), 'src_');
$destFile = tempnam(sys_get_temp_dir(), 'dest_');
unlink($destFile); // Löschen, damit copy funktioniert
$content = 'Kopierinhalt ' . uniqid();
$storage = new FileStorage();
$storage->put($tempFile, $content);
$storage->copy($tempFile, $destFile);
expect($storage->exists($destFile))->toBeTrue();
expect($storage->get($destFile))->toBe($content);
// Aufräumen
$storage->delete($tempFile);
$storage->delete($destFile);
});
test('InMemoryStorage funktioniert wie FileStorage', function () {
$storage = new InMemoryStorage();
$path = '/virtual/test.txt';
$content = 'Virtueller Inhalt';
$storage->put($path, $content);
expect($storage->exists($path))->toBeTrue();
expect($storage->get($path))->toBe($content);
expect($storage->size($path))->toBe(strlen($content));
$copyPath = '/virtual/copy.txt';
$storage->copy($path, $copyPath);
expect($storage->get($copyPath))->toBe($content);
$storage->delete($path);
expect($storage->exists($path))->toBeFalse();
});