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);