summaryrefslogtreecommitdiff
path: root/Postman/Postman-Mail/mailgun/vendor/webmozart
diff options
context:
space:
mode:
authoryehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664>2019-11-25 08:22:35 +0000
committeryehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664>2019-11-25 08:22:35 +0000
commitc61784411988d36d9bbd93cd3a97e773990af342 (patch)
tree924e6e9dea2ba7b1eedb14d0c4b03a38aefdf179 /Postman/Postman-Mail/mailgun/vendor/webmozart
parent907ce8c044159ca8da6ccce3ec5362ac61e7c142 (diff)
downloadPost-SMTP-c61784411988d36d9bbd93cd3a97e773990af342.zip
Adding a folder
Diffstat (limited to 'Postman/Postman-Mail/mailgun/vendor/webmozart')
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.composer-auth.json7
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.styleci.yml8
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.travis.yml39
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/CHANGELOG.md34
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/LICENSE20
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/README.md242
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/appveyor.yml40
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/composer.json34
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/phpunit.xml.dist16
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/src/Assert.php948
-rw-r--r--Postman/Postman-Mail/mailgun/vendor/webmozart/assert/tests/AssertTest.php451
11 files changed, 1839 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.composer-auth.json b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.composer-auth.json
new file mode 100644
index 0000000..eea8001
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.composer-auth.json
@@ -0,0 +1,7 @@
+{
+ "github-oauth": {
+ "github.com": "PLEASE DO NOT USE THIS TOKEN IN YOUR OWN PROJECTS/FORKS",
+ "github.com": "This token is reserved for testing the webmozart/* repositories",
+ "github.com": "a9debbffdd953ee9b3b82dbc3b807cde2086bb86"
+ }
+}
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.styleci.yml b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.styleci.yml
new file mode 100644
index 0000000..92da20f
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.styleci.yml
@@ -0,0 +1,8 @@
+preset: symfony
+
+enabled:
+ - ordered_use
+
+disabled:
+ - empty_return
+ - phpdoc_annotation_without_dot # This is still buggy: https://github.com/symfony/symfony/pull/19198
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.travis.yml b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.travis.yml
new file mode 100644
index 0000000..1265196
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/.travis.yml
@@ -0,0 +1,39 @@
+language: php
+
+sudo: false
+
+branches:
+ only:
+ - master
+
+cache:
+ directories:
+ - $HOME/.composer/cache/files
+
+matrix:
+ include:
+ - php: 5.3
+ - php: 5.4
+ - php: 5.5
+ - php: 5.6
+ - php: hhvm
+ - php: nightly
+ - php: 7.0
+ env: COVERAGE=yes
+ - php: 7.0
+ env: COMPOSER_FLAGS='--prefer-lowest --prefer-stable'
+ allow_failures:
+ - php: hhvm
+ - php: nightly
+ fast_finish: true
+
+before_install:
+ - if [[ $TRAVIS_PHP_VERSION != hhvm && $COVERAGE != yes ]]; then phpenv config-rm xdebug.ini; fi;
+ - if [[ $TRAVIS_REPO_SLUG = webmozart/assert ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
+ - composer self-update
+
+install: composer update $COMPOSER_FLAGS --prefer-dist --no-interaction
+
+script: if [[ $COVERAGE = yes ]]; then vendor/bin/phpunit --verbose --coverage-clover=coverage.clover; else vendor/bin/phpunit --verbose; fi
+
+after_script: if [[ $COVERAGE = yes ]]; then wget https://scrutinizer-ci.com/ocular.phar && php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/CHANGELOG.md b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/CHANGELOG.md
new file mode 100644
index 0000000..3298361
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/CHANGELOG.md
@@ -0,0 +1,34 @@
+Changelog
+=========
+
+* 1.2.0 (2016-11-23)
+
+ * added `Assert::throws()`
+ * added `Assert::count()`
+ * added extension point `Assert::reportInvalidArgument()` for custom subclasses
+
+* 1.1.0 (2016-08-09)
+
+ * added `Assert::object()`
+ * added `Assert::propertyExists()`
+ * added `Assert::propertyNotExists()`
+ * added `Assert::methodExists()`
+ * added `Assert::methodNotExists()`
+ * added `Assert::uuid()`
+
+* 1.0.2 (2015-08-24)
+
+ * integrated Style CI
+ * add tests for minimum package dependencies on Travis CI
+
+* 1.0.1 (2015-05-12)
+
+ * added support for PHP 5.3.3
+
+* 1.0.0 (2015-05-12)
+
+ * first stable release
+
+* 1.0.0-beta (2015-03-19)
+
+ * first beta release
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/LICENSE b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/LICENSE
new file mode 100644
index 0000000..9e2e307
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Bernhard Schussek
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/README.md b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/README.md
new file mode 100644
index 0000000..d176860
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/README.md
@@ -0,0 +1,242 @@
+Webmozart Assert
+================
+
+[![Build Status](https://travis-ci.org/webmozart/assert.svg?branch=1.2.0)](https://travis-ci.org/webmozart/assert)
+[![Build status](https://ci.appveyor.com/api/projects/status/lyg83bcsisrr94se/branch/master?svg=true)](https://ci.appveyor.com/project/webmozart/assert/branch/master)
+[![Latest Stable Version](https://poser.pugx.org/webmozart/assert/v/stable.svg)](https://packagist.org/packages/webmozart/assert)
+[![Total Downloads](https://poser.pugx.org/webmozart/assert/downloads.svg)](https://packagist.org/packages/webmozart/assert)
+[![Dependency Status](https://www.versioneye.com/php/webmozart:assert/1.2.0/badge.svg)](https://www.versioneye.com/php/webmozart:assert/1.2.0)
+
+Latest release: [1.2.0](https://packagist.org/packages/webmozart/assert#1.2.0)
+
+PHP >= 5.3.9
+
+This library contains efficient assertions to test the input and output of
+your methods. With these assertions, you can greatly reduce the amount of coding
+needed to write a safe implementation.
+
+All assertions in the [`Assert`] class throw an `\InvalidArgumentException` if
+they fail.
+
+FAQ
+---
+
+**What's the difference to [beberlei/assert]?**
+
+This library is heavily inspired by Benjamin Eberlei's wonderful [assert package],
+but fixes a usability issue with error messages that can't be fixed there without
+breaking backwards compatibility.
+
+This package features usable error messages by default. However, you can also
+easily write custom error messages:
+
+```
+Assert::string($path, 'The path is expected to be a string. Got: %s');
+```
+
+In [beberlei/assert], the ordering of the `%s` placeholders is different for
+every assertion. This package, on the contrary, provides consistent placeholder
+ordering for all assertions:
+
+* `%s`: The tested value as string, e.g. `"/foo/bar"`.
+* `%2$s`, `%3$s`, ...: Additional assertion-specific values, e.g. the
+ minimum/maximum length, allowed values, etc.
+
+Check the source code of the assertions to find out details about the additional
+available placeholders.
+
+Installation
+------------
+
+Use [Composer] to install the package:
+
+```
+$ composer require webmozart/assert
+```
+
+Example
+-------
+
+```php
+use Webmozart\Assert\Assert;
+
+class Employee
+{
+ public function __construct($id)
+ {
+ Assert::integer($id, 'The employee ID must be an integer. Got: %s');
+ Assert::greaterThan($id, 0, 'The employee ID must be a positive integer. Got: %s');
+ }
+}
+```
+
+If you create an employee with an invalid ID, an exception is thrown:
+
+```php
+new Employee('foobar');
+// => InvalidArgumentException:
+// The employee ID must be an integer. Got: string
+
+new Employee(-10);
+// => InvalidArgumentException:
+// The employee ID must be a positive integer. Got: -10
+```
+
+Assertions
+----------
+
+The [`Assert`] class provides the following assertions:
+
+### Type Assertions
+
+Method | Description
+----------------------------------------------- | --------------------------------------------------
+`string($value, $message = '')` | Check that a value is a string
+`stringNotEmpty($value, $message = '')` | Check that a value is a non-empty string
+`integer($value, $message = '')` | Check that a value is an integer
+`integerish($value, $message = '')` | Check that a value casts to an integer
+`float($value, $message = '')` | Check that a value is a float
+`numeric($value, $message = '')` | Check that a value is numeric
+`boolean($value, $message = '')` | Check that a value is a boolean
+`scalar($value, $message = '')` | Check that a value is a scalar
+`object($value, $message = '')` | Check that a value is an object
+`resource($value, $type = null, $message = '')` | Check that a value is a resource
+`isCallable($value, $message = '')` | Check that a value is a callable
+`isArray($value, $message = '')` | Check that a value is an array
+`isTraversable($value, $message = '')` | Check that a value is an array or a `\Traversable`
+`isInstanceOf($value, $class, $message = '')` | Check that a value is an `instanceof` a class
+`notInstanceOf($value, $class, $message = '')` | Check that a value is not an `instanceof` a class
+
+### Comparison Assertions
+
+Method | Description
+----------------------------------------------- | --------------------------------------------------
+`true($value, $message = '')` | Check that a value is `true`
+`false($value, $message = '')` | Check that a value is `false`
+`null($value, $message = '')` | Check that a value is `null`
+`notNull($value, $message = '')` | Check that a value is not `null`
+`isEmpty($value, $message = '')` | Check that a value is `empty()`
+`notEmpty($value, $message = '')` | Check that a value is not `empty()`
+`eq($value, $value2, $message = '')` | Check that a value equals another (`==`)
+`notEq($value, $value2, $message = '')` | Check that a value does not equal another (`!=`)
+`same($value, $value2, $message = '')` | Check that a value is identical to another (`===`)
+`notSame($value, $value2, $message = '')` | Check that a value is not identical to another (`!==`)
+`greaterThan($value, $value2, $message = '')` | Check that a value is greater than another
+`greaterThanEq($value, $value2, $message = '')` | Check that a value is greater than or equal to another
+`lessThan($value, $value2, $message = '')` | Check that a value is less than another
+`lessThanEq($value, $value2, $message = '')` | Check that a value is less than or equal to another
+`range($value, $min, $max, $message = '')` | Check that a value is within a range
+`oneOf($value, array $values, $message = '')` | Check that a value is one of a list of values
+
+### String Assertions
+
+You should check that a value is a string with `Assert::string()` before making
+any of the following assertions.
+
+Method | Description
+--------------------------------------------------- | --------------------------------------------------
+`contains($value, $subString, $message = '')` | Check that a string contains a substring
+`startsWith($value, $prefix, $message = '')` | Check that a string has a prefix
+`startsWithLetter($value, $message = '')` | Check that a string starts with a letter
+`endsWith($value, $suffix, $message = '')` | Check that a string has a suffix
+`regex($value, $pattern, $message = '')` | Check that a string matches a regular expression
+`alpha($value, $message = '')` | Check that a string contains letters only
+`digits($value, $message = '')` | Check that a string contains digits only
+`alnum($value, $message = '')` | Check that a string contains letters and digits only
+`lower($value, $message = '')` | Check that a string contains lowercase characters only
+`upper($value, $message = '')` | Check that a string contains uppercase characters only
+`length($value, $length, $message = '')` | Check that a string has a certain number of characters
+`minLength($value, $min, $message = '')` | Check that a string has at least a certain number of characters
+`maxLength($value, $max, $message = '')` | Check that a string has at most a certain number of characters
+`lengthBetween($value, $min, $max, $message = '')` | Check that a string has a length in the given range
+`uuid($value, $message = '')` | Check that a string is a valid UUID
+
+### File Assertions
+
+Method | Description
+----------------------------------- | --------------------------------------------------
+`fileExists($value, $message = '')` | Check that a value is an existing path
+`file($value, $message = '')` | Check that a value is an existing file
+`directory($value, $message = '')` | Check that a value is an existing directory
+`readable($value, $message = '')` | Check that a value is a readable path
+`writable($value, $message = '')` | Check that a value is a writable path
+
+### Object Assertions
+
+Method | Description
+----------------------------------------------------- | --------------------------------------------------
+`classExists($value, $message = '')` | Check that a value is an existing class name
+`subclassOf($value, $class, $message = '')` | Check that a class is a subclass of another
+`implementsInterface($value, $class, $message = '')` | Check that a class implements an interface
+`propertyExists($value, $property, $message = '')` | Check that a property exists in a class/object
+`propertyNotExists($value, $property, $message = '')` | Check that a property does not exist in a class/object
+`methodExists($value, $method, $message = '')` | Check that a method exists in a class/object
+`methodNotExists($value, $method, $message = '')` | Check that a method does not exist in a class/object
+
+### Array Assertions
+
+Method | Description
+------------------------------------------- | --------------------------------------------------
+`keyExists($array, $key, $message = '')` | Check that a key exists in an array
+`keyNotExists($array, $key, $message = '')` | Check that a key does not exist in an array
+`count($array, $number, $message = '')` | Check that an array contains a specific number of elements
+
+### Function Assertions
+
+Method | Description
+------------------------------------------- | -----------------------------------------------------------------------------------------------------
+`throws($closure, $class, $message = '')` | Check that a function throws a certain exception. Subclasses of the exception class will be accepted.
+
+### Collection Assertions
+
+All of the above assertions can be prefixed with `all*()` to test the contents
+of an array or a `\Traversable`:
+
+```php
+Assert::allIsInstanceOf($employees, 'Acme\Employee');
+```
+
+### Nullable Assertions
+
+All of the above assertions can be prefixed with `nullOr*()` to run the
+assertion only if it the value is not `null`:
+
+```php
+Assert::nullOrString($middleName, 'The middle name must be a string or null. Got: %s');
+```
+
+Authors
+-------
+
+* [Bernhard Schussek] a.k.a. [@webmozart]
+* [The Community Contributors]
+
+Contribute
+----------
+
+Contributions to the package are always welcome!
+
+* Report any bugs or issues you find on the [issue tracker].
+* You can grab the source code at the package's [Git repository].
+
+Support
+-------
+
+If you are having problems, send a mail to bschussek@gmail.com or shout out to
+[@webmozart] on Twitter.
+
+License
+-------
+
+All contents of this package are licensed under the [MIT license].
+
+[beberlei/assert]: https://github.com/beberlei/assert
+[assert package]: https://github.com/beberlei/assert
+[Composer]: https://getcomposer.org
+[Bernhard Schussek]: http://webmozarts.com
+[The Community Contributors]: https://github.com/webmozart/assert/graphs/contributors
+[issue tracker]: https://github.com/webmozart/assert
+[Git repository]: https://github.com/webmozart/assert
+[@webmozart]: https://twitter.com/webmozart
+[MIT license]: LICENSE
+[`Assert`]: src/Assert.php
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/appveyor.yml b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/appveyor.yml
new file mode 100644
index 0000000..3a413bc
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/appveyor.yml
@@ -0,0 +1,40 @@
+build: false
+platform: x86
+clone_folder: c:\projects\webmozart\assert
+
+branches:
+ only:
+ - master
+
+cache:
+ - c:\php -> appveyor.yml
+
+init:
+ - SET PATH=c:\php;%PATH%
+ - SET COMPOSER_NO_INTERACTION=1
+ - SET PHP=1
+
+install:
+ - IF EXIST c:\php (SET PHP=0) ELSE (mkdir c:\php)
+ - cd c:\php
+ - IF %PHP%==1 appveyor DownloadFile http://windows.php.net/downloads/releases/archives/php-7.0.0-nts-Win32-VC14-x86.zip
+ - IF %PHP%==1 7z x php-7.0.0-nts-Win32-VC14-x86.zip -y >nul
+ - IF %PHP%==1 del /Q *.zip
+ - IF %PHP%==1 echo @php %%~dp0composer.phar %%* > composer.bat
+ - IF %PHP%==1 copy /Y php.ini-development php.ini
+ - IF %PHP%==1 echo max_execution_time=1200 >> php.ini
+ - IF %PHP%==1 echo date.timezone="UTC" >> php.ini
+ - IF %PHP%==1 echo extension_dir=ext >> php.ini
+ - IF %PHP%==1 echo extension=php_curl.dll >> php.ini
+ - IF %PHP%==1 echo extension=php_openssl.dll >> php.ini
+ - IF %PHP%==1 echo extension=php_mbstring.dll >> php.ini
+ - IF %PHP%==1 echo extension=php_fileinfo.dll >> php.ini
+ - appveyor DownloadFile https://getcomposer.org/composer.phar
+ - cd c:\projects\webmozart\assert
+ - mkdir %APPDATA%\Composer
+ - IF %APPVEYOR_REPO_NAME%==webmozart/assert copy /Y .composer-auth.json %APPDATA%\Composer\auth.json
+ - composer update --prefer-dist --no-progress --ansi
+
+test_script:
+ - cd c:\projects\webmozart\assert
+ - vendor\bin\phpunit.bat --verbose
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/composer.json b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/composer.json
new file mode 100644
index 0000000..c49e623
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/composer.json
@@ -0,0 +1,34 @@
+{
+ "name": "webmozart/assert",
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": ["assert", "check", "validate"],
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "require": {
+ "php": "^5.3.3 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.6",
+ "sebastian/version": "^1.0.1"
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Webmozart\\Assert\\Tests\\": "tests/"
+ }
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3-dev"
+ }
+ }
+}
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/phpunit.xml.dist b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/phpunit.xml.dist
new file mode 100644
index 0000000..db20e9b
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/phpunit.xml.dist
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<phpunit bootstrap="vendor/autoload.php" colors="true">
+ <testsuites>
+ <testsuite name="Webmozart Assert Test Suite">
+ <directory suffix="Test.php">./tests/</directory>
+ </testsuite>
+ </testsuites>
+
+ <!-- Whitelist for code coverage -->
+ <filter>
+ <whitelist>
+ <directory suffix=".php">./src/</directory>
+ </whitelist>
+ </filter>
+</phpunit>
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/src/Assert.php b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/src/Assert.php
new file mode 100644
index 0000000..083ad20
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/src/Assert.php
@@ -0,0 +1,948 @@
+<?php
+
+/*
+ * This file is part of the webmozart/assert package.
+ *
+ * (c) Bernhard Schussek <bschussek@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Webmozart\Assert;
+
+use BadMethodCallException;
+use InvalidArgumentException;
+use Traversable;
+use Exception;
+use Throwable;
+use Closure;
+
+/**
+ * Efficient assertions to validate the input/output of your methods.
+ *
+ * @method static void nullOrString($value, $message = '')
+ * @method static void nullOrStringNotEmpty($value, $message = '')
+ * @method static void nullOrInteger($value, $message = '')
+ * @method static void nullOrIntegerish($value, $message = '')
+ * @method static void nullOrFloat($value, $message = '')
+ * @method static void nullOrNumeric($value, $message = '')
+ * @method static void nullOrBoolean($value, $message = '')
+ * @method static void nullOrScalar($value, $message = '')
+ * @method static void nullOrObject($value, $message = '')
+ * @method static void nullOrResource($value, $type = null, $message = '')
+ * @method static void nullOrIsCallable($value, $message = '')
+ * @method static void nullOrIsArray($value, $message = '')
+ * @method static void nullOrIsTraversable($value, $message = '')
+ * @method static void nullOrIsInstanceOf($value, $class, $message = '')
+ * @method static void nullOrNotInstanceOf($value, $class, $message = '')
+ * @method static void nullOrIsEmpty($value, $message = '')
+ * @method static void nullOrNotEmpty($value, $message = '')
+ * @method static void nullOrTrue($value, $message = '')
+ * @method static void nullOrFalse($value, $message = '')
+ * @method static void nullOrEq($value, $value2, $message = '')
+ * @method static void nullOrNotEq($value,$value2, $message = '')
+ * @method static void nullOrSame($value, $value2, $message = '')
+ * @method static void nullOrNotSame($value, $value2, $message = '')
+ * @method static void nullOrGreaterThan($value, $value2, $message = '')
+ * @method static void nullOrGreaterThanEq($value, $value2, $message = '')
+ * @method static void nullOrLessThan($value, $value2, $message = '')
+ * @method static void nullOrLessThanEq($value, $value2, $message = '')
+ * @method static void nullOrRange($value, $min, $max, $message = '')
+ * @method static void nullOrOneOf($value, $values, $message = '')
+ * @method static void nullOrContains($value, $subString, $message = '')
+ * @method static void nullOrStartsWith($value, $prefix, $message = '')
+ * @method static void nullOrStartsWithLetter($value, $message = '')
+ * @method static void nullOrEndsWith($value, $suffix, $message = '')
+ * @method static void nullOrRegex($value, $pattern, $message = '')
+ * @method static void nullOrAlpha($value, $message = '')
+ * @method static void nullOrDigits($value, $message = '')
+ * @method static void nullOrAlnum($value, $message = '')
+ * @method static void nullOrLower($value, $message = '')
+ * @method static void nullOrUpper($value, $message = '')
+ * @method static void nullOrLength($value, $length, $message = '')
+ * @method static void nullOrMinLength($value, $min, $message = '')
+ * @method static void nullOrMaxLength($value, $max, $message = '')
+ * @method static void nullOrLengthBetween($value, $min, $max, $message = '')
+ * @method static void nullOrFileExists($value, $message = '')
+ * @method static void nullOrFile($value, $message = '')
+ * @method static void nullOrDirectory($value, $message = '')
+ * @method static void nullOrReadable($value, $message = '')
+ * @method static void nullOrWritable($value, $message = '')
+ * @method static void nullOrClassExists($value, $message = '')
+ * @method static void nullOrSubclassOf($value, $class, $message = '')
+ * @method static void nullOrImplementsInterface($value, $interface, $message = '')
+ * @method static void nullOrPropertyExists($value, $property, $message = '')
+ * @method static void nullOrPropertyNotExists($value, $property, $message = '')
+ * @method static void nullOrMethodExists($value, $method, $message = '')
+ * @method static void nullOrMethodNotExists($value, $method, $message = '')
+ * @method static void nullOrKeyExists($value, $key, $message = '')
+ * @method static void nullOrKeyNotExists($value, $key, $message = '')
+ * @method static void nullOrCount($value, $key, $message = '')
+ * @method static void nullOrUuid($values, $message = '')
+ * @method static void allString($values, $message = '')
+ * @method static void allStringNotEmpty($values, $message = '')
+ * @method static void allInteger($values, $message = '')
+ * @method static void allIntegerish($values, $message = '')
+ * @method static void allFloat($values, $message = '')
+ * @method static void allNumeric($values, $message = '')
+ * @method static void allBoolean($values, $message = '')
+ * @method static void allScalar($values, $message = '')
+ * @method static void allObject($values, $message = '')
+ * @method static void allResource($values, $type = null, $message = '')
+ * @method static void allIsCallable($values, $message = '')
+ * @method static void allIsArray($values, $message = '')
+ * @method static void allIsTraversable($values, $message = '')
+ * @method static void allIsInstanceOf($values, $class, $message = '')
+ * @method static void allNotInstanceOf($values, $class, $message = '')
+ * @method static void allNull($values, $message = '')
+ * @method static void allNotNull($values, $message = '')
+ * @method static void allIsEmpty($values, $message = '')
+ * @method static void allNotEmpty($values, $message = '')
+ * @method static void allTrue($values, $message = '')
+ * @method static void allFalse($values, $message = '')
+ * @method static void allEq($values, $value2, $message = '')
+ * @method static void allNotEq($values,$value2, $message = '')
+ * @method static void allSame($values, $value2, $message = '')
+ * @method static void allNotSame($values, $value2, $message = '')
+ * @method static void allGreaterThan($values, $value2, $message = '')
+ * @method static void allGreaterThanEq($values, $value2, $message = '')
+ * @method static void allLessThan($values, $value2, $message = '')
+ * @method static void allLessThanEq($values, $value2, $message = '')
+ * @method static void allRange($values, $min, $max, $message = '')
+ * @method static void allOneOf($values, $values, $message = '')
+ * @method static void allContains($values, $subString, $message = '')
+ * @method static void allStartsWith($values, $prefix, $message = '')
+ * @method static void allStartsWithLetter($values, $message = '')
+ * @method static void allEndsWith($values, $suffix, $message = '')
+ * @method static void allRegex($values, $pattern, $message = '')
+ * @method static void allAlpha($values, $message = '')
+ * @method static void allDigits($values, $message = '')
+ * @method static void allAlnum($values, $message = '')
+ * @method static void allLower($values, $message = '')
+ * @method static void allUpper($values, $message = '')
+ * @method static void allLength($values, $length, $message = '')
+ * @method static void allMinLength($values, $min, $message = '')
+ * @method static void allMaxLength($values, $max, $message = '')
+ * @method static void allLengthBetween($values, $min, $max, $message = '')
+ * @method static void allFileExists($values, $message = '')
+ * @method static void allFile($values, $message = '')
+ * @method static void allDirectory($values, $message = '')
+ * @method static void allReadable($values, $message = '')
+ * @method static void allWritable($values, $message = '')
+ * @method static void allClassExists($values, $message = '')
+ * @method static void allSubclassOf($values, $class, $message = '')
+ * @method static void allImplementsInterface($values, $interface, $message = '')
+ * @method static void allPropertyExists($values, $property, $message = '')
+ * @method static void allPropertyNotExists($values, $property, $message = '')
+ * @method static void allMethodExists($values, $method, $message = '')
+ * @method static void allMethodNotExists($values, $method, $message = '')
+ * @method static void allKeyExists($values, $key, $message = '')
+ * @method static void allKeyNotExists($values, $key, $message = '')
+ * @method static void allCount($values, $key, $message = '')
+ * @method static void allUuid($values, $message = '')
+ *
+ * @since 1.0
+ *
+ * @author Bernhard Schussek <bschussek@gmail.com>
+ */
+class Assert
+{
+ public static function string($value, $message = '')
+ {
+ if (!is_string($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a string. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function stringNotEmpty($value, $message = '')
+ {
+ static::string($value, $message);
+ static::notEmpty($value, $message);
+ }
+
+ public static function integer($value, $message = '')
+ {
+ if (!is_int($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected an integer. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function integerish($value, $message = '')
+ {
+ if (!is_numeric($value) || $value != (int) $value) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected an integerish value. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function float($value, $message = '')
+ {
+ if (!is_float($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a float. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function numeric($value, $message = '')
+ {
+ if (!is_numeric($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a numeric. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function boolean($value, $message = '')
+ {
+ if (!is_bool($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a boolean. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function scalar($value, $message = '')
+ {
+ if (!is_scalar($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a scalar. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function object($value, $message = '')
+ {
+ if (!is_object($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected an object. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function resource($value, $type = null, $message = '')
+ {
+ if (!is_resource($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a resource. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+
+ if ($type && $type !== get_resource_type($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a resource of type %2$s. Got: %s',
+ static::typeToString($value),
+ $type
+ ));
+ }
+ }
+
+ public static function isCallable($value, $message = '')
+ {
+ if (!is_callable($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a callable. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function isArray($value, $message = '')
+ {
+ if (!is_array($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected an array. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function isTraversable($value, $message = '')
+ {
+ if (!is_array($value) && !($value instanceof Traversable)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a traversable. Got: %s',
+ static::typeToString($value)
+ ));
+ }
+ }
+
+ public static function isInstanceOf($value, $class, $message = '')
+ {
+ if (!($value instanceof $class)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected an instance of %2$s. Got: %s',
+ static::typeToString($value),
+ $class
+ ));
+ }
+ }
+
+ public static function notInstanceOf($value, $class, $message = '')
+ {
+ if ($value instanceof $class) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected an instance other than %2$s. Got: %s',
+ static::typeToString($value),
+ $class
+ ));
+ }
+ }
+
+ public static function isEmpty($value, $message = '')
+ {
+ if (!empty($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected an empty value. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function notEmpty($value, $message = '')
+ {
+ if (empty($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a non-empty value. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function null($value, $message = '')
+ {
+ if (null !== $value) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected null. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function notNull($value, $message = '')
+ {
+ if (null === $value) {
+ static::reportInvalidArgument(
+ $message ?: 'Expected a value other than null.'
+ );
+ }
+ }
+
+ public static function true($value, $message = '')
+ {
+ if (true !== $value) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to be true. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function false($value, $message = '')
+ {
+ if (false !== $value) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to be false. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function eq($value, $value2, $message = '')
+ {
+ if ($value2 != $value) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value equal to %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($value2)
+ ));
+ }
+ }
+
+ public static function notEq($value, $value2, $message = '')
+ {
+ if ($value2 == $value) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a different value than %s.',
+ static::valueToString($value2)
+ ));
+ }
+ }
+
+ public static function same($value, $value2, $message = '')
+ {
+ if ($value2 !== $value) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value identical to %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($value2)
+ ));
+ }
+ }
+
+ public static function notSame($value, $value2, $message = '')
+ {
+ if ($value2 === $value) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value not identical to %s.',
+ static::valueToString($value2)
+ ));
+ }
+ }
+
+ public static function greaterThan($value, $limit, $message = '')
+ {
+ if ($value <= $limit) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value greater than %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($limit)
+ ));
+ }
+ }
+
+ public static function greaterThanEq($value, $limit, $message = '')
+ {
+ if ($value < $limit) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value greater than or equal to %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($limit)
+ ));
+ }
+ }
+
+ public static function lessThan($value, $limit, $message = '')
+ {
+ if ($value >= $limit) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value less than %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($limit)
+ ));
+ }
+ }
+
+ public static function lessThanEq($value, $limit, $message = '')
+ {
+ if ($value > $limit) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value less than or equal to %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($limit)
+ ));
+ }
+ }
+
+ public static function range($value, $min, $max, $message = '')
+ {
+ if ($value < $min || $value > $max) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value between %2$s and %3$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($min),
+ static::valueToString($max)
+ ));
+ }
+ }
+
+ public static function oneOf($value, array $values, $message = '')
+ {
+ if (!in_array($value, $values, true)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected one of: %2$s. Got: %s',
+ static::valueToString($value),
+ implode(', ', array_map(array('static', 'valueToString'), $values))
+ ));
+ }
+ }
+
+ public static function contains($value, $subString, $message = '')
+ {
+ if (false === strpos($value, $subString)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($subString)
+ ));
+ }
+ }
+
+ public static function startsWith($value, $prefix, $message = '')
+ {
+ if (0 !== strpos($value, $prefix)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to start with %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($prefix)
+ ));
+ }
+ }
+
+ public static function startsWithLetter($value, $message = '')
+ {
+ $valid = isset($value[0]);
+
+ if ($valid) {
+ $locale = setlocale(LC_CTYPE, 0);
+ setlocale(LC_CTYPE, 'C');
+ $valid = ctype_alpha($value[0]);
+ setlocale(LC_CTYPE, $locale);
+ }
+
+ if (!$valid) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to start with a letter. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function endsWith($value, $suffix, $message = '')
+ {
+ if ($suffix !== substr($value, -static::strlen($suffix))) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to end with %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($suffix)
+ ));
+ }
+ }
+
+ public static function regex($value, $pattern, $message = '')
+ {
+ if (!preg_match($pattern, $value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'The value %s does not match the expected pattern.',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function alpha($value, $message = '')
+ {
+ $locale = setlocale(LC_CTYPE, 0);
+ setlocale(LC_CTYPE, 'C');
+ $valid = !ctype_alpha($value);
+ setlocale(LC_CTYPE, $locale);
+
+ if ($valid) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain only letters. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function digits($value, $message = '')
+ {
+ $locale = setlocale(LC_CTYPE, 0);
+ setlocale(LC_CTYPE, 'C');
+ $valid = !ctype_digit($value);
+ setlocale(LC_CTYPE, $locale);
+
+ if ($valid) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain digits only. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function alnum($value, $message = '')
+ {
+ $locale = setlocale(LC_CTYPE, 0);
+ setlocale(LC_CTYPE, 'C');
+ $valid = !ctype_alnum($value);
+ setlocale(LC_CTYPE, $locale);
+
+ if ($valid) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain letters and digits only. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function lower($value, $message = '')
+ {
+ $locale = setlocale(LC_CTYPE, 0);
+ setlocale(LC_CTYPE, 'C');
+ $valid = !ctype_lower($value);
+ setlocale(LC_CTYPE, $locale);
+
+ if ($valid) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain lowercase characters only. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function upper($value, $message = '')
+ {
+ $locale = setlocale(LC_CTYPE, 0);
+ setlocale(LC_CTYPE, 'C');
+ $valid = !ctype_upper($value);
+ setlocale(LC_CTYPE, $locale);
+
+ if ($valid) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain uppercase characters only. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function length($value, $length, $message = '')
+ {
+ if ($length !== static::strlen($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain %2$s characters. Got: %s',
+ static::valueToString($value),
+ $length
+ ));
+ }
+ }
+
+ public static function minLength($value, $min, $message = '')
+ {
+ if (static::strlen($value) < $min) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain at least %2$s characters. Got: %s',
+ static::valueToString($value),
+ $min
+ ));
+ }
+ }
+
+ public static function maxLength($value, $max, $message = '')
+ {
+ if (static::strlen($value) > $max) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain at most %2$s characters. Got: %s',
+ static::valueToString($value),
+ $max
+ ));
+ }
+ }
+
+ public static function lengthBetween($value, $min, $max, $message = '')
+ {
+ $length = static::strlen($value);
+
+ if ($length < $min || $length > $max) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a value to contain between %2$s and %3$s characters. Got: %s',
+ static::valueToString($value),
+ $min,
+ $max
+ ));
+ }
+ }
+
+ public static function fileExists($value, $message = '')
+ {
+ static::string($value);
+
+ if (!file_exists($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'The file %s does not exist.',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function file($value, $message = '')
+ {
+ static::fileExists($value, $message);
+
+ if (!is_file($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'The path %s is not a file.',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function directory($value, $message = '')
+ {
+ static::fileExists($value, $message);
+
+ if (!is_dir($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'The path %s is no directory.',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function readable($value, $message = '')
+ {
+ if (!is_readable($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'The path %s is not readable.',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function writable($value, $message = '')
+ {
+ if (!is_writable($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'The path %s is not writable.',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function classExists($value, $message = '')
+ {
+ if (!class_exists($value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected an existing class name. Got: %s',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function subclassOf($value, $class, $message = '')
+ {
+ if (!is_subclass_of($value, $class)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected a sub-class of %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($class)
+ ));
+ }
+ }
+
+ public static function implementsInterface($value, $interface, $message = '')
+ {
+ if (!in_array($interface, class_implements($value))) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected an implementation of %2$s. Got: %s',
+ static::valueToString($value),
+ static::valueToString($interface)
+ ));
+ }
+ }
+
+ public static function propertyExists($classOrObject, $property, $message = '')
+ {
+ if (!property_exists($classOrObject, $property)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected the property %s to exist.',
+ static::valueToString($property)
+ ));
+ }
+ }
+
+ public static function propertyNotExists($classOrObject, $property, $message = '')
+ {
+ if (property_exists($classOrObject, $property)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected the property %s to not exist.',
+ static::valueToString($property)
+ ));
+ }
+ }
+
+ public static function methodExists($classOrObject, $method, $message = '')
+ {
+ if (!method_exists($classOrObject, $method)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected the method %s to exist.',
+ static::valueToString($method)
+ ));
+ }
+ }
+
+ public static function methodNotExists($classOrObject, $method, $message = '')
+ {
+ if (method_exists($classOrObject, $method)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected the method %s to not exist.',
+ static::valueToString($method)
+ ));
+ }
+ }
+
+ public static function keyExists($array, $key, $message = '')
+ {
+ if (!array_key_exists($key, $array)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected the key %s to exist.',
+ static::valueToString($key)
+ ));
+ }
+ }
+
+ public static function keyNotExists($array, $key, $message = '')
+ {
+ if (array_key_exists($key, $array)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Expected the key %s to not exist.',
+ static::valueToString($key)
+ ));
+ }
+ }
+
+ public static function count($array, $number, $message = '')
+ {
+ static::eq(
+ count($array),
+ $number,
+ $message ?: sprintf('Expected an array to contain %d elements. Got: %d.', $number, count($array))
+ );
+ }
+
+ public static function uuid($value, $message = '')
+ {
+ $value = str_replace(array('urn:', 'uuid:', '{', '}'), '', $value);
+
+ // The nil UUID is special form of UUID that is specified to have all
+ // 128 bits set to zero.
+ if ('00000000-0000-0000-0000-000000000000' === $value) {
+ return;
+ }
+
+ if (!preg_match('/^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$/', $value)) {
+ static::reportInvalidArgument(sprintf(
+ $message ?: 'Value %s is not a valid UUID.',
+ static::valueToString($value)
+ ));
+ }
+ }
+
+ public static function throws(Closure $expression, $class = 'Exception', $message = '')
+ {
+ static::string($class);
+
+ $actual = 'none';
+ try {
+ $expression();
+ } catch (Exception $e) {
+ $actual = get_class($e);
+ if ($e instanceof $class) {
+ return;
+ }
+ } catch (Throwable $e) {
+ $actual = get_class($e);
+ if ($e instanceof $class) {
+ return;
+ }
+ }
+
+ static::reportInvalidArgument($message ?: sprintf(
+ 'Expected to throw "%s", got "%s"',
+ $class,
+ $actual
+ ));
+ }
+
+ public static function __callStatic($name, $arguments)
+ {
+ if ('nullOr' === substr($name, 0, 6)) {
+ if (null !== $arguments[0]) {
+ $method = lcfirst(substr($name, 6));
+ call_user_func_array(array('static', $method), $arguments);
+ }
+
+ return;
+ }
+
+ if ('all' === substr($name, 0, 3)) {
+ static::isTraversable($arguments[0]);
+
+ $method = lcfirst(substr($name, 3));
+ $args = $arguments;
+
+ foreach ($arguments[0] as $entry) {
+ $args[0] = $entry;
+
+ call_user_func_array(array('static', $method), $args);
+ }
+
+ return;
+ }
+
+ throw new BadMethodCallException('No such method: '.$name);
+ }
+
+ protected static function valueToString($value)
+ {
+ if (null === $value) {
+ return 'null';
+ }
+
+ if (true === $value) {
+ return 'true';
+ }
+
+ if (false === $value) {
+ return 'false';
+ }
+
+ if (is_array($value)) {
+ return 'array';
+ }
+
+ if (is_object($value)) {
+ return get_class($value);
+ }
+
+ if (is_resource($value)) {
+ return 'resource';
+ }
+
+ if (is_string($value)) {
+ return '"'.$value.'"';
+ }
+
+ return (string) $value;
+ }
+
+ protected static function typeToString($value)
+ {
+ return is_object($value) ? get_class($value) : gettype($value);
+ }
+
+ protected static function strlen($value)
+ {
+ if (!function_exists('mb_detect_encoding')) {
+ return strlen($value);
+ }
+
+ if (false === $encoding = mb_detect_encoding($value)) {
+ return strlen($value);
+ }
+
+ return mb_strwidth($value, $encoding);
+ }
+
+ protected static function reportInvalidArgument($message)
+ {
+ throw new InvalidArgumentException($message);
+ }
+
+ private function __construct()
+ {
+ }
+}
diff --git a/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/tests/AssertTest.php b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/tests/AssertTest.php
new file mode 100644
index 0000000..e9ed505
--- /dev/null
+++ b/Postman/Postman-Mail/mailgun/vendor/webmozart/assert/tests/AssertTest.php
@@ -0,0 +1,451 @@
+<?php
+
+/*
+ * This file is part of the webmozart/assert package.
+ *
+ * (c) Bernhard Schussek <bschussek@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Webmozart\Assert\Tests;
+
+use ArrayIterator;
+use Exception;
+use Error;
+use LogicException;
+use PHPUnit_Framework_TestCase;
+use RuntimeException;
+use stdClass;
+use Webmozart\Assert\Assert;
+
+/**
+ * @since 1.0
+ *
+ * @author Bernhard Schussek <bschussek@gmail.com>
+ */
+class AssertTest extends PHPUnit_Framework_TestCase
+{
+ private static $resource;
+
+ public static function getResource()
+ {
+ if (!static::$resource) {
+ static::$resource = fopen(__FILE__, 'r');
+ }
+
+ return static::$resource;
+ }
+
+ public static function tearDownAfterClass()
+ {
+ @fclose(self::$resource);
+ }
+
+ public function getTests()
+ {
+ $resource = self::getResource();
+
+ return array(
+ array('string', array('value'), true),
+ array('string', array(''), true),
+ array('string', array(1234), false),
+ array('stringNotEmpty', array('value'), true),
+ array('stringNotEmpty', array(''), false),
+ array('stringNotEmpty', array(1234), false),
+ array('integer', array(123), true),
+ array('integer', array('123'), false),
+ array('integer', array(1.0), false),
+ array('integer', array(1.23), false),
+ array('integerish', array(1.0), true),
+ array('integerish', array(1.23), false),
+ array('integerish', array(123), true),
+ array('integerish', array('123'), true),
+ array('float', array(1.0), true),
+ array('float', array(1.23), true),
+ array('float', array(123), false),
+ array('float', array('123'), false),
+ array('numeric', array(1.0), true),
+ array('numeric', array(1.23), true),
+ array('numeric', array(123), true),
+ array('numeric', array('123'), true),
+ array('numeric', array('foo'), false),
+ array('boolean', array(true), true),
+ array('boolean', array(false), true),
+ array('boolean', array(1), false),
+ array('boolean', array('1'), false),
+ array('scalar', array('1'), true),
+ array('scalar', array(123), true),
+ array('scalar', array(true), true),
+ array('scalar', array(null), false),
+ array('scalar', array(array()), false),
+ array('scalar', array(new stdClass()), false),
+ array('object', array(new stdClass()), true),
+ array('object', array(new RuntimeException()), true),
+ array('object', array(null), false),
+ array('object', array(true), false),
+ array('object', array(1), false),
+ array('object', array(array()), false),
+ array('resource', array($resource), true),
+ array('resource', array($resource, 'stream'), true),
+ array('resource', array($resource, 'other'), false),
+ array('resource', array(1), false),
+ array('isCallable', array('strlen'), true),
+ array('isCallable', array(array($this, 'getTests')), true),
+ array('isCallable', array(function () {}), true),
+ array('isCallable', array(1234), false),
+ array('isCallable', array('foobar'), false),
+ array('isArray', array(array()), true),
+ array('isArray', array(array(1, 2, 3)), true),
+ array('isArray', array(new ArrayIterator(array())), false),
+ array('isArray', array(123), false),
+ array('isArray', array(new stdClass()), false),
+ array('isTraversable', array(array()), true),
+ array('isTraversable', array(array(1, 2, 3)), true),
+ array('isTraversable', array(new ArrayIterator(array())), true),
+ array('isTraversable', array(123), false),
+ array('isTraversable', array(new stdClass()), false),
+ array('isInstanceOf', array(new stdClass(), 'stdClass'), true),
+ array('isInstanceOf', array(new Exception(), 'stdClass'), false),
+ array('isInstanceOf', array(123, 'stdClass'), false),
+ array('isInstanceOf', array(array(), 'stdClass'), false),
+ array('notInstanceOf', array(new stdClass(), 'stdClass'), false),
+ array('notInstanceOf', array(new Exception(), 'stdClass'), true),
+ array('notInstanceOf', array(123, 'stdClass'), true),
+ array('notInstanceOf', array(array(), 'stdClass'), true),
+ array('true', array(true), true),
+ array('true', array(false), false),
+ array('true', array(1), false),
+ array('true', array(null), false),
+ array('false', array(false), true),
+ array('false', array(true), false),
+ array('false', array(1), false),
+ array('false', array(0), false),
+ array('false', array(null), false),
+ array('null', array(null), true),
+ array('null', array(false), false),
+ array('null', array(0), false),
+ array('notNull', array(false), true),
+ array('notNull', array(0), true),
+ array('notNull', array(null), false),
+ array('isEmpty', array(null), true),
+ array('isEmpty', array(false), true),
+ array('isEmpty', array(0), true),
+ array('isEmpty', array(''), true),
+ array('isEmpty', array(1), false),
+ array('isEmpty', array('a'), false),
+ array('notEmpty', array(1), true),
+ array('notEmpty', array('a'), true),
+ array('notEmpty', array(null), false),
+ array('notEmpty', array(false), false),
+ array('notEmpty', array(0), false),
+ array('notEmpty', array(''), false),
+ array('eq', array(1, 1), true),
+ array('eq', array(1, '1'), true),
+ array('eq', array(1, true), true),
+ array('eq', array(1, 0), false),
+ array('notEq', array(1, 0), true),
+ array('notEq', array(1, 1), false),
+ array('notEq', array(1, '1'), false),
+ array('notEq', array(1, true), false),
+ array('same', array(1, 1), true),
+ array('same', array(1, '1'), false),
+ array('same', array(1, true), false),
+ array('same', array(1, 0), false),
+ array('notSame', array(1, 0), true),
+ array('notSame', array(1, 1), false),
+ array('notSame', array(1, '1'), true),
+ array('notSame', array(1, true), true),
+ array('greaterThan', array(1, 0), true),
+ array('greaterThan', array(0, 0), false),
+ array('greaterThanEq', array(2, 1), true),
+ array('greaterThanEq', array(1, 1), true),
+ array('greaterThanEq', array(0, 1), false),
+ array('lessThan', array(0, 1), true),
+ array('lessThan', array(1, 1), false),
+ array('lessThanEq', array(0, 1), true),
+ array('lessThanEq', array(1, 1), true),
+ array('lessThanEq', array(2, 1), false),
+ array('range', array(1, 1, 2), true),
+ array('range', array(2, 1, 2), true),
+ array('range', array(0, 1, 2), false),
+ array('range', array(3, 1, 2), false),
+ array('oneOf', array(1, array(1, 2, 3)), true),
+ array('oneOf', array(1, array('1', '2', '3')), false),
+ array('contains', array('abcd', 'ab'), true),
+ array('contains', array('abcd', 'bc'), true),
+ array('contains', array('abcd', 'cd'), true),
+ array('contains', array('abcd', 'de'), false),
+ array('contains', array('', 'de'), false),
+ array('startsWith', array('abcd', 'ab'), true),
+ array('startsWith', array('abcd', 'bc'), false),
+ array('startsWith', array('', 'bc'), false),
+ array('startsWithLetter', array('abcd'), true),
+ array('startsWithLetter', array('1abcd'), false),
+ array('startsWithLetter', array(''), false),
+ array('endsWith', array('abcd', 'cd'), true),
+ array('endsWith', array('abcd', 'bc'), false),
+ array('endsWith', array('', 'bc'), false),
+ array('regex', array('abcd', '~^ab~'), true),
+ array('regex', array('abcd', '~^bc~'), false),
+ array('regex', array('', '~^bc~'), false),
+ array('alpha', array('abcd'), true),
+ array('alpha', array('ab1cd'), false),
+ array('alpha', array(''), false),
+ array('digits', array('1234'), true),
+ array('digits', array('12a34'), false),
+ array('digits', array(''), false),
+ array('alnum', array('ab12'), true),
+ array('alnum', array('ab12$'), false),
+ array('alnum', array(''), false),
+ array('lower', array('abcd'), true),
+ array('lower', array('abCd'), false),
+ array('lower', array('ab_d'), false),
+ array('lower', array(''), false),
+ array('upper', array('ABCD'), true),
+ array('upper', array('ABcD'), false),
+ array('upper', array('AB_D'), false),
+ array('upper', array(''), false),
+ array('length', array('abcd', 4), true),
+ array('length', array('abc', 4), false),
+ array('length', array('abcde', 4), false),
+ array('length', array('äbcd', 4), true, true),
+ array('length', array('äbc', 4), false, true),
+ array('length', array('äbcde', 4), false, true),
+ array('minLength', array('abcd', 4), true),
+ array('minLength', array('abcde', 4), true),
+ array('minLength', array('abc', 4), false),
+ array('minLength', array('äbcd', 4), true, true),
+ array('minLength', array('äbcde', 4), true, true),
+ array('minLength', array('äbc', 4), false, true),
+ array('maxLength', array('abcd', 4), true),
+ array('maxLength', array('abc', 4), true),
+ array('maxLength', array('abcde', 4), false),
+ array('maxLength', array('äbcd', 4), true, true),
+ array('maxLength', array('äbc', 4), true, true),
+ array('maxLength', array('äbcde', 4), false, true),
+ array('lengthBetween', array('abcd', 3, 5), true),
+ array('lengthBetween', array('abc', 3, 5), true),
+ array('lengthBetween', array('abcde', 3, 5), true),
+ array('lengthBetween', array('ab', 3, 5), false),
+ array('lengthBetween', array('abcdef', 3, 5), false),
+ array('lengthBetween', array('äbcd', 3, 5), true, true),
+ array('lengthBetween', array('äbc', 3, 5), true, true),
+ array('lengthBetween', array('äbcde', 3, 5), true, true),
+ array('lengthBetween', array('äb', 3, 5), false, true),
+ array('lengthBetween', array('äbcdef', 3, 5), false, true),
+ array('fileExists', array(__FILE__), true),
+ array('fileExists', array(__DIR__), true),
+ array('fileExists', array(__DIR__.'/foobar'), false),
+ array('file', array(__FILE__), true),
+ array('file', array(__DIR__), false),
+ array('file', array(__DIR__.'/foobar'), false),
+ array('directory', array(__DIR__), true),
+ array('directory', array(__FILE__), false),
+ array('directory', array(__DIR__.'/foobar'), false),
+ // no tests for readable()/writable() for now
+ array('classExists', array(__CLASS__), true),
+ array('classExists', array(__NAMESPACE__.'\Foobar'), false),
+ array('subclassOf', array(__CLASS__, 'PHPUnit_Framework_TestCase'), true),
+ array('subclassOf', array(__CLASS__, 'stdClass'), false),
+ array('implementsInterface', array('ArrayIterator', 'Traversable'), true),
+ array('implementsInterface', array(__CLASS__, 'Traversable'), false),
+ array('propertyExists', array((object) array('property' => 0), 'property'), true),
+ array('propertyExists', array((object) array('property' => null), 'property'), true),
+ array('propertyExists', array((object) array('property' => null), 'foo'), false),
+ array('propertyNotExists', array((object) array('property' => 0), 'property'), false),
+ array('propertyNotExists', array((object) array('property' => null), 'property'), false),
+ array('propertyNotExists', array((object) array('property' => null), 'foo'), true),
+ array('methodExists', array('RuntimeException', 'getMessage'), true),
+ array('methodExists', array(new RuntimeException(), 'getMessage'), true),
+ array('methodExists', array('stdClass', 'getMessage'), false),
+ array('methodExists', array(new stdClass(), 'getMessage'), false),
+ array('methodExists', array(null, 'getMessage'), false),
+ array('methodExists', array(true, 'getMessage'), false),
+ array('methodExists', array(1, 'getMessage'), false),
+ array('methodNotExists', array('RuntimeException', 'getMessage'), false),
+ array('methodNotExists', array(new RuntimeException(), 'getMessage'), false),
+ array('methodNotExists', array('stdClass', 'getMessage'), true),
+ array('methodNotExists', array(new stdClass(), 'getMessage'), true),
+ array('methodNotExists', array(null, 'getMessage'), true),
+ array('methodNotExists', array(true, 'getMessage'), true),
+ array('methodNotExists', array(1, 'getMessage'), true),
+ array('keyExists', array(array('key' => 0), 'key'), true),
+ array('keyExists', array(array('key' => null), 'key'), true),
+ array('keyExists', array(array('key' => null), 'foo'), false),
+ array('keyNotExists', array(array('key' => 0), 'key'), false),
+ array('keyNotExists', array(array('key' => null), 'key'), false),
+ array('keyNotExists', array(array('key' => null), 'foo'), true),
+ array('count', array(array(0, 1, 2), 3), true),
+ array('count', array(array(0, 1, 2), 2), false),
+ array('uuid', array('00000000-0000-0000-0000-000000000000'), true),
+ array('uuid', array('ff6f8cb0-c57d-21e1-9b21-0800200c9a66'), true),
+ array('uuid', array('ff6f8cb0-c57d-11e1-9b21-0800200c9a66'), true),
+ array('uuid', array('ff6f8cb0-c57d-31e1-9b21-0800200c9a66'), true),
+ array('uuid', array('ff6f8cb0-c57d-41e1-9b21-0800200c9a66'), true),
+ array('uuid', array('ff6f8cb0-c57d-51e1-9b21-0800200c9a66'), true),
+ array('uuid', array('FF6F8CB0-C57D-11E1-9B21-0800200C9A66'), true),
+ array('uuid', array('zf6f8cb0-c57d-11e1-9b21-0800200c9a66'), false),
+ array('uuid', array('af6f8cb0c57d11e19b210800200c9a66'), false),
+ array('uuid', array('ff6f8cb0-c57da-51e1-9b21-0800200c9a66'), false),
+ array('uuid', array('af6f8cb-c57d-11e1-9b21-0800200c9a66'), false),
+ array('uuid', array('3f6f8cb0-c57d-11e1-9b21-0800200c9a6'), false),
+ array('throws', array(function() { throw new LogicException('test'); }, 'LogicException'), true),
+ array('throws', array(function() { throw new LogicException('test'); }, 'IllogicException'), false),
+ array('throws', array(function() { throw new Exception('test'); }), true),
+ array('throws', array(function() { trigger_error('test'); }, 'Throwable'), true, false, 70000),
+ array('throws', array(function() { trigger_error('test'); }, 'Unthrowable'), false, false, 70000),
+ array('throws', array(function() { throw new Error(); }, 'Throwable'), true, true, 70000),
+ );
+ }
+
+ public function getMethods()
+ {
+ $methods = array();
+
+ foreach ($this->getTests() as $params) {
+ $methods[$params[0]] = array($params[0]);
+ }
+
+ return array_values($methods);
+ }
+
+ /**
+ * @dataProvider getTests
+ */
+ public function testAssert($method, $args, $success, $multibyte = false, $minVersion = null)
+ {
+ if ($minVersion && PHP_VERSION_ID < $minVersion) {
+ $this->markTestSkipped(sprintf('This test requires php %s or upper.', $minVersion));
+
+ return;
+ }
+ if ($multibyte && !function_exists('mb_strlen')) {
+ $this->markTestSkipped('The function mb_strlen() is not available');
+
+ return;
+ }
+
+ if (!$success) {
+ $this->setExpectedException('\InvalidArgumentException');
+ }
+
+ call_user_func_array(array('Webmozart\Assert\Assert', $method), $args);
+ }
+
+ /**
+ * @dataProvider getTests
+ */
+ public function testNullOr($method, $args, $success, $multibyte = false, $minVersion = null)
+ {
+ if ($minVersion && PHP_VERSION_ID < $minVersion) {
+ $this->markTestSkipped(sprintf('This test requires php %s or upper.', $minVersion));
+
+ return;
+ }
+ if ($multibyte && !function_exists('mb_strlen')) {
+ $this->markTestSkipped('The function mb_strlen() is not available');
+
+ return;
+ }
+
+ if (!$success && null !== reset($args)) {
+ $this->setExpectedException('\InvalidArgumentException');
+ }
+
+ call_user_func_array(array('Webmozart\Assert\Assert', 'nullOr'.ucfirst($method)), $args);
+ }
+
+ /**
+ * @dataProvider getMethods
+ */
+ public function testNullOrAcceptsNull($method)
+ {
+ call_user_func(array('Webmozart\Assert\Assert', 'nullOr'.ucfirst($method)), null);
+ }
+
+ /**
+ * @dataProvider getTests
+ */
+ public function testAllArray($method, $args, $success, $multibyte = false, $minVersion = null)
+ {
+ if ($minVersion && PHP_VERSION_ID < $minVersion) {
+ $this->markTestSkipped(sprintf('This test requires php %s or upper.', $minVersion));
+
+ return;
+ }
+ if ($multibyte && !function_exists('mb_strlen')) {
+ $this->markTestSkipped('The function mb_strlen() is not available');
+
+ return;
+ }
+
+ if (!$success) {
+ $this->setExpectedException('\InvalidArgumentException');
+ }
+
+ $arg = array_shift($args);
+ array_unshift($args, array($arg));
+
+ call_user_func_array(array('Webmozart\Assert\Assert', 'all'.ucfirst($method)), $args);
+ }
+
+ /**
+ * @dataProvider getTests
+ */
+ public function testAllTraversable($method, $args, $success, $multibyte = false, $minVersion = null)
+ {
+ if ($minVersion && PHP_VERSION_ID < $minVersion) {
+ $this->markTestSkipped(sprintf('This test requires php %s or upper.', $minVersion));
+
+ return;
+ }
+ if ($multibyte && !function_exists('mb_strlen')) {
+ $this->markTestSkipped('The function mb_strlen() is not available');
+
+ return;
+ }
+
+ if (!$success) {
+ $this->setExpectedException('\InvalidArgumentException');
+ }
+
+ $arg = array_shift($args);
+ array_unshift($args, new ArrayIterator(array($arg)));
+
+ call_user_func_array(array('Webmozart\Assert\Assert', 'all'.ucfirst($method)), $args);
+ }
+
+ public function getStringConversions()
+ {
+ return array(
+ array('integer', array('foobar'), 'Expected an integer. Got: string'),
+ array('string', array(1), 'Expected a string. Got: integer'),
+ array('string', array(true), 'Expected a string. Got: boolean'),
+ array('string', array(null), 'Expected a string. Got: NULL'),
+ array('string', array(array()), 'Expected a string. Got: array'),
+ array('string', array(new stdClass()), 'Expected a string. Got: stdClass'),
+ array('string', array(self::getResource()), 'Expected a string. Got: resource'),
+
+ array('eq', array('1', '2'), 'Expected a value equal to "2". Got: "1"'),
+ array('eq', array(1, 2), 'Expected a value equal to 2. Got: 1'),
+ array('eq', array(true, false), 'Expected a value equal to false. Got: true'),
+ array('eq', array(true, null), 'Expected a value equal to null. Got: true'),
+ array('eq', array(null, true), 'Expected a value equal to true. Got: null'),
+ array('eq', array(array(1), array(2)), 'Expected a value equal to array. Got: array'),
+ array('eq', array(new ArrayIterator(array()), new stdClass()), 'Expected a value equal to stdClass. Got: ArrayIterator'),
+ array('eq', array(1, self::getResource()), 'Expected a value equal to resource. Got: 1'),
+ );
+ }
+
+ /**
+ * @dataProvider getStringConversions
+ */
+ public function testConvertValuesToStrings($method, $args, $exceptionMessage)
+ {
+ $this->setExpectedException('\InvalidArgumentException', $exceptionMessage);
+
+ call_user_func_array(array('Webmozart\Assert\Assert', $method), $args);
+ }
+}