diff --git a/src/Clue/Redis/Protocol/Model/MultiBulkReply.php b/src/Clue/Redis/Protocol/Model/MultiBulkReply.php index 7198dc6..0ec4ed6 100644 --- a/src/Clue/Redis/Protocol/Model/MultiBulkReply.php +++ b/src/Clue/Redis/Protocol/Model/MultiBulkReply.php @@ -19,8 +19,11 @@ class MultiBulkReply implements ModelInterface * @param array|null $data * @throws InvalidArgumentException */ - public function __construct(array $data = null) + public function __construct($data = null) { + if ($data !== null && !is_array($data)) { // manual type check to support legacy PHP < 7.1 + throw new InvalidArgumentException('Argument #1 ($data) expected array|null'); + } $this->data = $data; } diff --git a/tests/Model/MultiBulkReplyTest.php b/tests/Model/MultiBulkReplyTest.php index ff4a0c3..2c36bc8 100644 --- a/tests/Model/MultiBulkReplyTest.php +++ b/tests/Model/MultiBulkReplyTest.php @@ -11,6 +11,12 @@ protected function createModel($value) return new MultiBulkReply($value); } + public function testConstructWithInvalidDataThrows() + { + $this->setExpectedException('InvalidArgumentException', 'Argument #1 ($data) expected array|null'); + new MultiBulkReply('data'); + } + public function testEmptyArray() { $model = $this->createModel(array());