public function validate($target) { if (is_null($target) && $this->allowNull) { return []; } if (!is_array($target)) { throw new InvalidDataTypeException("Target is not an array!"); } $result = []; foreach ($target as $k => $item) { try { $result[$k] = $this->elementValidator->validate($item); } catch (InvalidDataTypeException $e) { throw new InvalidArrayElementException(sprintf('Invalid element in array for index %s, reason = %s', $k, $e->getMessage())); } } return $result; }
/** * @dataProvider getInvalidInputForSpecificValidator * * @param $target * @param ValidatorInterface $validator */ public function testSpecificValidatorWithInvalidInput($target, $validator) { self::setExpectedException(InvalidDataTypeException::class); self::assertTrue(is_array($validator->validate($target))); }