makeTempDir(\Steuerkram\Config::get('upload_dir') . '/test_49_unlink_fail'); $file = $dir . '/original.pdf'; file_put_contents($file, 'dummy'); // Schreibschutz auf das Verzeichnis: unlink() der Datei schlägt fehl (Permission denied), // genau wie im gemeldeten Fehler auf dem Produktiv-Server. chmod($dir, 0500); try { $id = Beleg::create([ 'beleg_nr' => 'BLG-TEST-49', 'filename' => 'original.pdf', 'storage_path' => 'test_49_unlink_fail/original.pdf', 'mime_type' => 'application/pdf', 'file_hash' => 'testhash49', 'beleg_datum' => '2026-01-01', ]); $this->assertGreaterThan(0, $id, 'Beleg angelegt'); $result = Beleg::delete($id); $this->assert($result === true, 'delete() liefert true, obwohl unlink() fehlschlägt'); $this->assert(Beleg::find($id) === false, 'Beleg-Datensatz wurde trotz Datei-Fehler aus der DB gelöscht'); } finally { // Der Schreibschutz muss weg, bevor tearDown() das Verzeichnis abräumt chmod($dir, 0755); } } }