summaryrefslogtreecommitdiff
path: root/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/beberlei/assert/lib/Assert/LazyAssertionException.php')
-rw-r--r--vendor/beberlei/assert/lib/Assert/LazyAssertionException.php55
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;
+ }
+}