From d8d33ff6c833a51e0390e282d85e24b6a1179749 Mon Sep 17 00:00:00 2001 From: Greg Bowler Date: Thu, 25 Apr 2024 11:42:42 +0100 Subject: [PATCH] feature: make getFile consistently nullable closes #287 --- src/InputValueGetter.php | 12 ++++++++---- test/phpunit/InputTest.php | 6 ++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/InputValueGetter.php b/src/InputValueGetter.php index e590fbe..9366cd5 100644 --- a/src/InputValueGetter.php +++ b/src/InputValueGetter.php @@ -69,14 +69,18 @@ public function getMultipleBool(string $key):array { } - public function getFile(string $key):FileUpload { + public function getFile(string $key):?FileUpload { /** @var FileUploadInputData|InputDatum[] $params */ $params = $this->fileUploadParameters ?? $this->parameters; - try { - /** @var MultipleInputDatum|FileUpload $file */ - $file = $params[$key]; + /** @var MultipleInputDatum|FileUpload|null $file */ + $file = $params[$key] ?? null; + if(is_null($file)) { + return null; + } + + try { if($file instanceof MultipleInputDatum) { return $file->current(); } diff --git a/test/phpunit/InputTest.php b/test/phpunit/InputTest.php index 090f4c6..c4cfc0e 100644 --- a/test/phpunit/InputTest.php +++ b/test/phpunit/InputTest.php @@ -121,6 +121,12 @@ public function testGetFileFieldSingle(array $get, array $post):void { ); } + public function testGetFile_null():void { + $input = new Input([], [], []); + $file = $input->getFile("exampleFile"); + self::assertNull($file); + } + /** @dataProvider dataRandomGetPost */ public function testGetInvalidDataType(array $get, array $post):void { self::expectException(InvalidInputMethodException::class);