diff --git a/src/CodeGenerator/Filesystem/FilePutContentsFileWriter.php b/src/CodeGenerator/Filesystem/FilePutContentsFileWriter.php index beb97ba9..9811eaf0 100644 --- a/src/CodeGenerator/Filesystem/FilePutContentsFileWriter.php +++ b/src/CodeGenerator/Filesystem/FilePutContentsFileWriter.php @@ -4,6 +4,7 @@ namespace OnMoon\OpenApiServerBundle\CodeGenerator\Filesystem; +use function intval; use function is_dir; use function Safe\file_put_contents; use function Safe\mkdir; @@ -14,9 +15,9 @@ final class FilePutContentsFileWriter implements FileWriter { private int $dirPemissions; - public function __construct(int $dirPemissions) + public function __construct(string $dirPemissions) { - $this->dirPemissions = $dirPemissions; + $this->dirPemissions = intval($dirPemissions, 8); } public function write(string $path, string $filename, string $contents): void diff --git a/test/functional/CodeGenerator/Filesystem/FilePutContentsFileWriterTest.php b/test/functional/CodeGenerator/Filesystem/FilePutContentsFileWriterTest.php index bf703e28..a0dbf7a3 100644 --- a/test/functional/CodeGenerator/Filesystem/FilePutContentsFileWriterTest.php +++ b/test/functional/CodeGenerator/Filesystem/FilePutContentsFileWriterTest.php @@ -8,6 +8,8 @@ use PHPUnit\Framework\Assert; use PHPUnit\Framework\TestCase; +use function decoct; +use function fileperms; use function Safe\file_get_contents; use function Safe\rmdir; use function Safe\unlink; @@ -26,7 +28,7 @@ public function testWriteCreatesFile(): void $fullPath = $path . DIRECTORY_SEPARATOR . $filename; $fileContent = 'Some Random Content'; - $fileWriter = new FilePutContentsFileWriter(0755); + $fileWriter = new FilePutContentsFileWriter('0755'); Assert::assertFileDoesNotExist($fullPath); Assert::assertDirectoryDoesNotExist($path); @@ -34,6 +36,10 @@ public function testWriteCreatesFile(): void $fileWriter->write($path, $filename, $fileContent); Assert::assertDirectoryExists($path); + + /** @var int $permissions */ + $permissions = fileperms($path); + Assert::assertSame('40755', decoct($permissions)); Assert::assertFileExists($fullPath); Assert::assertEquals($fileContent, file_get_contents($fullPath));