diff --git a/src/Utils/Tempfile/TemporaryFile.php b/src/Utils/Tempfile/TemporaryFile.php index 6f5d7a0..eec9481 100644 --- a/src/Utils/Tempfile/TemporaryFile.php +++ b/src/Utils/Tempfile/TemporaryFile.php @@ -10,6 +10,7 @@ namespace Nekland\Utils\Tempfile; +use Nekland\Utils\Exception\LogicException; use Nekland\Utils\Exception\RuntimeException; use Nekland\Utils\Tempfile\Exception\CannotCreateFileException; use Nekland\Utils\Tempfile\Exception\ImpossibleToUpdateFileException; @@ -89,6 +90,10 @@ public function hasBeenRemoved() */ public function getContent() { + if ($this->removed) { + throw new LogicException('The file has been removed definitely and cannot be accessed anymore'); + } + $content = \file_get_contents($this->file); if ($content === false) { diff --git a/tests/Nekland/Utils/Tempfile/TemporaryFileTest.php b/tests/Nekland/Utils/Tempfile/TemporaryFileTest.php index a1d038e..7878642 100644 --- a/tests/Nekland/Utils/Tempfile/TemporaryFileTest.php +++ b/tests/Nekland/Utils/Tempfile/TemporaryFileTest.php @@ -2,6 +2,7 @@ namespace Nekland\Utils\Test\Tempfile; +use Nekland\Utils\Exception\LogicException; use Nekland\Utils\Tempfile\TemporaryFile; use PHPUnit\Framework\TestCase; @@ -27,4 +28,13 @@ public function testItSetContentsAndRetrieveIt() $file->setContent('foobar'); $this->assertEquals('foobar', $file->getContent()); } + + public function testItCannotGetContentOfRemovedFile() + { + $this->expectException(LogicException::class); + $file = new TemporaryFile(); + $file->setContent('hello'); + $file->remove(); + $file->getContent(); + } }