diff --git a/tests/Util/TemporaryFileTest.php b/tests/Util/TemporaryFileTest.php new file mode 100644 index 0000000000..17ec2a8baa --- /dev/null +++ b/tests/Util/TemporaryFileTest.php @@ -0,0 +1,48 @@ +. +// }}} + +namespace App\Tests\Util; + +use App\Util\Exception\TemporaryFileException; +use App\Util\TemporaryFile; +use Jchook\AssertThrows\AssertThrows; +use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; + +class TemporaryFileTest extends WebTestCase +{ + use AssertThrows; + + public function testRegular() + { + $temp = new TemporaryFile(); + static::assertNotNull($temp->getResource()); + $filename = uniqid(sys_get_temp_dir() . '/'); + $temp->commit($filename); + static::assertTrue(file_exists($filename)); + @unlink($filename); + } + + public function testError() + { + $temp = new TemporaryFile(); + $filename = $temp->getRealPath(); + static::assertThrows(TemporaryFileException::class, fn () => $temp->commit($filename)); + static::assertThrows(TemporaryFileException::class, fn () => $temp->commit('/root/cannot_write_here')); + } +}