@@ 240-256 (lines=17) @@ | ||
237 | * @return Assert |
|
238 | * @throws AssertionFailedException |
|
239 | */ |
|
240 | public function greaterThan($value2, $message = null, $propertyPath = null) |
|
241 | { |
|
242 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
243 | { |
|
244 | return $this; |
|
245 | } |
|
246 | if ( ! ( $this->value > $value2 ) ) |
|
247 | { |
|
248 | $message = sprintf( |
|
249 | $message ?: 'Value "%s" does not greater then expected value "%s".', |
|
250 | $this->stringify($this->value), |
|
251 | $this->stringify($value2) |
|
252 | ); |
|
253 | throw $this->createException($message, self::INVALID_EQ, $propertyPath, ['expected' => $value2]); |
|
254 | } |
|
255 | return $this; |
|
256 | } |
|
257 | ||
258 | /** |
|
259 | * |
|
@@ 266-282 (lines=17) @@ | ||
263 | * @return Assert |
|
264 | * @throws AssertionFailedException |
|
265 | */ |
|
266 | public function greaterThanOrEq($value2, $message = null, $propertyPath = null) |
|
267 | { |
|
268 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
269 | { |
|
270 | return $this; |
|
271 | } |
|
272 | if ( ! ( $this->value >= $value2 ) ) |
|
273 | { |
|
274 | $message = sprintf( |
|
275 | $message ?: 'Value "%s" does not greater than or equal to expected value "%s".', |
|
276 | $this->stringify($this->value), |
|
277 | $this->stringify($value2) |
|
278 | ); |
|
279 | throw $this->createException($message, self::INVALID_EQ, $propertyPath, ['expected' => $value2]); |
|
280 | } |
|
281 | return $this; |
|
282 | } |
|
283 | ||
284 | /** |
|
285 | * |
|
@@ 292-308 (lines=17) @@ | ||
289 | * @return Assert |
|
290 | * @throws AssertionFailedException |
|
291 | */ |
|
292 | public function lessThan($value2, $message = null, $propertyPath = null) |
|
293 | { |
|
294 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
295 | { |
|
296 | return $this; |
|
297 | } |
|
298 | if ( ! ( $this->value < $value2 ) ) |
|
299 | { |
|
300 | $message = sprintf( |
|
301 | $message ?: 'Value "%s" does not less then expected value "%s".', |
|
302 | $this->stringify($this->value), |
|
303 | $this->stringify($value2) |
|
304 | ); |
|
305 | throw $this->createException($message, self::INVALID_LESS_THAN, $propertyPath, ['expected' => $value2]); |
|
306 | } |
|
307 | return $this; |
|
308 | } |
|
309 | ||
310 | /** |
|
311 | * |
|
@@ 318-334 (lines=17) @@ | ||
315 | * @return Assert |
|
316 | * @throws AssertionFailedException |
|
317 | */ |
|
318 | public function lessThanOrEq($value2, $message = null, $propertyPath = null) |
|
319 | { |
|
320 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
321 | { |
|
322 | return $this; |
|
323 | } |
|
324 | if ( ! ( $this->value <= $value2 ) ) |
|
325 | { |
|
326 | $message = sprintf( |
|
327 | $message ?: 'Value "%s" does not less than or equal to expected value "%s".', |
|
328 | $this->stringify($this->value), |
|
329 | $this->stringify($value2) |
|
330 | ); |
|
331 | throw $this->createException($message, self::INVALID_LESS_THAN_OR_EQ, $propertyPath, ['expected' => $value2]); |
|
332 | } |
|
333 | return $this; |
|
334 | } |
|
335 | ||
336 | /** |
|
337 | * Assert that two values are the same (using ===). |
|
@@ 1403-1420 (lines=18) @@ | ||
1400 | * @return Assert |
|
1401 | * @throws AssertionFailedException |
|
1402 | */ |
|
1403 | public function ascii($message = null, $propertyPath = null) |
|
1404 | { |
|
1405 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
1406 | { |
|
1407 | return $this; |
|
1408 | } |
|
1409 | $this->string($message, $propertyPath); |
|
1410 | if ( ! preg_match('/^[ -~]+$/', $this->value) ) |
|
1411 | { |
|
1412 | $message = $message |
|
1413 | ?: sprintf( |
|
1414 | 'Value "%s" was expected to be a valid ASCII string', |
|
1415 | $this->stringify($this->value) |
|
1416 | ); |
|
1417 | throw $this->createException($message, self::INVALID_ASCII, $propertyPath); |
|
1418 | } |
|
1419 | return $this; |
|
1420 | } |
|
1421 | ||
1422 | /** |
|
1423 | * Assert that key exists in an array/array-accessible object using isset() |
|
@@ 1724-1740 (lines=17) @@ | ||
1721 | * @return Assert |
|
1722 | * @throws AssertionFailedException |
|
1723 | */ |
|
1724 | public function directory($message = null, $propertyPath = null) |
|
1725 | { |
|
1726 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
1727 | { |
|
1728 | return $this; |
|
1729 | } |
|
1730 | $this->string($message, $propertyPath); |
|
1731 | if ( !is_dir($this->value) ) |
|
1732 | { |
|
1733 | $message = sprintf( |
|
1734 | $message ?: 'Path "%s" was expected to be a directory.', |
|
1735 | $this->stringify($this->value) |
|
1736 | ); |
|
1737 | throw $this->createException($message, self::INVALID_DIRECTORY, $propertyPath); |
|
1738 | } |
|
1739 | return $this; |
|
1740 | } |
|
1741 | ||
1742 | /** |
|
1743 | * Assert that the value is something readable |
|
@@ 1750-1766 (lines=17) @@ | ||
1747 | * @return Assert |
|
1748 | * @throws AssertionFailedException |
|
1749 | */ |
|
1750 | public function readable($message = null, $propertyPath = null) |
|
1751 | { |
|
1752 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
1753 | { |
|
1754 | return $this; |
|
1755 | } |
|
1756 | $this->string($message, $propertyPath); |
|
1757 | if ( !is_readable($this->value) ) |
|
1758 | { |
|
1759 | $message = sprintf( |
|
1760 | $message ?: 'Path "%s" was expected to be readable.', |
|
1761 | $this->stringify($this->value) |
|
1762 | ); |
|
1763 | throw $this->createException($message, self::INVALID_READABLE, $propertyPath); |
|
1764 | } |
|
1765 | return $this; |
|
1766 | } |
|
1767 | ||
1768 | /** |
|
1769 | * Assert that the value is something writeable |
|
@@ 1776-1792 (lines=17) @@ | ||
1773 | * @return Assert |
|
1774 | * @throws AssertionFailedException |
|
1775 | */ |
|
1776 | public function writeable($message = null, $propertyPath = null) |
|
1777 | { |
|
1778 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
1779 | { |
|
1780 | return $this; |
|
1781 | } |
|
1782 | $this->string($message, $propertyPath); |
|
1783 | if ( !is_writeable($this->value) ) |
|
1784 | { |
|
1785 | $message = sprintf( |
|
1786 | $message ?: 'Path "%s" was expected to be writeable.', |
|
1787 | $this->stringify($this->value) |
|
1788 | ); |
|
1789 | throw $this->createException($message, self::INVALID_WRITEABLE, $propertyPath); |
|
1790 | } |
|
1791 | return $this; |
|
1792 | } |
|
1793 | ||
1794 | /** |
|
1795 | * Assert that value is an email adress (using |
|
@@ 1932-1952 (lines=21) @@ | ||
1929 | * @return Assert |
|
1930 | * @throws AssertionFailedException |
|
1931 | */ |
|
1932 | public function alnum($message = null, $propertyPath = null) |
|
1933 | { |
|
1934 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
1935 | { |
|
1936 | return $this; |
|
1937 | } |
|
1938 | try |
|
1939 | { |
|
1940 | $this->regex('(^([a-zA-Z]{1}[a-zA-Z0-9]*)$)', $message, $propertyPath); |
|
1941 | } |
|
1942 | catch (AssertionFailedException $e) |
|
1943 | { |
|
1944 | $message = sprintf( |
|
1945 | $message |
|
1946 | ?: 'Value "%s" is not alphanumeric, starting with letters and containing only letters and numbers.', |
|
1947 | $this->stringify($this->value) |
|
1948 | ); |
|
1949 | throw $this->createException($message, self::INVALID_ALNUM, $propertyPath); |
|
1950 | } |
|
1951 | return $this; |
|
1952 | } |
|
1953 | ||
1954 | /** |
|
1955 | * Assert that the value is boolean True. |
|
@@ 2252-2268 (lines=17) @@ | ||
2249 | * @returns Assert |
|
2250 | * @throws |
|
2251 | */ |
|
2252 | public function methodExists($object, $message = null, $propertyPath = null) |
|
2253 | { |
|
2254 | if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) ) |
|
2255 | { |
|
2256 | return $this; |
|
2257 | } |
|
2258 | (new Assert($object))->setExceptionClass($this->exceptionClass)->isObject($message, $propertyPath); |
|
2259 | if ( !method_exists($object, $this->value) ) |
|
2260 | { |
|
2261 | $message = sprintf( |
|
2262 | $message ?: 'Expected "%s" does not a exist in provided object.', |
|
2263 | $this->stringify($this->value) |
|
2264 | ); |
|
2265 | throw $this->createException($message, self::INVALID_METHOD, $propertyPath); |
|
2266 | } |
|
2267 | return $this; |
|
2268 | } |
|
2269 | ||
2270 | /** |
|
2271 | * Determines that the provided value is an object. |