From 56e909b2b1098b0f4d7326d90df27a146ec5f40d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Fejfar?= Date: Tue, 25 Dec 2018 17:16:41 +0100 Subject: [PATCH] Fix JsonHelper --- src/JsonHelper.php | 5 +++-- src/JsonHelper/JsonHelperException.php | 11 +++++++++++ tests/JsonHelperTest.php | 9 +++++---- 3 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 src/JsonHelper/JsonHelperException.php diff --git a/src/JsonHelper.php b/src/JsonHelper.php index d04d0805..c3e20954 100644 --- a/src/JsonHelper.php +++ b/src/JsonHelper.php @@ -4,6 +4,7 @@ namespace Keboola\Component; +use Keboola\Component\JsonHelper\JsonHelperException; use Symfony\Component\Filesystem\Exception\FileNotFoundException; use Symfony\Component\Serializer\Encoder\JsonEncoder; @@ -42,13 +43,13 @@ public static function writeFile(string $filePath, array $data, bool $formatted mkdir($filePathDir, 0777, true); } - $result = file_put_contents( + $result = @file_put_contents( $filePath, self::encode($data, $formatted) ); if ($result === false) { - throw new \ErrorException('Could not write to file "%s".'); + throw new JsonHelperException(sprintf('Could not write to file "%s".', $filePath)); } } } diff --git a/src/JsonHelper/JsonHelperException.php b/src/JsonHelper/JsonHelperException.php new file mode 100644 index 00000000..c03afde6 --- /dev/null +++ b/src/JsonHelper/JsonHelperException.php @@ -0,0 +1,11 @@ +expectException(\ErrorException::class); - $this->expectExceptionMessageRegExp('~^file_put_contents(.*): failed to open stream: Permission denied$~'); + $this->expectException(JsonHelperException::class); + $this->expectExceptionMessage('Could not write to file "php://stdin".'); JsonHelper::writeFile($filePath, $array); } }