diff options
author | yehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664> | 2019-11-25 08:22:35 +0000 |
---|---|---|
committer | yehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664> | 2019-11-25 08:22:35 +0000 |
commit | c61784411988d36d9bbd93cd3a97e773990af342 (patch) | |
tree | 924e6e9dea2ba7b1eedb14d0c4b03a38aefdf179 /Postman/Postman-Mail/mailgun/vendor/webmozart | |
parent | 907ce8c044159ca8da6ccce3ec5362ac61e7c142 (diff) | |
download | Post-SMTP-c61784411988d36d9bbd93cd3a97e773990af342.zip |
Adding a folder
Diffstat (limited to 'Postman/Postman-Mail/mailgun/vendor/webmozart')
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); + } +} |