Mercurial > hg > isophonics-drupal-site
comparison vendor/webmozart/assert/src/Assert.php @ 12:7a779792577d
Update Drupal core to v8.4.5 (via Composer)
author | Chris Cannam |
---|---|
date | Fri, 23 Feb 2018 15:52:07 +0000 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
11:bfffd8d7479a | 12:7a779792577d |
---|---|
9 * file that was distributed with this source code. | 9 * file that was distributed with this source code. |
10 */ | 10 */ |
11 | 11 |
12 namespace Webmozart\Assert; | 12 namespace Webmozart\Assert; |
13 | 13 |
14 use ArrayAccess; | |
14 use BadMethodCallException; | 15 use BadMethodCallException; |
16 use Closure; | |
17 use Countable; | |
18 use Exception; | |
15 use InvalidArgumentException; | 19 use InvalidArgumentException; |
20 use Throwable; | |
16 use Traversable; | 21 use Traversable; |
17 use Exception; | |
18 use Throwable; | |
19 use Closure; | |
20 | 22 |
21 /** | 23 /** |
22 * Efficient assertions to validate the input/output of your methods. | 24 * Efficient assertions to validate the input/output of your methods. |
23 * | 25 * |
24 * @method static void nullOrString($value, $message = '') | 26 * @method static void nullOrString($value, $message = '') |
32 * @method static void nullOrObject($value, $message = '') | 34 * @method static void nullOrObject($value, $message = '') |
33 * @method static void nullOrResource($value, $type = null, $message = '') | 35 * @method static void nullOrResource($value, $type = null, $message = '') |
34 * @method static void nullOrIsCallable($value, $message = '') | 36 * @method static void nullOrIsCallable($value, $message = '') |
35 * @method static void nullOrIsArray($value, $message = '') | 37 * @method static void nullOrIsArray($value, $message = '') |
36 * @method static void nullOrIsTraversable($value, $message = '') | 38 * @method static void nullOrIsTraversable($value, $message = '') |
39 * @method static void nullOrIsArrayAccessible($value, $message = '') | |
40 * @method static void nullOrIsCountable($value, $message = '') | |
37 * @method static void nullOrIsInstanceOf($value, $class, $message = '') | 41 * @method static void nullOrIsInstanceOf($value, $class, $message = '') |
38 * @method static void nullOrNotInstanceOf($value, $class, $message = '') | 42 * @method static void nullOrNotInstanceOf($value, $class, $message = '') |
43 * @method static void nullOrIsInstanceOfAny($value, $classes, $message = '') | |
39 * @method static void nullOrIsEmpty($value, $message = '') | 44 * @method static void nullOrIsEmpty($value, $message = '') |
40 * @method static void nullOrNotEmpty($value, $message = '') | 45 * @method static void nullOrNotEmpty($value, $message = '') |
41 * @method static void nullOrTrue($value, $message = '') | 46 * @method static void nullOrTrue($value, $message = '') |
42 * @method static void nullOrFalse($value, $message = '') | 47 * @method static void nullOrFalse($value, $message = '') |
43 * @method static void nullOrEq($value, $value2, $message = '') | 48 * @method static void nullOrEq($value, $value2, $message = '') |
49 * @method static void nullOrLessThan($value, $value2, $message = '') | 54 * @method static void nullOrLessThan($value, $value2, $message = '') |
50 * @method static void nullOrLessThanEq($value, $value2, $message = '') | 55 * @method static void nullOrLessThanEq($value, $value2, $message = '') |
51 * @method static void nullOrRange($value, $min, $max, $message = '') | 56 * @method static void nullOrRange($value, $min, $max, $message = '') |
52 * @method static void nullOrOneOf($value, $values, $message = '') | 57 * @method static void nullOrOneOf($value, $values, $message = '') |
53 * @method static void nullOrContains($value, $subString, $message = '') | 58 * @method static void nullOrContains($value, $subString, $message = '') |
59 * @method static void nullOrNotContains($value, $subString, $message = '') | |
60 * @method static void nullOrNotWhitespaceOnly($value, $message = '') | |
54 * @method static void nullOrStartsWith($value, $prefix, $message = '') | 61 * @method static void nullOrStartsWith($value, $prefix, $message = '') |
55 * @method static void nullOrStartsWithLetter($value, $message = '') | 62 * @method static void nullOrStartsWithLetter($value, $message = '') |
56 * @method static void nullOrEndsWith($value, $suffix, $message = '') | 63 * @method static void nullOrEndsWith($value, $suffix, $message = '') |
57 * @method static void nullOrRegex($value, $pattern, $message = '') | 64 * @method static void nullOrRegex($value, $pattern, $message = '') |
58 * @method static void nullOrAlpha($value, $message = '') | 65 * @method static void nullOrAlpha($value, $message = '') |
77 * @method static void nullOrMethodExists($value, $method, $message = '') | 84 * @method static void nullOrMethodExists($value, $method, $message = '') |
78 * @method static void nullOrMethodNotExists($value, $method, $message = '') | 85 * @method static void nullOrMethodNotExists($value, $method, $message = '') |
79 * @method static void nullOrKeyExists($value, $key, $message = '') | 86 * @method static void nullOrKeyExists($value, $key, $message = '') |
80 * @method static void nullOrKeyNotExists($value, $key, $message = '') | 87 * @method static void nullOrKeyNotExists($value, $key, $message = '') |
81 * @method static void nullOrCount($value, $key, $message = '') | 88 * @method static void nullOrCount($value, $key, $message = '') |
89 * @method static void nullOrMinCount($value, $min, $message = '') | |
90 * @method static void nullOrMaxCount($value, $max, $message = '') | |
91 * @method static void nullCountBetween($value, $min, $max, $message = '') | |
82 * @method static void nullOrUuid($values, $message = '') | 92 * @method static void nullOrUuid($values, $message = '') |
83 * @method static void allString($values, $message = '') | 93 * @method static void allString($values, $message = '') |
84 * @method static void allStringNotEmpty($values, $message = '') | 94 * @method static void allStringNotEmpty($values, $message = '') |
85 * @method static void allInteger($values, $message = '') | 95 * @method static void allInteger($values, $message = '') |
86 * @method static void allIntegerish($values, $message = '') | 96 * @method static void allIntegerish($values, $message = '') |
91 * @method static void allObject($values, $message = '') | 101 * @method static void allObject($values, $message = '') |
92 * @method static void allResource($values, $type = null, $message = '') | 102 * @method static void allResource($values, $type = null, $message = '') |
93 * @method static void allIsCallable($values, $message = '') | 103 * @method static void allIsCallable($values, $message = '') |
94 * @method static void allIsArray($values, $message = '') | 104 * @method static void allIsArray($values, $message = '') |
95 * @method static void allIsTraversable($values, $message = '') | 105 * @method static void allIsTraversable($values, $message = '') |
106 * @method static void allIsArrayAccessible($values, $message = '') | |
107 * @method static void allIsCountable($values, $message = '') | |
96 * @method static void allIsInstanceOf($values, $class, $message = '') | 108 * @method static void allIsInstanceOf($values, $class, $message = '') |
97 * @method static void allNotInstanceOf($values, $class, $message = '') | 109 * @method static void allNotInstanceOf($values, $class, $message = '') |
110 * @method static void allIsInstanceOfAny($values, $classes, $message = '') | |
98 * @method static void allNull($values, $message = '') | 111 * @method static void allNull($values, $message = '') |
99 * @method static void allNotNull($values, $message = '') | 112 * @method static void allNotNull($values, $message = '') |
100 * @method static void allIsEmpty($values, $message = '') | 113 * @method static void allIsEmpty($values, $message = '') |
101 * @method static void allNotEmpty($values, $message = '') | 114 * @method static void allNotEmpty($values, $message = '') |
102 * @method static void allTrue($values, $message = '') | 115 * @method static void allTrue($values, $message = '') |
110 * @method static void allLessThan($values, $value2, $message = '') | 123 * @method static void allLessThan($values, $value2, $message = '') |
111 * @method static void allLessThanEq($values, $value2, $message = '') | 124 * @method static void allLessThanEq($values, $value2, $message = '') |
112 * @method static void allRange($values, $min, $max, $message = '') | 125 * @method static void allRange($values, $min, $max, $message = '') |
113 * @method static void allOneOf($values, $values, $message = '') | 126 * @method static void allOneOf($values, $values, $message = '') |
114 * @method static void allContains($values, $subString, $message = '') | 127 * @method static void allContains($values, $subString, $message = '') |
128 * @method static void allNotContains($values, $subString, $message = '') | |
129 * @method static void allNotWhitespaceOnly($values, $message = '') | |
115 * @method static void allStartsWith($values, $prefix, $message = '') | 130 * @method static void allStartsWith($values, $prefix, $message = '') |
116 * @method static void allStartsWithLetter($values, $message = '') | 131 * @method static void allStartsWithLetter($values, $message = '') |
117 * @method static void allEndsWith($values, $suffix, $message = '') | 132 * @method static void allEndsWith($values, $suffix, $message = '') |
118 * @method static void allRegex($values, $pattern, $message = '') | 133 * @method static void allRegex($values, $pattern, $message = '') |
119 * @method static void allAlpha($values, $message = '') | 134 * @method static void allAlpha($values, $message = '') |
138 * @method static void allMethodExists($values, $method, $message = '') | 153 * @method static void allMethodExists($values, $method, $message = '') |
139 * @method static void allMethodNotExists($values, $method, $message = '') | 154 * @method static void allMethodNotExists($values, $method, $message = '') |
140 * @method static void allKeyExists($values, $key, $message = '') | 155 * @method static void allKeyExists($values, $key, $message = '') |
141 * @method static void allKeyNotExists($values, $key, $message = '') | 156 * @method static void allKeyNotExists($values, $key, $message = '') |
142 * @method static void allCount($values, $key, $message = '') | 157 * @method static void allCount($values, $key, $message = '') |
158 * @method static void allMinCount($values, $min, $message = '') | |
159 * @method static void allMaxCount($values, $max, $message = '') | |
160 * @method static void allCountBetween($values, $min, $max, $message = '') | |
143 * @method static void allUuid($values, $message = '') | 161 * @method static void allUuid($values, $message = '') |
144 * | 162 * |
145 * @since 1.0 | 163 * @since 1.0 |
146 * | 164 * |
147 * @author Bernhard Schussek <bschussek@gmail.com> | 165 * @author Bernhard Schussek <bschussek@gmail.com> |
159 } | 177 } |
160 | 178 |
161 public static function stringNotEmpty($value, $message = '') | 179 public static function stringNotEmpty($value, $message = '') |
162 { | 180 { |
163 static::string($value, $message); | 181 static::string($value, $message); |
164 static::notEmpty($value, $message); | 182 static::notEq($value, '', $message); |
165 } | 183 } |
166 | 184 |
167 public static function integer($value, $message = '') | 185 public static function integer($value, $message = '') |
168 { | 186 { |
169 if (!is_int($value)) { | 187 if (!is_int($value)) { |
198 { | 216 { |
199 if (!is_numeric($value)) { | 217 if (!is_numeric($value)) { |
200 static::reportInvalidArgument(sprintf( | 218 static::reportInvalidArgument(sprintf( |
201 $message ?: 'Expected a numeric. Got: %s', | 219 $message ?: 'Expected a numeric. Got: %s', |
202 static::typeToString($value) | 220 static::typeToString($value) |
221 )); | |
222 } | |
223 } | |
224 | |
225 public static function natural($value, $message = '') | |
226 { | |
227 if (!is_int($value) || $value < 0) { | |
228 static::reportInvalidArgument(sprintf( | |
229 $message ?: 'Expected a non-negative integer. Got %s', | |
230 static::valueToString($value) | |
203 )); | 231 )); |
204 } | 232 } |
205 } | 233 } |
206 | 234 |
207 public static function boolean($value, $message = '') | 235 public static function boolean($value, $message = '') |
272 } | 300 } |
273 } | 301 } |
274 | 302 |
275 public static function isTraversable($value, $message = '') | 303 public static function isTraversable($value, $message = '') |
276 { | 304 { |
305 @trigger_error( | |
306 sprintf( | |
307 'The "%s" assertion is deprecated. You should stop using it, as it will soon be removed in 2.0 version. Use "isIterable" or "isInstanceOf" instead.', | |
308 __METHOD__ | |
309 ), | |
310 E_USER_DEPRECATED | |
311 ); | |
312 | |
277 if (!is_array($value) && !($value instanceof Traversable)) { | 313 if (!is_array($value) && !($value instanceof Traversable)) { |
278 static::reportInvalidArgument(sprintf( | 314 static::reportInvalidArgument(sprintf( |
279 $message ?: 'Expected a traversable. Got: %s', | 315 $message ?: 'Expected a traversable. Got: %s', |
316 static::typeToString($value) | |
317 )); | |
318 } | |
319 } | |
320 | |
321 public static function isArrayAccessible($value, $message = '') | |
322 { | |
323 if (!is_array($value) && !($value instanceof ArrayAccess)) { | |
324 static::reportInvalidArgument(sprintf( | |
325 $message ?: 'Expected an array accessible. Got: %s', | |
326 static::typeToString($value) | |
327 )); | |
328 } | |
329 } | |
330 | |
331 public static function isCountable($value, $message = '') | |
332 { | |
333 if (!is_array($value) && !($value instanceof Countable)) { | |
334 static::reportInvalidArgument(sprintf( | |
335 $message ?: 'Expected a countable. Got: %s', | |
336 static::typeToString($value) | |
337 )); | |
338 } | |
339 } | |
340 | |
341 public static function isIterable($value, $message = '') | |
342 { | |
343 if (!is_array($value) && !($value instanceof Traversable)) { | |
344 static::reportInvalidArgument(sprintf( | |
345 $message ?: 'Expected an iterable. Got: %s', | |
280 static::typeToString($value) | 346 static::typeToString($value) |
281 )); | 347 )); |
282 } | 348 } |
283 } | 349 } |
284 | 350 |
300 $message ?: 'Expected an instance other than %2$s. Got: %s', | 366 $message ?: 'Expected an instance other than %2$s. Got: %s', |
301 static::typeToString($value), | 367 static::typeToString($value), |
302 $class | 368 $class |
303 )); | 369 )); |
304 } | 370 } |
371 } | |
372 | |
373 public static function isInstanceOfAny($value, array $classes, $message = '') | |
374 { | |
375 foreach ($classes as $class) { | |
376 if ($value instanceof $class) { | |
377 return; | |
378 } | |
379 } | |
380 | |
381 static::reportInvalidArgument(sprintf( | |
382 $message ?: 'Expected an instance of any of %2$s. Got: %s', | |
383 static::typeToString($value), | |
384 implode(', ', array_map(array('static', 'valueToString'), $classes)) | |
385 )); | |
305 } | 386 } |
306 | 387 |
307 public static function isEmpty($value, $message = '') | 388 public static function isEmpty($value, $message = '') |
308 { | 389 { |
309 if (!empty($value)) { | 390 if (!empty($value)) { |
477 if (false === strpos($value, $subString)) { | 558 if (false === strpos($value, $subString)) { |
478 static::reportInvalidArgument(sprintf( | 559 static::reportInvalidArgument(sprintf( |
479 $message ?: 'Expected a value to contain %2$s. Got: %s', | 560 $message ?: 'Expected a value to contain %2$s. Got: %s', |
480 static::valueToString($value), | 561 static::valueToString($value), |
481 static::valueToString($subString) | 562 static::valueToString($subString) |
563 )); | |
564 } | |
565 } | |
566 | |
567 public static function notContains($value, $subString, $message = '') | |
568 { | |
569 if (false !== strpos($value, $subString)) { | |
570 static::reportInvalidArgument(sprintf( | |
571 $message ?: '%2$s was not expected to be contained in a value. Got: %s', | |
572 static::valueToString($value), | |
573 static::valueToString($subString) | |
574 )); | |
575 } | |
576 } | |
577 | |
578 public static function notWhitespaceOnly($value, $message = '') | |
579 { | |
580 if (preg_match('/^\s*$/', $value)) { | |
581 static::reportInvalidArgument(sprintf( | |
582 $message ?: 'Expected a non-whitespace string. Got: %s', | |
583 static::valueToString($value) | |
482 )); | 584 )); |
483 } | 585 } |
484 } | 586 } |
485 | 587 |
486 public static function startsWith($value, $prefix, $message = '') | 588 public static function startsWith($value, $prefix, $message = '') |
811 $number, | 913 $number, |
812 $message ?: sprintf('Expected an array to contain %d elements. Got: %d.', $number, count($array)) | 914 $message ?: sprintf('Expected an array to contain %d elements. Got: %d.', $number, count($array)) |
813 ); | 915 ); |
814 } | 916 } |
815 | 917 |
918 public static function minCount($array, $min, $message = '') | |
919 { | |
920 if (count($array) < $min) { | |
921 static::reportInvalidArgument(sprintf( | |
922 $message ?: 'Expected an array to contain at least %2$d elements. Got: %d', | |
923 count($array), | |
924 $min | |
925 )); | |
926 } | |
927 } | |
928 | |
929 public static function maxCount($array, $max, $message = '') | |
930 { | |
931 if (count($array) > $max) { | |
932 static::reportInvalidArgument(sprintf( | |
933 $message ?: 'Expected an array to contain at most %2$d elements. Got: %d', | |
934 count($array), | |
935 $max | |
936 )); | |
937 } | |
938 } | |
939 | |
940 public static function countBetween($array, $min, $max, $message = '') | |
941 { | |
942 $count = count($array); | |
943 | |
944 if ($count < $min || $count > $max) { | |
945 static::reportInvalidArgument(sprintf( | |
946 $message ?: 'Expected an array to contain between %2$d and %3$d elements. Got: %d', | |
947 $count, | |
948 $min, | |
949 $max | |
950 )); | |
951 } | |
952 } | |
953 | |
816 public static function uuid($value, $message = '') | 954 public static function uuid($value, $message = '') |
817 { | 955 { |
818 $value = str_replace(array('urn:', 'uuid:', '{', '}'), '', $value); | 956 $value = str_replace(array('urn:', 'uuid:', '{', '}'), '', $value); |
819 | 957 |
820 // The nil UUID is special form of UUID that is specified to have all | 958 // The nil UUID is special form of UUID that is specified to have all |
834 public static function throws(Closure $expression, $class = 'Exception', $message = '') | 972 public static function throws(Closure $expression, $class = 'Exception', $message = '') |
835 { | 973 { |
836 static::string($class); | 974 static::string($class); |
837 | 975 |
838 $actual = 'none'; | 976 $actual = 'none'; |
977 | |
839 try { | 978 try { |
840 $expression(); | 979 $expression(); |
841 } catch (Exception $e) { | 980 } catch (Exception $e) { |
842 $actual = get_class($e); | 981 $actual = get_class($e); |
843 if ($e instanceof $class) { | 982 if ($e instanceof $class) { |
867 | 1006 |
868 return; | 1007 return; |
869 } | 1008 } |
870 | 1009 |
871 if ('all' === substr($name, 0, 3)) { | 1010 if ('all' === substr($name, 0, 3)) { |
872 static::isTraversable($arguments[0]); | 1011 static::isIterable($arguments[0]); |
873 | 1012 |
874 $method = lcfirst(substr($name, 3)); | 1013 $method = lcfirst(substr($name, 3)); |
875 $args = $arguments; | 1014 $args = $arguments; |
876 | 1015 |
877 foreach ($arguments[0] as $entry) { | 1016 foreach ($arguments[0] as $entry) { |