diff options
Diffstat (limited to 'vendor/beberlei/assert/lib/Assert/LazyAssertionException.php')
-rw-r--r-- | vendor/beberlei/assert/lib/Assert/LazyAssertionException.php | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php b/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php new file mode 100644 index 000000000..f76ecc699 --- /dev/null +++ b/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php @@ -0,0 +1,55 @@ +<?php + +/** + * Assert + * + * LICENSE + * + * This source file is subject to the MIT license that is bundled + * with this package in the file LICENSE.txt. + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to [email protected] so I can send you a copy immediately. + */ + +namespace Assert; + +class LazyAssertionException extends InvalidArgumentException +{ + /** + * @var InvalidArgumentException[] + */ + private $errors = []; + + /** + * @param InvalidArgumentException[] $errors + * + * @return self + */ + public static function fromErrors(array $errors): self + { + $message = \sprintf('The following %d assertions failed:', \count($errors))."\n"; + + $i = 1; + foreach ($errors as $error) { + $message .= \sprintf("%d) %s: %s\n", $i++, $error->getPropertyPath(), $error->getMessage()); + } + + return new static($message, $errors); + } + + public function __construct($message, array $errors) + { + parent::__construct($message, 0, null, null); + + $this->errors = $errors; + } + + /** + * @return InvalidArgumentException[] + */ + public function getErrorExceptions(): array + { + return $this->errors; + } +} |