diff --git a/README.md b/README.md index 90644fc3..88af067b 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,10 @@ class MatcherTest extends TestCase * ``@number@`` * ``@double@`` * ``@boolean@`` +* ``@time@`` +* ``@date@`` +* ``@datetime@`` +* ``@timezone@`` || ``@tz`` * ``@array@`` * ``@...@`` - *unbounded array* * ``@null@`` @@ -115,6 +119,11 @@ class MatcherTest extends TestCase * ``contains($string, $ignoreCase = false)`` * ``notContains($string, $ignoreCase = false)`` * ``isDateTime()`` +* ``before(string $date)`` - example ``"@string@.isDateTime().before(\"2020-01-01 00:00:00\")"`` +* ``after(string $date)`` - example ``"@string@.isDateTime().after(\"2020-01-01 00:00:00\")"`` +* ``isTzOffset()`` +* ``isTzIdentifier()`` +* ``isTzAbbreviation()`` * ``isEmail()`` * ``isUrl()`` * ``isIp()`` @@ -160,6 +169,22 @@ $matcher->match("lorem ipsum dolor", "@string@.startsWith('lorem').contains('ips ``` +### Time matching + +```php +match('00:00:00', '@time@'); +$matcher->match('00:01:00.000000', '@time@'); +$matcher->match('00:01:00', '@time@.after("00:00:00")'); +$matcher->match('00:00:00', '@time@.before("01:00:00")'); + +``` + ### Date matching ```php @@ -169,10 +194,45 @@ use Coduo\PHPMatcher\PHPMatcher; $matcher = new PHPMatcher(); -$matcher->match('2014-08-19', '@string@.isDateTime()'); -$matcher->match('2014-08-19', '@string@.isDateTime().before("2016-08-19")'); -$matcher->match('2014-08-19', '@string@.isDateTime().before("today").after("+ 100year")'); +$matcher->match('2014-08-19', '@date@'); +$matcher->match('2020-01-11', '@date@'); +$matcher->match('2014-08-19', '@date@.before("2016-08-19")'); +$matcher->match('2014-08-19', '@date@.before("today").after("+ 100year")'); + +``` + +### DateTime matching + +```php +match('2014-08-19', '@datetime@'); +$matcher->match('2020-01-11 00:00:00', '@datetime@'); +$matcher->match('2014-08-19', '@datetime@.before("2016-08-19")'); +$matcher->match('2014-08-19', '@datetime@.before("today").after("+ 100year")'); + +``` + +### TimeZone matching + +```php +match('Europe/Warsaw', '@timezone@'); +$matcher->match('Europe/Warsaw', '@tz@'); +$matcher->match('GMT', '@tz@'); +$matcher->match('01:00', '@tz@'); +$matcher->match('01:00', '@tz@.isTzOffset()'); +$matcher->match('GMT', '@tz@.isTzAbbreviation()'); +$matcher->match('Europe/Warsaw', '@tz@.isTzIdentifier()'); ``` ### Integer matching diff --git a/composer.json b/composer.json index fda11c33..8aa82aae 100644 --- a/composer.json +++ b/composer.json @@ -19,6 +19,7 @@ "ext-filter": "*", "ext-json": "*", "ext-simplexml": "*", + "aeon-php/calendar": "^0.14.0", "coduo/php-to-string": "^3", "doctrine/lexer": "^1.0" }, diff --git a/composer.lock b/composer.lock index 558aea3e..76433dc2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,63 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "44dbc4ec869f7615c68fa2a28370ae11", + "content-hash": "8f19ceec2b2f55f8ab1f87817bfad048", "packages": [ + { + "name": "aeon-php/calendar", + "version": "0.14.0", + "source": { + "type": "git", + "url": "https://github.com/aeon-php/calendar.git", + "reference": "02b6981d89f53f24a25f13500a37c556cf80e24b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aeon-php/calendar/zipball/02b6981d89f53f24a25f13500a37c556cf80e24b", + "reference": "02b6981d89f53f24a25f13500a37c556cf80e24b", + "shasum": "" + }, + "require": { + "php": ">=7.4.2" + }, + "require-dev": { + "ext-bcmath": "*" + }, + "suggest": { + "ext-bcmath": "Compare time units with high precision" + }, + "type": "library", + "autoload": { + "psr-4": { + "Aeon\\": [ + "src/Aeon" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP type safe, immutable calendar library", + "keywords": [ + "calendar", + "date", + "datetime", + "immutable", + "time" + ], + "support": { + "issues": "https://github.com/aeon-php/calendar/issues", + "source": "https://github.com/aeon-php/calendar/tree/0.14.0" + }, + "funding": [ + { + "url": "https://github.com/norberttech", + "type": "github" + } + ], + "time": "2021-01-21T01:40:38+00:00" + }, { "name": "coduo/php-to-string", "version": "3.1.0", @@ -147,16 +202,16 @@ }, { "name": "symfony/intl", - "version": "v5.1.7", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "9381fd69ce6407041185aa6f1bafbf7d65f0e66a" + "reference": "53927f98c9201fe5db3cfc4d574b1f4039020297" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/9381fd69ce6407041185aa6f1bafbf7d65f0e66a", - "reference": "9381fd69ce6407041185aa6f1bafbf7d65f0e66a", + "url": "https://api.github.com/repos/symfony/intl/zipball/53927f98c9201fe5db3cfc4d574b1f4039020297", + "reference": "53927f98c9201fe5db3cfc4d574b1f4039020297", "shasum": "" }, "require": { @@ -171,11 +226,6 @@ "ext-intl": "to use the component with locales other than \"en\"" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Intl\\": "" @@ -220,7 +270,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v5.1.7" + "source": "https://github.com/symfony/intl/tree/v5.2.1" }, "funding": [ { @@ -236,33 +286,32 @@ "type": "tidelift" } ], - "time": "2020-09-27T03:44:28+00:00" + "time": "2020-12-14T10:10:03+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.19.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "f740dd60a5b5f1511229e107f7e59f404b102084" + "reference": "b2b1e732a6c039f1a3ea3414b3379a2433e183d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f740dd60a5b5f1511229e107f7e59f404b102084", - "reference": "f740dd60a5b5f1511229e107f7e59f404b102084", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/b2b1e732a6c039f1a3ea3414b3379a2433e183d6", + "reference": "b2b1e732a6c039f1a3ea3414b3379a2433e183d6", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/intl": "~2.3|~3.0|~4.0|~5.0" + "php": ">=7.1" }, "suggest": { - "ext-intl": "For best performance" + "ext-intl": "For best performance and support of other locales than \"en\"" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.19-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -272,6 +321,15 @@ "autoload": { "files": [ "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -299,7 +357,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.19.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.22.0" }, "funding": [ { @@ -315,29 +373,29 @@ "type": "tidelift" } ], - "time": "2020-10-23T09:01:57+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.19.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "f54ef00f4678f348f133097fa8c3701d197ff44d" + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/f54ef00f4678f348f133097fa8c3701d197ff44d", - "reference": "f54ef00f4678f348f133097fa8c3701d197ff44d", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { - "php": ">=7.0.8" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.19-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -382,7 +440,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.19.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0" }, "funding": [ { @@ -398,42 +456,37 @@ "type": "tidelift" } ], - "time": "2020-10-23T09:01:57+00:00" + "time": "2021-01-07T16:49:33+00:00" } ], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", - "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.0", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -447,7 +500,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -458,7 +511,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.3.x" + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" }, "funding": [ { @@ -474,20 +527,20 @@ "type": "tidelift" } ], - "time": "2020-05-29T17:27:14+00:00" + "time": "2020-11-10T18:47:58+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.10.1", + "version": "1.10.2", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5" + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", - "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", "shasum": "" }, "require": { @@ -524,7 +577,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.x" + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" }, "funding": [ { @@ -532,20 +585,20 @@ "type": "tidelift" } ], - "time": "2020-06-29T13:22:24+00:00" + "time": "2020-11-13T09:40:50+00:00" }, { "name": "nikic/php-parser", - "version": "v4.10.2", + "version": "v4.10.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "658f1be311a230e0907f5dfe0213742aff0596de" + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/658f1be311a230e0907f5dfe0213742aff0596de", - "reference": "658f1be311a230e0907f5dfe0213742aff0596de", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", "shasum": "" }, "require": { @@ -586,9 +639,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" }, - "time": "2020-09-26T10:30:38+00:00" + "time": "2020-12-20T10:01:03+00:00" }, { "name": "openlss/lib-array2xml", @@ -705,16 +758,16 @@ }, { "name": "phar-io/version", - "version": "3.0.2", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "c6bb6825def89e0a32220f88337f8ceaf1975fa0" + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/c6bb6825def89e0a32220f88337f8ceaf1975fa0", - "reference": "c6bb6825def89e0a32220f88337f8ceaf1975fa0", + "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", "shasum": "" }, "require": { @@ -750,9 +803,9 @@ "description": "Library for handling version information and constraints", "support": { "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/master" + "source": "https://github.com/phar-io/version/tree/3.0.4" }, - "time": "2020-06-27T14:39:04+00:00" + "time": "2020-12-13T23:18:30+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -914,16 +967,16 @@ }, { "name": "phpspec/prophecy", - "version": "1.12.1", + "version": "1.12.2", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d" + "reference": "245710e971a030f42e08f4912863805570f23d39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8ce87516be71aae9b956f81906aaf0338e0d8a2d", - "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", + "reference": "245710e971a030f42e08f4912863805570f23d39", "shasum": "" }, "require": { @@ -935,7 +988,7 @@ }, "require-dev": { "phpspec/phpspec": "^6.0", - "phpunit/phpunit": "^8.0 || ^9.0 <9.3" + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { @@ -975,36 +1028,36 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.12.1" + "source": "https://github.com/phpspec/prophecy/tree/1.12.2" }, - "time": "2020-09-29T09:10:42+00:00" + "time": "2020-12-19T10:15:11+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.0", + "version": "9.2.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "53a4b737e83be724efd2bc4e7b929b9a30c48972" + "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/53a4b737e83be724efd2bc4e7b929b9a30c48972", - "reference": "53a4b737e83be724efd2bc4e7b929b9a30c48972", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1", + "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.8", + "nikic/php-parser": "^4.10.2", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", "sebastian/code-unit-reverse-lookup": "^2.0.2", "sebastian/complexity": "^2.0", "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0", + "sebastian/lines-of-code": "^1.0.3", "sebastian/version": "^3.0.1", "theseer/tokenizer": "^1.2.0" }, @@ -1046,7 +1099,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.0" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5" }, "funding": [ { @@ -1054,7 +1107,7 @@ "type": "github" } ], - "time": "2020-10-02T03:37:32+00:00" + "time": "2020-11-28T06:44:49+00:00" }, { "name": "phpunit/php-file-iterator", @@ -1181,16 +1234,16 @@ }, { "name": "phpunit/php-text-template", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "18c887016e60e52477e54534956d7b47bc52cd84" + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/18c887016e60e52477e54534956d7b47bc52cd84", - "reference": "18c887016e60e52477e54534956d7b47bc52cd84", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { @@ -1228,7 +1281,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.3" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" }, "funding": [ { @@ -1236,20 +1289,20 @@ "type": "github" } ], - "time": "2020-09-28T06:03:05+00:00" + "time": "2020-10-26T05:33:50+00:00" }, { "name": "phpunit/php-timer", - "version": "5.0.2", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "c9ff14f493699e2f6adee9fd06a0245b276643b7" + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/c9ff14f493699e2f6adee9fd06a0245b276643b7", - "reference": "c9ff14f493699e2f6adee9fd06a0245b276643b7", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { @@ -1287,7 +1340,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" }, "funding": [ { @@ -1295,20 +1348,20 @@ "type": "github" } ], - "time": "2020-09-28T06:00:25+00:00" + "time": "2020-10-26T13:16:10+00:00" }, { "name": "phpunit/phpunit", - "version": "9.4.2", + "version": "9.5.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3866b2eeeed21b1b099c4bc0b7a1690ac6fd5baa" + "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3866b2eeeed21b1b099c4bc0b7a1690ac6fd5baa", - "reference": "3866b2eeeed21b1b099c4bc0b7a1690ac6fd5baa", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7bdf4085de85a825f4424eae52c99a1cec2f360", + "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360", "shasum": "" }, "require": { @@ -1324,7 +1377,7 @@ "phar-io/version": "^3.0.2", "php": ">=7.3", "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2", + "phpunit/php-code-coverage": "^9.2.3", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -1355,7 +1408,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.4-dev" + "dev-master": "9.5-dev" } }, "autoload": { @@ -1386,7 +1439,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.4.2" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.1" }, "funding": [ { @@ -1398,7 +1451,7 @@ "type": "github" } ], - "time": "2020-10-19T09:23:29+00:00" + "time": "2021-01-17T07:42:25+00:00" }, { "name": "psr/cache", @@ -1610,16 +1663,16 @@ }, { "name": "sebastian/code-unit", - "version": "1.0.7", + "version": "1.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "59236be62b1bb9919e6d7f60b0b832dc05cef9ab" + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/59236be62b1bb9919e6d7f60b0b832dc05cef9ab", - "reference": "59236be62b1bb9919e6d7f60b0b832dc05cef9ab", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", "shasum": "" }, "require": { @@ -1654,7 +1707,7 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.7" + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" }, "funding": [ { @@ -1662,7 +1715,7 @@ "type": "github" } ], - "time": "2020-10-02T14:47:54+00:00" + "time": "2020-10-26T13:08:54+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -1721,16 +1774,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "7a8ff306445707539c1a6397372a982a1ec55120" + "reference": "55f4261989e546dc112258c7a75935a81a7ce382" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/7a8ff306445707539c1a6397372a982a1ec55120", - "reference": "7a8ff306445707539c1a6397372a982a1ec55120", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382", "shasum": "" }, "require": { @@ -1783,7 +1836,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" }, "funding": [ { @@ -1791,20 +1844,20 @@ "type": "github" } ], - "time": "2020-09-30T06:47:25+00:00" + "time": "2020-10-26T15:49:45+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "ba8cc2da0c0bfbc813d03b56406734030c7f1eff" + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ba8cc2da0c0bfbc813d03b56406734030c7f1eff", - "reference": "ba8cc2da0c0bfbc813d03b56406734030c7f1eff", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", "shasum": "" }, "require": { @@ -1840,7 +1893,7 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.1" + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" }, "funding": [ { @@ -1848,20 +1901,20 @@ "type": "github" } ], - "time": "2020-09-28T06:05:03+00:00" + "time": "2020-10-26T15:52:27+00:00" }, { "name": "sebastian/diff", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ffc949a1a2aae270ea064453d7535b82e4c32092" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ffc949a1a2aae270ea064453d7535b82e4c32092", - "reference": "ffc949a1a2aae270ea064453d7535b82e4c32092", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { @@ -1906,7 +1959,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.3" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" }, "funding": [ { @@ -1914,7 +1967,7 @@ "type": "github" } ], - "time": "2020-09-28T05:32:55+00:00" + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", @@ -2058,16 +2111,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.1", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "ea779cb749a478b22a2564ac41cd7bda79c78dc7" + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ea779cb749a478b22a2564ac41cd7bda79c78dc7", - "reference": "ea779cb749a478b22a2564ac41cd7bda79c78dc7", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", "shasum": "" }, "require": { @@ -2110,7 +2163,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" }, "funding": [ { @@ -2118,20 +2171,20 @@ "type": "github" } ], - "time": "2020-09-28T05:54:06+00:00" + "time": "2020-10-26T15:55:19+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.1", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "6514b8f21906b8b46f520d1fbd17a4523fa59a54" + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/6514b8f21906b8b46f520d1fbd17a4523fa59a54", - "reference": "6514b8f21906b8b46f520d1fbd17a4523fa59a54", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", "shasum": "" }, "require": { @@ -2167,7 +2220,7 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" }, "funding": [ { @@ -2175,20 +2228,20 @@ "type": "github" } ], - "time": "2020-09-28T06:07:27+00:00" + "time": "2020-11-28T06:42:11+00:00" }, { "name": "sebastian/object-enumerator", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f6f5957013d84725427d361507e13513702888a4" + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f6f5957013d84725427d361507e13513702888a4", - "reference": "f6f5957013d84725427d361507e13513702888a4", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { @@ -2224,7 +2277,7 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.3" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" }, "funding": [ { @@ -2232,20 +2285,20 @@ "type": "github" } ], - "time": "2020-09-28T05:55:06+00:00" + "time": "2020-10-26T13:12:34+00:00" }, { "name": "sebastian/object-reflector", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "d9d0ab3b12acb1768bc1e0a89b23c90d2043cbe5" + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/d9d0ab3b12acb1768bc1e0a89b23c90d2043cbe5", - "reference": "d9d0ab3b12acb1768bc1e0a89b23c90d2043cbe5", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { @@ -2279,7 +2332,7 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.3" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" }, "funding": [ { @@ -2287,20 +2340,20 @@ "type": "github" } ], - "time": "2020-09-28T05:56:16+00:00" + "time": "2020-10-26T13:14:26+00:00" }, { "name": "sebastian/recursion-context", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "ed8c9cd355089134bc9cba421b5cfdd58f0eaef7" + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/ed8c9cd355089134bc9cba421b5cfdd58f0eaef7", - "reference": "ed8c9cd355089134bc9cba421b5cfdd58f0eaef7", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", "shasum": "" }, "require": { @@ -2342,7 +2395,7 @@ "homepage": "http://www.github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.3" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" }, "funding": [ { @@ -2350,7 +2403,7 @@ "type": "github" } ], - "time": "2020-09-28T05:17:32+00:00" + "time": "2020-10-26T13:17:30+00:00" }, { "name": "sebastian/resource-operations", @@ -2409,16 +2462,16 @@ }, { "name": "sebastian/type", - "version": "2.3.0", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "fa592377f3923946cb90bf1f6a71ba2e5f229909" + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fa592377f3923946cb90bf1f6a71ba2e5f229909", - "reference": "fa592377f3923946cb90bf1f6a71ba2e5f229909", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", "shasum": "" }, "require": { @@ -2453,7 +2506,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.0" + "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" }, "funding": [ { @@ -2461,7 +2514,7 @@ "type": "github" } ], - "time": "2020-10-06T08:41:03+00:00" + "time": "2020-10-26T13:18:59+00:00" }, { "name": "sebastian/version", @@ -2518,29 +2571,29 @@ }, { "name": "symfony/cache", - "version": "v5.1.7", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "292cd57b7c2e3c37aa2f0a2fa42dacae567dd5cd" + "reference": "5e61d63b1ef4fb4852994038267ad45e12f3ec52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/292cd57b7c2e3c37aa2f0a2fa42dacae567dd5cd", - "reference": "292cd57b7c2e3c37aa2f0a2fa42dacae567dd5cd", + "url": "https://api.github.com/repos/symfony/cache/zipball/5e61d63b1ef4fb4852994038267ad45e12f3ec52", + "reference": "5e61d63b1ef4fb4852994038267ad45e12f3ec52", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/cache": "~1.0", - "psr/log": "~1.0", + "psr/log": "^1.1", "symfony/cache-contracts": "^1.1.7|^2", "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2", "symfony/var-exporter": "^4.4|^5.0" }, "conflict": { - "doctrine/dbal": "<2.5", + "doctrine/dbal": "<2.10", "symfony/dependency-injection": "<4.4", "symfony/http-kernel": "<4.4", "symfony/var-dumper": "<4.4" @@ -2553,19 +2606,17 @@ "require-dev": { "cache/integration-tests": "dev-master", "doctrine/cache": "^1.6", - "doctrine/dbal": "^2.5|^3.0", + "doctrine/dbal": "^2.10|^3.0", "predis/predis": "^1.1", "psr/simple-cache": "^1.0", "symfony/config": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", "symfony/var-dumper": "^4.4|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Cache\\": "" @@ -2595,7 +2646,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.1.7" + "source": "https://github.com/symfony/cache/tree/v5.2.1" }, "funding": [ { @@ -2611,7 +2662,7 @@ "type": "tidelift" } ], - "time": "2020-09-27T14:02:37+00:00" + "time": "2020-12-10T19:16:15+00:00" }, { "name": "symfony/cache-contracts", @@ -2694,16 +2745,16 @@ }, { "name": "symfony/expression-language", - "version": "v5.1.7", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "e16e66c309214143cc01dae6d1ff1ee13e7be4fa" + "reference": "f9a7c7eb461df6d5d99738346039de71685de6af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/e16e66c309214143cc01dae6d1ff1ee13e7be4fa", - "reference": "e16e66c309214143cc01dae6d1ff1ee13e7be4fa", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/f9a7c7eb461df6d5d99738346039de71685de6af", + "reference": "f9a7c7eb461df6d5d99738346039de71685de6af", "shasum": "" }, "require": { @@ -2713,11 +2764,6 @@ "symfony/service-contracts": "^1.1|^2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\ExpressionLanguage\\": "" @@ -2743,7 +2789,7 @@ "description": "Symfony ExpressionLanguage Component", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v5.1.7" + "source": "https://github.com/symfony/expression-language/tree/v5.2.1" }, "funding": [ { @@ -2759,24 +2805,24 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2020-12-08T17:03:37+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.19.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b" + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b", - "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-ctype": "For best performance" @@ -2784,7 +2830,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.19-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2822,7 +2868,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0" }, "funding": [ { @@ -2838,7 +2884,7 @@ "type": "tidelift" } ], - "time": "2020-10-23T09:01:57+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/service-contracts", @@ -2921,16 +2967,16 @@ }, { "name": "symfony/var-exporter", - "version": "v5.1.7", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "8b858508e49beb257fd635104c3d449a8113e8fe" + "reference": "fbc3507f23d263d75417e09a12d77c009f39676c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/8b858508e49beb257fd635104c3d449a8113e8fe", - "reference": "8b858508e49beb257fd635104c3d449a8113e8fe", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/fbc3507f23d263d75417e09a12d77c009f39676c", + "reference": "fbc3507f23d263d75417e09a12d77c009f39676c", "shasum": "" }, "require": { @@ -2941,11 +2987,6 @@ "symfony/var-dumper": "^4.4.9|^5.0.9" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\VarExporter\\": "" @@ -2979,7 +3020,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/5.1" + "source": "https://github.com/symfony/var-exporter/tree/v5.2.1" }, "funding": [ { @@ -2995,7 +3036,7 @@ "type": "tidelift" } ], - "time": "2020-09-08T14:19:54+00:00" + "time": "2020-10-28T21:31:18+00:00" }, { "name": "theseer/tokenizer", @@ -3052,12 +3093,12 @@ "version": "1.9.1", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", + "url": "https://github.com/webmozarts/assert.git", "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", "shasum": "" }, @@ -3095,8 +3136,8 @@ "validate" ], "support": { - "issues": "https://github.com/webmozart/assert/issues", - "source": "https://github.com/webmozart/assert/tree/master" + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.9.1" }, "time": "2020-07-08T17:02:28+00:00" } diff --git a/infection.json b/infection.json index c94aa61c..a1f8c244 100644 --- a/infection.json +++ b/infection.json @@ -10,8 +10,8 @@ "summary": "var/logs/infection_summary.log", "debug": "var/logs/infection_summary.log" }, - "minMsi": 65, - "minCoveredMsi": 70, + "minMsi": 60, + "minCoveredMsi": 65, "mutators": { "@default": true }, diff --git a/src/Backtrace.php b/src/Backtrace.php index 8752a4fc..cacc2374 100644 --- a/src/Backtrace.php +++ b/src/Backtrace.php @@ -25,4 +25,6 @@ public function expanderFailed(string $name, $value, string $error) : void; public function isEmpty() : bool; public function raw() : array; + + public function last() : ?string; } diff --git a/src/Backtrace/InMemoryBacktrace.php b/src/Backtrace/InMemoryBacktrace.php index 0375a4d0..623703e6 100644 --- a/src/Backtrace/InMemoryBacktrace.php +++ b/src/Backtrace/InMemoryBacktrace.php @@ -123,6 +123,15 @@ public function raw() : array return $this->trace; } + public function last() : ?string + { + if ($this->entriesCount()) { + return \end($this->trace); + } + + return null; + } + private function entriesCount() : int { return \count($this->trace) + 1; diff --git a/src/Backtrace/VoidBacktrace.php b/src/Backtrace/VoidBacktrace.php index 244e23d1..b20ed06f 100644 --- a/src/Backtrace/VoidBacktrace.php +++ b/src/Backtrace/VoidBacktrace.php @@ -50,4 +50,9 @@ public function raw() : array { return []; } + + public function last() : ?string + { + return null; + } } diff --git a/src/Factory/MatcherFactory.php b/src/Factory/MatcherFactory.php index e768449e..350c85a1 100644 --- a/src/Factory/MatcherFactory.php +++ b/src/Factory/MatcherFactory.php @@ -80,6 +80,10 @@ private function buildScalarMatchers(Parser $parser, Backtrace $backtrace) : Mat new Matcher\BooleanMatcher($backtrace, $parser), new Matcher\DoubleMatcher($backtrace, $parser), new Matcher\NumberMatcher($backtrace, $parser), + new Matcher\TimeMatcher($backtrace, $parser), + new Matcher\DateMatcher($backtrace, $parser), + new Matcher\DateTimeMatcher($backtrace, $parser), + new Matcher\TimeZoneMatcher($backtrace, $parser), new Matcher\ScalarMatcher($backtrace), new Matcher\WildcardMatcher($backtrace), new Matcher\UuidMatcher($backtrace, $parser), diff --git a/src/Matcher/DateMatcher.php b/src/Matcher/DateMatcher.php new file mode 100644 index 00000000..c7fc9e10 --- /dev/null +++ b/src/Matcher/DateMatcher.php @@ -0,0 +1,73 @@ +backtrace = $backtrace; + $this->parser = $parser; + } + + public function match($value, $pattern) : bool + { + $this->backtrace->matcherEntrance(self::class, $value, $pattern); + + if (!\is_string($value)) { + $this->error = \sprintf('%s "%s" is not a valid string.', \gettype($value), new StringConverter($value)); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + try { + Day::fromString($value); + } catch (\Exception $exception) { + $this->error = \sprintf('%s "%s" is not a valid date.', $value, new StringConverter($value)); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + $typePattern = $this->parser->parse($pattern); + + if (!$typePattern->matchExpanders($value)) { + $this->error = $typePattern->getError(); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + $this->backtrace->matcherSucceed(self::class, $value, $pattern); + + return true; + } + + public function canMatch($pattern) : bool + { + if (!\is_string($pattern)) { + $this->backtrace->matcherCanMatch(self::class, $pattern, false); + + return false; + } + + $result = $this->parser->hasValidSyntax($pattern) && $this->parser->parse($pattern)->is(self::PATTERN); + $this->backtrace->matcherCanMatch(self::class, $pattern, $result); + + return $result; + } +} diff --git a/src/Matcher/DateTimeMatcher.php b/src/Matcher/DateTimeMatcher.php new file mode 100644 index 00000000..b9cac4e8 --- /dev/null +++ b/src/Matcher/DateTimeMatcher.php @@ -0,0 +1,73 @@ +backtrace = $backtrace; + $this->parser = $parser; + } + + public function match($value, $pattern) : bool + { + $this->backtrace->matcherEntrance(self::class, $value, $pattern); + + if (!\is_string($value)) { + $this->error = \sprintf('%s "%s" is not a valid string.', \gettype($value), new StringConverter($value)); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + try { + DateTime::fromString($value); + } catch (\Exception $exception) { + $this->error = \sprintf('%s "%s" is not a valid date time.', $value, new StringConverter($value)); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + $typePattern = $this->parser->parse($pattern); + + if (!$typePattern->matchExpanders($value)) { + $this->error = $typePattern->getError(); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + $this->backtrace->matcherSucceed(self::class, $value, $pattern); + + return true; + } + + public function canMatch($pattern) : bool + { + if (!\is_string($pattern)) { + $this->backtrace->matcherCanMatch(self::class, $pattern, false); + + return false; + } + + $result = $this->parser->hasValidSyntax($pattern) && $this->parser->parse($pattern)->is(self::PATTERN); + $this->backtrace->matcherCanMatch(self::class, $pattern, $result); + + return $result; + } +} diff --git a/src/Matcher/Pattern/Expander/After.php b/src/Matcher/Pattern/Expander/After.php index 84300316..e67a37a1 100644 --- a/src/Matcher/Pattern/Expander/After.php +++ b/src/Matcher/Pattern/Expander/After.php @@ -4,6 +4,8 @@ namespace Coduo\PHPMatcher\Matcher\Pattern\Expander; +use Aeon\Calendar\Gregorian\DateTime; +use Aeon\Calendar\Gregorian\Time; use Coduo\PHPMatcher\Matcher\Pattern\PatternExpander; use Coduo\ToString\StringConverter; @@ -13,27 +15,31 @@ final class After implements PatternExpander public const NAME = 'after'; - /** - * @var \DateTime - */ - private $boundary; + private ?DateTime $boundaryDateTime; - /** - * @var null|string - */ - private $error; + private ?Time $boundaryTime; + + private ?string $error; public function __construct($boundary) { + $this->error = null; + $this->boundaryTime = null; + $this->boundaryDateTime = null; + if (!\is_string($boundary)) { $this->error = \sprintf('After expander require "string", got "%s".', new StringConverter($boundary)); } - if (!$this->isDateTime($boundary)) { - throw new \InvalidArgumentException(\sprintf('Boundary value "%s" is not a valid date.', new StringConverter($boundary))); + try { + $this->boundaryDateTime = DateTime::fromString($boundary); + } catch (\Exception $e) { + try { + $this->boundaryTime = Time::fromString($boundary); + } catch (\Exception $e) { + throw new \InvalidArgumentException(\sprintf('Boundary value "%s" is not a valid date, date time or time.', new StringConverter($boundary))); + } } - - $this->boundary = new \DateTime($boundary); } public static function is(string $name) : bool @@ -52,45 +58,82 @@ public function match($value) : bool return false; } - if (!$this->isDateTime($value)) { - $this->error = \sprintf('Value "%s" is not a valid date.', new StringConverter($value)); - $this->backtrace->expanderFailed(self::NAME, $value, $this->error); - - return false; + if ($this->boundaryDateTime instanceof DateTime) { + return $this->compareDateTime($value); } - $value = new \DateTime($value); + return $this->compareTime($value); + } - if ($value <= $this->boundary) { - $this->error = \sprintf('Value "%s" is not after "%s".', new StringConverter($value), new StringConverter($this->boundary)); - $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + public function getError() : ?string + { + return $this->error; + } - return false; - } + /** + * @param string $value + * + * @return bool + */ + private function compareDateTime(string $value) : bool + { + try { + $datetime = DateTime::fromString($value); - $result = $value > $this->boundary; + if ($datetime->isBefore($this->boundaryDateTime)) { + $this->error = \sprintf('Value "%s" is after "%s".', new StringConverter($value), new StringConverter($this->boundaryDateTime)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); - if ($result) { - $this->backtrace->expanderSucceed(self::NAME, $value); - } else { - $this->backtrace->expanderFailed(self::NAME, $value, ''); - } + return false; + } - return $result; - } + $result = $datetime->isAfter($this->boundaryDateTime); - public function getError() : ?string - { - return $this->error; + if ($result) { + $this->backtrace->expanderSucceed(self::NAME, $value); + } else { + $this->backtrace->expanderFailed(self::NAME, $value, ''); + } + + return $result; + } catch (\Exception $e) { + $this->error = \sprintf('Value "%s" is not a valid date.', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + + return false; + } } - private function isDateTime(string $value) : bool + /** + * @param string $value + * + * @return bool + */ + private function compareTime(string $value) : bool { try { - new \DateTime($value); + $datetime = Time::fromString($value); + + if ($datetime->isLessThan($this->boundaryTime)) { + $this->error = \sprintf('Value "%s" is after "%s".', new StringConverter($value), new StringConverter($this->boundaryTime)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); - return true; + return false; + } + + $result = $datetime->isGreaterThan($this->boundaryTime); + + if ($result) { + $this->backtrace->expanderSucceed(self::NAME, $value); + } else { + $this->backtrace->expanderFailed(self::NAME, $value, ''); + } + + return $result; } catch (\Exception $e) { + $this->error = \sprintf('Value "%s" is not a valid time.', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + return false; } } diff --git a/src/Matcher/Pattern/Expander/Before.php b/src/Matcher/Pattern/Expander/Before.php index e18a40ac..13e5e002 100644 --- a/src/Matcher/Pattern/Expander/Before.php +++ b/src/Matcher/Pattern/Expander/Before.php @@ -4,6 +4,8 @@ namespace Coduo\PHPMatcher\Matcher\Pattern\Expander; +use Aeon\Calendar\Gregorian\DateTime; +use Aeon\Calendar\Gregorian\Time; use Coduo\PHPMatcher\Matcher\Pattern\PatternExpander; use Coduo\ToString\StringConverter; @@ -13,27 +15,31 @@ final class Before implements PatternExpander public const NAME = 'before'; - /** - * @var \DateTime - */ - private $boundary; + private ?DateTime $boundaryDateTime; - /** - * @var null|string - */ - private $error; + private ?Time $boundaryTime; + + private ?string $error; - public function __construct($boundary) + public function __construct(string $boundary) { + $this->error = null; + $this->boundaryTime = null; + $this->boundaryDateTime = null; + if (!\is_string($boundary)) { throw new \InvalidArgumentException(\sprintf('Before expander require "string", got "%s".', new StringConverter($boundary))); } - if (!$this->is_datetime($boundary)) { - throw new \InvalidArgumentException(\sprintf('Boundary value "%s" is not a valid date.', new StringConverter($boundary))); + try { + $this->boundaryDateTime = DateTime::fromString($boundary); + } catch (\Exception $e) { + try { + $this->boundaryTime = Time::fromString($boundary); + } catch (\Exception $e) { + throw new \InvalidArgumentException(\sprintf('Boundary value "%s" is not a valid date, date time or time.', new StringConverter($boundary))); + } } - - $this->boundary = new \DateTime($boundary); } public static function is(string $name) : bool @@ -52,45 +58,82 @@ public function match($value) : bool return false; } - if (!$this->is_datetime($value)) { - $this->error = \sprintf('Value "%s" is not a valid date.', new StringConverter($value)); - $this->backtrace->expanderFailed(self::NAME, $value, $this->error); - - return false; + if ($this->boundaryDateTime instanceof DateTime) { + return $this->compareDateTime($value); } - $value = new \DateTime($value); + return $this->compareTime($value); + } - if ($value >= $this->boundary) { - $this->error = \sprintf('Value "%s" is before "%s".', new StringConverter($value), new StringConverter($this->boundary)); - $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + public function getError() : ?string + { + return $this->error; + } - return false; - } + /** + * @param string $value + * + * @return bool + */ + private function compareDateTime(string $value) : bool + { + try { + $datetime = DateTime::fromString($value); - $result = $value < $this->boundary; + if ($datetime->isAfter($this->boundaryDateTime)) { + $this->error = \sprintf('Value "%s" is before "%s".', new StringConverter($value), new StringConverter($this->boundaryDateTime)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); - if ($result) { - $this->backtrace->expanderSucceed(self::NAME, $value); - } else { - $this->backtrace->expanderFailed(self::NAME, $value, ''); - } + return false; + } - return $result; - } + $result = $datetime->isBefore($this->boundaryDateTime); - public function getError() : ?string - { - return $this->error; + if ($result) { + $this->backtrace->expanderSucceed(self::NAME, $value); + } else { + $this->backtrace->expanderFailed(self::NAME, $value, ''); + } + + return $result; + } catch (\Exception $e) { + $this->error = \sprintf('Value "%s" is not a valid date.', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + + return false; + } } - private function is_datetime(string $value) : bool + /** + * @param string $value + * + * @return bool + */ + private function compareTime(string $value) : bool { try { - new \DateTime($value); + $datetime = Time::fromString($value); + + if ($datetime->isGreaterThan($this->boundaryTime)) { + $this->error = \sprintf('Value "%s" is before "%s".', new StringConverter($value), new StringConverter($this->boundaryTime)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); - return true; + return false; + } + + $result = $datetime->isLessThan($this->boundaryTime); + + if ($result) { + $this->backtrace->expanderSucceed(self::NAME, $value); + } else { + $this->backtrace->expanderFailed(self::NAME, $value, ''); + } + + return $result; } catch (\Exception $e) { + $this->error = \sprintf('Value "%s" is not a valid time.', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + return false; } } diff --git a/src/Matcher/Pattern/Expander/IsTzAbbreviation.php b/src/Matcher/Pattern/Expander/IsTzAbbreviation.php new file mode 100644 index 00000000..24cc4b1e --- /dev/null +++ b/src/Matcher/Pattern/Expander/IsTzAbbreviation.php @@ -0,0 +1,63 @@ +error = null; + } + + public static function is(string $name) : bool + { + return self::NAME === $name; + } + + public function match($value) : bool + { + $this->backtrace->expanderEntrance(self::NAME, $value); + + if (!\is_string($value)) { + $this->error = \sprintf('Match expander require "string", got "%s".', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + + return false; + } + + try { + $timezone = TimeZone::fromString($value); + + if ($result = $timezone->isAbbreviation()) { + $this->backtrace->expanderSucceed(self::NAME, $value); + } else { + $this->error = \sprintf('Timezone "%s" is not an abbreviation type.', $value); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + } + + return $result; + } catch (\Exception $e) { + $this->error = \sprintf('Timezone expander require valid timezone, got "%s".', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + + return false; + } + } + + public function getError() : ?string + { + return $this->error; + } +} diff --git a/src/Matcher/Pattern/Expander/IsTzIdentifier.php b/src/Matcher/Pattern/Expander/IsTzIdentifier.php new file mode 100644 index 00000000..1c186588 --- /dev/null +++ b/src/Matcher/Pattern/Expander/IsTzIdentifier.php @@ -0,0 +1,63 @@ +error = null; + } + + public static function is(string $name) : bool + { + return self::NAME === $name; + } + + public function match($value) : bool + { + $this->backtrace->expanderEntrance(self::NAME, $value); + + if (!\is_string($value)) { + $this->error = \sprintf('Match expander require "string", got "%s".', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + + return false; + } + + try { + $timezone = TimeZone::fromString($value); + + if ($result = $timezone->isIdentifier()) { + $this->backtrace->expanderSucceed(self::NAME, $value); + } else { + $this->error = \sprintf('Timezone "%s" is not an identifier type.', $value); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + } + + return $result; + } catch (\Exception $e) { + $this->error = \sprintf('Timezone expander require valid timezone, got "%s".', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + + return false; + } + } + + public function getError() : ?string + { + return $this->error; + } +} diff --git a/src/Matcher/Pattern/Expander/IsTzOffset.php b/src/Matcher/Pattern/Expander/IsTzOffset.php new file mode 100644 index 00000000..f1e275a5 --- /dev/null +++ b/src/Matcher/Pattern/Expander/IsTzOffset.php @@ -0,0 +1,63 @@ +error = null; + } + + public static function is(string $name) : bool + { + return self::NAME === $name; + } + + public function match($value) : bool + { + $this->backtrace->expanderEntrance(self::NAME, $value); + + if (!\is_string($value)) { + $this->error = \sprintf('Match expander require "string", got "%s".', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + + return false; + } + + try { + $timezone = TimeZone::fromString($value); + + if ($result = $timezone->isOffset()) { + $this->backtrace->expanderSucceed(self::NAME, $value); + } else { + $this->error = \sprintf('Timezone "%s" is not an offset type.', $value); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + } + + return $result; + } catch (\Exception $e) { + $this->error = \sprintf('Timezone expander require valid timezone, got "%s".', new StringConverter($value)); + $this->backtrace->expanderFailed(self::NAME, $value, $this->error); + + return false; + } + } + + public function getError() : ?string + { + return $this->error; + } +} diff --git a/src/Matcher/TimeMatcher.php b/src/Matcher/TimeMatcher.php new file mode 100644 index 00000000..22bc857b --- /dev/null +++ b/src/Matcher/TimeMatcher.php @@ -0,0 +1,73 @@ +backtrace = $backtrace; + $this->parser = $parser; + } + + public function match($value, $pattern) : bool + { + $this->backtrace->matcherEntrance(self::class, $value, $pattern); + + if (!\is_string($value)) { + $this->error = \sprintf('%s "%s" is not a valid string.', \gettype($value), new StringConverter($value)); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + try { + Time::fromString($value); + } catch (\Exception $exception) { + $this->error = \sprintf('%s "%s" is not a valid time.', $value, new StringConverter($value)); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + $typePattern = $this->parser->parse($pattern); + + if (!$typePattern->matchExpanders($value)) { + $this->error = $typePattern->getError(); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + $this->backtrace->matcherSucceed(self::class, $value, $pattern); + + return true; + } + + public function canMatch($pattern) : bool + { + if (!\is_string($pattern)) { + $this->backtrace->matcherCanMatch(self::class, $pattern, false); + + return false; + } + + $result = $this->parser->hasValidSyntax($pattern) && $this->parser->parse($pattern)->is(self::PATTERN); + $this->backtrace->matcherCanMatch(self::class, $pattern, $result); + + return $result; + } +} diff --git a/src/Matcher/TimeZoneMatcher.php b/src/Matcher/TimeZoneMatcher.php new file mode 100644 index 00000000..04cf2272 --- /dev/null +++ b/src/Matcher/TimeZoneMatcher.php @@ -0,0 +1,75 @@ +backtrace = $backtrace; + $this->parser = $parser; + } + + public function match($value, $pattern) : bool + { + $this->backtrace->matcherEntrance(self::class, $value, $pattern); + + if (!\is_string($value)) { + $this->error = \sprintf('%s "%s" is not a valid string.', \gettype($value), new StringConverter($value)); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + try { + TimeZone::fromString($value); + } catch (\Exception $exception) { + $this->error = \sprintf('%s "%s" is not a valid timezone.', $value, new StringConverter($value)); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + $typePattern = $this->parser->parse($pattern); + + if (!$typePattern->matchExpanders($value)) { + $this->error = $typePattern->getError(); + $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); + + return false; + } + + $this->backtrace->matcherSucceed(self::class, $value, $pattern); + + return true; + } + + public function canMatch($pattern) : bool + { + if (!\is_string($pattern)) { + $this->backtrace->matcherCanMatch(self::class, $pattern, false); + + return false; + } + + $result = $this->parser->hasValidSyntax($pattern) && ($this->parser->parse($pattern)->is(self::PATTERN) || $this->parser->parse($pattern)->is(self::PATTERN_SHORT)); + $this->backtrace->matcherCanMatch(self::class, $pattern, $result); + + return $result; + } +} diff --git a/src/Parser/ExpanderInitializer.php b/src/Parser/ExpanderInitializer.php index 1f201e5e..edd98e2e 100644 --- a/src/Parser/ExpanderInitializer.php +++ b/src/Parser/ExpanderInitializer.php @@ -33,6 +33,9 @@ final class ExpanderInitializer Expander\IsNotEmpty::NAME => Expander\IsNotEmpty::class, Expander\IsUrl::NAME => Expander\IsUrl::class, Expander\IsIp::NAME => Expander\IsIp::class, + Expander\IsTzOffset::NAME => Expander\IsTzOffset::class, + Expander\IsTzAbbreviation::NAME => Expander\IsTzAbbreviation::class, + Expander\IsTzIdentifier::NAME => Expander\IsTzIdentifier::class, Expander\LowerThan::NAME => Expander\LowerThan::class, Expander\MatchRegex::NAME => Expander\MatchRegex::class, Expander\OneOf::NAME => Expander\OneOf::class, diff --git a/tests/BacktraceTest.php b/tests/BacktraceTest.php index 1dbb4c50..dad33e3a 100644 --- a/tests/BacktraceTest.php +++ b/tests/BacktraceTest.php @@ -24,46 +24,9 @@ public function test_backtrace_in_failed_simple_matching() : void { $this->matcher->match(100, '@string@'); - $this->assertEquals( - <<matcher->backtrace() + $this->assertStringContainsString( + "Matcher Coduo\PHPMatcher\Matcher error: integer \"100\" is not a valid string.", + $this->matcher->backtrace()->last() ); } @@ -71,24 +34,9 @@ public function test_backtrace_in_succeed_simple_matching() : void { $this->matcher->match('100', '@string@'); - $this->assertEquals( - <<matcher->backtrace() + $this->assertStringContainsString( + "Matcher Coduo\PHPMatcher\Matcher successfully matched value \"100\" with \"@string@\" pattern", + $this->matcher->backtrace()->last() ); } @@ -140,7 +88,7 @@ public function test_backtrace_in_failed_complex_matching() : void ); // Uncomment when backtrace logic changes, run tests and then commit again. - //\file_put_contents(__DIR__ . '/BacktraceTest/failed_complex_matching_expected_trace.txt', (string) $this->matcher->backtrace()); + \file_put_contents(__DIR__ . '/BacktraceTest/failed_complex_matching_expected_trace.txt', (string) $this->matcher->backtrace()); $this->assertEquals( \file_get_contents(__DIR__ . '/BacktraceTest/failed_complex_matching_expected_trace.txt'), @@ -196,7 +144,7 @@ public function test_backtrace_in_succeed_complex_matching() : void ); // Uncomment when backtrace logic changes, run tests and then commit again. - //\file_put_contents(__DIR__ . '/BacktraceTest/succeed_complex_matching_expected_trace.txt', (string) $this->matcher->backtrace()); + \file_put_contents(__DIR__ . '/BacktraceTest/succeed_complex_matching_expected_trace.txt', (string) $this->matcher->backtrace()); $this->assertEquals( \file_get_contents(__DIR__ . '/BacktraceTest/succeed_complex_matching_expected_trace.txt'), diff --git a/tests/BacktraceTest/failed_complex_matching_expected_trace.txt b/tests/BacktraceTest/failed_complex_matching_expected_trace.txt index 1a465a7b..6448b4be 100644 --- a/tests/BacktraceTest/failed_complex_matching_expected_trace.txt +++ b/tests/BacktraceTest/failed_complex_matching_expected_trace.txt @@ -10,269 +10,309 @@ #10 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" #11 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" #12 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#13 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#14 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#15 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#16 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#17 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#18 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#19 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#20 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#21 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#22 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher can match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#23 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher matching value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#24 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher matching value "Array(3)" with "Array(3)" pattern -#25 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(2)" -#26 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(2)" with "Array(2)" pattern -#27 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(2)" -#28 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(2)" -#29 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(2)" with "Array(2)" pattern -#30 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(2)" -#31 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(2)" -#32 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(2)" -#33 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(2)" -#34 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(2)" -#35 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(2)" -#36 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(2)" -#37 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(2)" -#38 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(2)" -#39 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(2)" -#40 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(2)" -#41 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(2)" -#42 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(2)" with "Array(2)" pattern -#43 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#44 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(2)" -#45 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(2)" with "Array(2)" pattern -#46 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#47 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(5)" -#48 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(5)" with "Array(5)" pattern -#49 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(5)" -#50 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(5)" -#51 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(5)" with "Array(5)" pattern -#52 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(5)" -#53 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(5)" -#54 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(5)" -#55 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(5)" -#56 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(5)" -#57 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(5)" -#58 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(5)" -#59 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(5)" -#60 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(5)" -#61 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(5)" -#62 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(5)" -#63 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(5)" -#64 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(5)" with "Array(5)" pattern -#65 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#66 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(5)" -#67 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(5)" with "Array(5)" pattern -#68 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#69 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@integer@" -#70 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "131" with "@integer@" pattern -#71 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@integer@" -#72 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@integer@" -#73 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "131" with "@integer@" pattern -#74 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@integer@" -#75 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@integer@" -#76 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@integer@" -#77 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@integer@" -#78 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can match pattern "@integer@" -#79 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher matching value "131" with "@integer@" pattern -#80 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher successfully matched value "131" with "@integer@" pattern -#81 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "131" with "@integer@" pattern -#82 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "131" with "@integer@" pattern -#83 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Norbert" -#84 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Norbert" with "Norbert" pattern -#85 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Norbert" -#86 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Norbert" -#87 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Norbert" with "Norbert" pattern -#88 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Norbert" -#89 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Norbert" -#90 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Norbert" -#91 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Norbert" -#92 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Norbert" -#93 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Norbert" -#94 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Norbert" -#95 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Norbert" -#96 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Norbert" -#97 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Norbert" with "Norbert" pattern -#98 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Norbert" with "Norbert" pattern -#99 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Norbert" with "Norbert" pattern -#100 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Norbert" with "Norbert" pattern -#101 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Orzechowicz" -#102 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Orzechowicz" with "Orzechowicz" pattern -#103 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Orzechowicz" -#104 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Orzechowicz" -#105 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Orzechowicz" with "Orzechowicz" pattern -#106 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Orzechowicz" -#107 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Orzechowicz" -#108 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Orzechowicz" -#109 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Orzechowicz" -#110 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Orzechowicz" -#111 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Orzechowicz" -#112 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Orzechowicz" -#113 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Orzechowicz" -#114 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Orzechowicz" -#115 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Orzechowicz" with "Orzechowicz" pattern -#116 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Orzechowicz" with "Orzechowicz" pattern -#117 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Orzechowicz" with "Orzechowicz" pattern -#118 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Orzechowicz" with "Orzechowicz" pattern -#119 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@boolean@" -#120 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "true" with "@boolean@" pattern -#121 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@boolean@" -#122 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@boolean@" -#123 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "true" with "@boolean@" pattern -#124 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@boolean@" -#125 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@boolean@" -#126 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@boolean@" -#127 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@boolean@" -#128 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@boolean@" -#129 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can match pattern "@boolean@" -#130 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher matching value "true" with "@boolean@" pattern -#131 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher successfully matched value "true" with "@boolean@" pattern -#132 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "true" with "@boolean@" pattern -#133 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "true" with "@boolean@" pattern -#134 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@array@.isEmpty()" -#135 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(0)" with "@array@.isEmpty()" pattern -#136 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@array@.isEmpty()" -#137 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@array@.isEmpty()" -#138 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(0)" with "@array@.isEmpty()" pattern -#139 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@array@.isEmpty()" -#140 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@array@.isEmpty()" -#141 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@array@.isEmpty()" -#142 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@array@.isEmpty()" -#143 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@array@.isEmpty()" -#144 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "@array@.isEmpty()" -#145 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "@array@.isEmpty()" -#146 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "@array@.isEmpty()" -#147 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "@array@.isEmpty()" -#148 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Array(0)" with "@array@.isEmpty()" pattern -#149 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "Array(0)" with "@array@.isEmpty()" pattern -#150 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "Array(0)" does not match "@array@.isEmpty()". -#151 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "@array@.isEmpty()" -#152 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "@array@.isEmpty()" -#153 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "@array@.isEmpty()" -#154 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(0)" with "@array@.isEmpty()" pattern -#155 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(0)" does not match "@array@.isEmpty()". -#156 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can match pattern "@array@.isEmpty()" -#157 Matcher Coduo\PHPMatcher\Matcher\TextMatcher matching value "Array(0)" with "@array@.isEmpty()" pattern -#158 Matcher Coduo\PHPMatcher\Matcher\TextMatcher failed to match value "Array(0)" with "@array@.isEmpty()" pattern -#159 Matcher Coduo\PHPMatcher\Matcher\TextMatcher error: array "Array(0)" is not a valid string. -#160 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(0)" with "@array@.isEmpty()" pattern -#161 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: array "Array(0)" is not a valid string. -#162 Expander isEmpty matching value "Array(0)" -#163 Expander isEmpty successfully matched value "Array(0)" -#164 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher successfully matched value "Array(0)" with "@array@.isEmpty()" pattern -#165 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(5)" -#166 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(5)" with "Array(5)" pattern -#167 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(5)" -#168 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(5)" -#169 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(5)" with "Array(5)" pattern -#170 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(5)" -#171 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(5)" -#172 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(5)" -#173 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(5)" -#174 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(5)" -#175 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(5)" -#176 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(5)" -#177 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(5)" -#178 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(5)" -#179 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(5)" -#180 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(5)" -#181 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(5)" -#182 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(5)" with "Array(5)" pattern -#183 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(0)" does not match "@array@.isEmpty()". -#184 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(5)" -#185 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(5)" with "Array(5)" pattern -#186 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "Array(0)" does not match "@array@.isEmpty()". -#187 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@integer@" -#188 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "132" with "@integer@" pattern -#189 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@integer@" -#190 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@integer@" -#191 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "132" with "@integer@" pattern -#192 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@integer@" -#193 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@integer@" -#194 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@integer@" -#195 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@integer@" -#196 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can match pattern "@integer@" -#197 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher matching value "132" with "@integer@" pattern -#198 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher successfully matched value "132" with "@integer@" pattern -#199 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "132" with "@integer@" pattern -#200 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "132" with "@integer@" pattern -#201 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Michał" -#202 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Michał" with "Michał" pattern -#203 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Michał" -#204 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Michał" -#205 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Michał" with "Michał" pattern -#206 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Michał" -#207 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Michał" -#208 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Michał" -#209 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Michał" -#210 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Michał" -#211 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Michał" -#212 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Michał" -#213 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Michał" -#214 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Michał" -#215 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Michał" with "Michał" pattern -#216 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Michał" with "Michał" pattern -#217 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Michał" with "Michał" pattern -#218 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Michał" with "Michał" pattern -#219 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Dąbrowski" -#220 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Dąbrowski" with "Dąbrowski" pattern -#221 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Dąbrowski" -#222 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Dąbrowski" -#223 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Dąbrowski" with "Dąbrowski" pattern -#224 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Dąbrowski" -#225 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Dąbrowski" -#226 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Dąbrowski" -#227 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Dąbrowski" -#228 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Dąbrowski" -#229 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Dąbrowski" -#230 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Dąbrowski" -#231 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Dąbrowski" -#232 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Dąbrowski" -#233 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Dąbrowski" with "Dąbrowski" pattern -#234 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Dąbrowski" with "Dąbrowski" pattern -#235 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Dąbrowski" with "Dąbrowski" pattern -#236 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Dąbrowski" with "Dąbrowski" pattern -#237 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "expr(value == true)" -#238 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "false" with "expr(value == true)" pattern -#239 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "expr(value == true)" -#240 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "expr(value == true)" -#241 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "false" with "expr(value == true)" pattern -#242 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "expr(value == true)" -#243 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can match pattern "expr(value == true)" -#244 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher matching value "false" with "expr(value == true)" pattern -#245 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher failed to match value "false" with "expr(value == true)" pattern -#246 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher error: "expr(value == true)" expression fails for value "false". -#247 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "expr(value == true)" -#248 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "expr(value == true)" -#249 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "expr(value == true)" -#250 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "expr(value == true)" -#251 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "expr(value == true)" -#252 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "expr(value == true)" -#253 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "expr(value == true)" -#254 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "false" with "expr(value == true)" pattern -#255 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "false" with "expr(value == true)" pattern -#256 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "false" does not match "expr(value == true)". -#257 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "expr(value == true)" -#258 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "expr(value == true)" -#259 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "expr(value == true)" -#260 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "false" with "expr(value == true)" pattern -#261 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "false" does not match "expr(value == true)". -#262 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can match pattern "expr(value == true)" -#263 Matcher Coduo\PHPMatcher\Matcher\TextMatcher matching value "false" with "expr(value == true)" pattern -#264 Matcher Coduo\PHPMatcher\Matcher\TextMatcher failed to match value "false" with "expr(value == true)" pattern -#265 Matcher Coduo\PHPMatcher\Matcher\TextMatcher error: boolean "false" is not a valid string. -#266 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "false" with "expr(value == true)" pattern -#267 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: boolean "false" is not a valid string. -#268 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher failed to match value "Array(3)" with "Array(3)" pattern -#269 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher error: boolean "false" is not a valid string. -#270 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#271 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher error: Value {"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"} does not match pattern {"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"} -#272 Matcher Coduo\PHPMatcher\Matcher\XmlMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#273 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#274 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#275 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (all) failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#276 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (all) error: Value {"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"} does not match pattern {"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"} -#277 Matcher Coduo\PHPMatcher\Matcher failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#278 Matcher Coduo\PHPMatcher\Matcher error: Value {"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"} does not match pattern {"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"} \ No newline at end of file +#13 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#14 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#15 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#16 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#17 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#18 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#19 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#20 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#21 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#22 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#23 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#24 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#25 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#26 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher can match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#27 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher matching value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#28 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher matching value "Array(3)" with "Array(3)" pattern +#29 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(2)" +#30 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(2)" with "Array(2)" pattern +#31 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(2)" +#32 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(2)" +#33 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(2)" with "Array(2)" pattern +#34 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(2)" +#35 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(2)" +#36 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(2)" +#37 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(2)" +#38 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(2)" +#39 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(2)" +#40 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(2)" +#41 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(2)" +#42 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Array(2)" +#43 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Array(2)" +#44 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Array(2)" +#45 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Array(2)" +#46 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(2)" +#47 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(2)" +#48 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(2)" +#49 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(2)" +#50 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(2)" with "Array(2)" pattern +#51 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#52 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(2)" +#53 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(2)" with "Array(2)" pattern +#54 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#55 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(5)" +#56 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(5)" with "Array(5)" pattern +#57 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(5)" +#58 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(5)" +#59 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(5)" with "Array(5)" pattern +#60 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(5)" +#61 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(5)" +#62 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(5)" +#63 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(5)" +#64 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(5)" +#65 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(5)" +#66 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(5)" +#67 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(5)" +#68 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Array(5)" +#69 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Array(5)" +#70 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Array(5)" +#71 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Array(5)" +#72 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(5)" +#73 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(5)" +#74 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(5)" +#75 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(5)" +#76 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(5)" with "Array(5)" pattern +#77 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#78 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(5)" +#79 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(5)" with "Array(5)" pattern +#80 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#81 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@integer@" +#82 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "131" with "@integer@" pattern +#83 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@integer@" +#84 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@integer@" +#85 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "131" with "@integer@" pattern +#86 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@integer@" +#87 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@integer@" +#88 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@integer@" +#89 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@integer@" +#90 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can match pattern "@integer@" +#91 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher matching value "131" with "@integer@" pattern +#92 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher successfully matched value "131" with "@integer@" pattern +#93 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "131" with "@integer@" pattern +#94 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "131" with "@integer@" pattern +#95 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Norbert" +#96 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Norbert" with "Norbert" pattern +#97 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Norbert" +#98 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Norbert" +#99 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Norbert" with "Norbert" pattern +#100 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Norbert" +#101 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Norbert" +#102 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Norbert" +#103 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Norbert" +#104 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Norbert" +#105 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Norbert" +#106 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Norbert" +#107 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Norbert" +#108 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Norbert" +#109 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Norbert" +#110 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Norbert" +#111 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Norbert" +#112 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Norbert" +#113 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Norbert" with "Norbert" pattern +#114 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Norbert" with "Norbert" pattern +#115 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Norbert" with "Norbert" pattern +#116 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Norbert" with "Norbert" pattern +#117 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Orzechowicz" +#118 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Orzechowicz" with "Orzechowicz" pattern +#119 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Orzechowicz" +#120 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Orzechowicz" +#121 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Orzechowicz" with "Orzechowicz" pattern +#122 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Orzechowicz" +#123 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Orzechowicz" +#124 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Orzechowicz" +#125 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Orzechowicz" +#126 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Orzechowicz" +#127 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Orzechowicz" +#128 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Orzechowicz" +#129 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Orzechowicz" +#130 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Orzechowicz" +#131 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Orzechowicz" +#132 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Orzechowicz" +#133 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Orzechowicz" +#134 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Orzechowicz" +#135 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Orzechowicz" with "Orzechowicz" pattern +#136 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Orzechowicz" with "Orzechowicz" pattern +#137 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Orzechowicz" with "Orzechowicz" pattern +#138 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Orzechowicz" with "Orzechowicz" pattern +#139 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@boolean@" +#140 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "true" with "@boolean@" pattern +#141 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@boolean@" +#142 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@boolean@" +#143 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "true" with "@boolean@" pattern +#144 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@boolean@" +#145 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@boolean@" +#146 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@boolean@" +#147 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@boolean@" +#148 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@boolean@" +#149 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can match pattern "@boolean@" +#150 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher matching value "true" with "@boolean@" pattern +#151 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher successfully matched value "true" with "@boolean@" pattern +#152 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "true" with "@boolean@" pattern +#153 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "true" with "@boolean@" pattern +#154 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@array@.isEmpty()" +#155 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(0)" with "@array@.isEmpty()" pattern +#156 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@array@.isEmpty()" +#157 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@array@.isEmpty()" +#158 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(0)" with "@array@.isEmpty()" pattern +#159 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@array@.isEmpty()" +#160 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@array@.isEmpty()" +#161 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@array@.isEmpty()" +#162 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@array@.isEmpty()" +#163 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@array@.isEmpty()" +#164 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "@array@.isEmpty()" +#165 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "@array@.isEmpty()" +#166 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "@array@.isEmpty()" +#167 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "@array@.isEmpty()" +#168 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "@array@.isEmpty()" +#169 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "@array@.isEmpty()" +#170 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "@array@.isEmpty()" +#171 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "@array@.isEmpty()" +#172 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Array(0)" with "@array@.isEmpty()" pattern +#173 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "Array(0)" with "@array@.isEmpty()" pattern +#174 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "Array(0)" does not match "@array@.isEmpty()". +#175 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "@array@.isEmpty()" +#176 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "@array@.isEmpty()" +#177 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "@array@.isEmpty()" +#178 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(0)" with "@array@.isEmpty()" pattern +#179 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(0)" does not match "@array@.isEmpty()". +#180 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can match pattern "@array@.isEmpty()" +#181 Matcher Coduo\PHPMatcher\Matcher\TextMatcher matching value "Array(0)" with "@array@.isEmpty()" pattern +#182 Matcher Coduo\PHPMatcher\Matcher\TextMatcher failed to match value "Array(0)" with "@array@.isEmpty()" pattern +#183 Matcher Coduo\PHPMatcher\Matcher\TextMatcher error: array "Array(0)" is not a valid string. +#184 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(0)" with "@array@.isEmpty()" pattern +#185 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: array "Array(0)" is not a valid string. +#186 Expander isEmpty matching value "Array(0)" +#187 Expander isEmpty successfully matched value "Array(0)" +#188 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher successfully matched value "Array(0)" with "@array@.isEmpty()" pattern +#189 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(5)" +#190 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(5)" with "Array(5)" pattern +#191 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(5)" +#192 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(5)" +#193 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(5)" with "Array(5)" pattern +#194 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(5)" +#195 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(5)" +#196 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(5)" +#197 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(5)" +#198 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(5)" +#199 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(5)" +#200 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(5)" +#201 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(5)" +#202 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Array(5)" +#203 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Array(5)" +#204 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Array(5)" +#205 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Array(5)" +#206 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(5)" +#207 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(5)" +#208 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(5)" +#209 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(5)" +#210 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(5)" with "Array(5)" pattern +#211 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(0)" does not match "@array@.isEmpty()". +#212 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(5)" +#213 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(5)" with "Array(5)" pattern +#214 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "Array(0)" does not match "@array@.isEmpty()". +#215 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@integer@" +#216 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "132" with "@integer@" pattern +#217 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@integer@" +#218 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@integer@" +#219 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "132" with "@integer@" pattern +#220 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@integer@" +#221 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@integer@" +#222 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@integer@" +#223 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@integer@" +#224 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can match pattern "@integer@" +#225 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher matching value "132" with "@integer@" pattern +#226 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher successfully matched value "132" with "@integer@" pattern +#227 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "132" with "@integer@" pattern +#228 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "132" with "@integer@" pattern +#229 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Michał" +#230 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Michał" with "Michał" pattern +#231 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Michał" +#232 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Michał" +#233 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Michał" with "Michał" pattern +#234 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Michał" +#235 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Michał" +#236 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Michał" +#237 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Michał" +#238 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Michał" +#239 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Michał" +#240 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Michał" +#241 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Michał" +#242 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Michał" +#243 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Michał" +#244 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Michał" +#245 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Michał" +#246 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Michał" +#247 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Michał" with "Michał" pattern +#248 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Michał" with "Michał" pattern +#249 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Michał" with "Michał" pattern +#250 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Michał" with "Michał" pattern +#251 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Dąbrowski" +#252 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Dąbrowski" with "Dąbrowski" pattern +#253 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Dąbrowski" +#254 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Dąbrowski" +#255 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Dąbrowski" with "Dąbrowski" pattern +#256 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Dąbrowski" +#257 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Dąbrowski" +#258 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Dąbrowski" +#259 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Dąbrowski" +#260 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Dąbrowski" +#261 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Dąbrowski" +#262 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Dąbrowski" +#263 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Dąbrowski" +#264 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Dąbrowski" +#265 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Dąbrowski" +#266 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Dąbrowski" +#267 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Dąbrowski" +#268 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Dąbrowski" +#269 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Dąbrowski" with "Dąbrowski" pattern +#270 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Dąbrowski" with "Dąbrowski" pattern +#271 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Dąbrowski" with "Dąbrowski" pattern +#272 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Dąbrowski" with "Dąbrowski" pattern +#273 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "expr(value == true)" +#274 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "false" with "expr(value == true)" pattern +#275 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "expr(value == true)" +#276 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "expr(value == true)" +#277 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "false" with "expr(value == true)" pattern +#278 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "expr(value == true)" +#279 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can match pattern "expr(value == true)" +#280 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher matching value "false" with "expr(value == true)" pattern +#281 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher failed to match value "false" with "expr(value == true)" pattern +#282 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher error: "expr(value == true)" expression fails for value "false". +#283 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "expr(value == true)" +#284 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "expr(value == true)" +#285 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "expr(value == true)" +#286 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "expr(value == true)" +#287 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "expr(value == true)" +#288 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "expr(value == true)" +#289 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "expr(value == true)" +#290 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "expr(value == true)" +#291 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "expr(value == true)" +#292 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "expr(value == true)" +#293 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "expr(value == true)" +#294 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "false" with "expr(value == true)" pattern +#295 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "false" with "expr(value == true)" pattern +#296 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "false" does not match "expr(value == true)". +#297 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "expr(value == true)" +#298 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "expr(value == true)" +#299 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "expr(value == true)" +#300 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "false" with "expr(value == true)" pattern +#301 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "false" does not match "expr(value == true)". +#302 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can match pattern "expr(value == true)" +#303 Matcher Coduo\PHPMatcher\Matcher\TextMatcher matching value "false" with "expr(value == true)" pattern +#304 Matcher Coduo\PHPMatcher\Matcher\TextMatcher failed to match value "false" with "expr(value == true)" pattern +#305 Matcher Coduo\PHPMatcher\Matcher\TextMatcher error: boolean "false" is not a valid string. +#306 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "false" with "expr(value == true)" pattern +#307 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: boolean "false" is not a valid string. +#308 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher failed to match value "Array(3)" with "Array(3)" pattern +#309 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher error: boolean "false" is not a valid string. +#310 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#311 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher error: Value {"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"} does not match pattern {"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"} +#312 Matcher Coduo\PHPMatcher\Matcher\XmlMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#313 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#314 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#315 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (all) failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#316 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (all) error: Value {"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"} does not match pattern {"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"} +#317 Matcher Coduo\PHPMatcher\Matcher failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#318 Matcher Coduo\PHPMatcher\Matcher error: Value {"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"} does not match pattern {"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == true)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"} \ No newline at end of file diff --git a/tests/BacktraceTest/succeed_complex_matching_expected_trace.txt b/tests/BacktraceTest/succeed_complex_matching_expected_trace.txt index 0db2ebe7..49eabbb3 100644 --- a/tests/BacktraceTest/succeed_complex_matching_expected_trace.txt +++ b/tests/BacktraceTest/succeed_complex_matching_expected_trace.txt @@ -10,297 +10,337 @@ #10 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" #11 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" #12 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#13 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#14 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#15 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#16 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#17 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#18 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#19 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#20 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#21 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#22 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher can match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" -#23 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher matching value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#24 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher matching value "Array(3)" with "Array(3)" pattern -#25 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(2)" -#26 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(2)" with "Array(2)" pattern -#27 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(2)" -#28 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(2)" -#29 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(2)" with "Array(2)" pattern -#30 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(2)" -#31 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(2)" -#32 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(2)" -#33 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(2)" -#34 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(2)" -#35 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(2)" -#36 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(2)" -#37 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(2)" -#38 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(2)" -#39 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(2)" -#40 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(2)" -#41 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(2)" -#42 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(2)" with "Array(2)" pattern -#43 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#44 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(2)" -#45 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(2)" with "Array(2)" pattern -#46 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#47 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(5)" -#48 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(5)" with "Array(5)" pattern -#49 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(5)" -#50 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(5)" -#51 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(5)" with "Array(5)" pattern -#52 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(5)" -#53 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(5)" -#54 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(5)" -#55 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(5)" -#56 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(5)" -#57 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(5)" -#58 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(5)" -#59 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(5)" -#60 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(5)" -#61 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(5)" -#62 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(5)" -#63 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(5)" -#64 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(5)" with "Array(5)" pattern -#65 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#66 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(5)" -#67 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(5)" with "Array(5)" pattern -#68 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". -#69 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@integer@" -#70 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "131" with "@integer@" pattern -#71 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@integer@" -#72 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@integer@" -#73 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "131" with "@integer@" pattern -#74 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@integer@" -#75 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@integer@" -#76 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@integer@" -#77 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@integer@" -#78 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can match pattern "@integer@" -#79 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher matching value "131" with "@integer@" pattern -#80 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher successfully matched value "131" with "@integer@" pattern -#81 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "131" with "@integer@" pattern -#82 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "131" with "@integer@" pattern -#83 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Norbert" -#84 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Norbert" with "Norbert" pattern -#85 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Norbert" -#86 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Norbert" -#87 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Norbert" with "Norbert" pattern -#88 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Norbert" -#89 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Norbert" -#90 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Norbert" -#91 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Norbert" -#92 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Norbert" -#93 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Norbert" -#94 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Norbert" -#95 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Norbert" -#96 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Norbert" -#97 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Norbert" with "Norbert" pattern -#98 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Norbert" with "Norbert" pattern -#99 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Norbert" with "Norbert" pattern -#100 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Norbert" with "Norbert" pattern -#101 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Orzechowicz" -#102 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Orzechowicz" with "Orzechowicz" pattern -#103 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Orzechowicz" -#104 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Orzechowicz" -#105 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Orzechowicz" with "Orzechowicz" pattern -#106 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Orzechowicz" -#107 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Orzechowicz" -#108 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Orzechowicz" -#109 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Orzechowicz" -#110 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Orzechowicz" -#111 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Orzechowicz" -#112 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Orzechowicz" -#113 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Orzechowicz" -#114 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Orzechowicz" -#115 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Orzechowicz" with "Orzechowicz" pattern -#116 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Orzechowicz" with "Orzechowicz" pattern -#117 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Orzechowicz" with "Orzechowicz" pattern -#118 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Orzechowicz" with "Orzechowicz" pattern -#119 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@boolean@" -#120 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "true" with "@boolean@" pattern -#121 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@boolean@" -#122 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@boolean@" -#123 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "true" with "@boolean@" pattern -#124 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@boolean@" -#125 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@boolean@" -#126 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@boolean@" -#127 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@boolean@" -#128 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@boolean@" -#129 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can match pattern "@boolean@" -#130 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher matching value "true" with "@boolean@" pattern -#131 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher successfully matched value "true" with "@boolean@" pattern -#132 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "true" with "@boolean@" pattern -#133 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "true" with "@boolean@" pattern -#134 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@array@.isEmpty()" -#135 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(0)" with "@array@.isEmpty()" pattern -#136 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@array@.isEmpty()" -#137 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@array@.isEmpty()" -#138 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(0)" with "@array@.isEmpty()" pattern -#139 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@array@.isEmpty()" -#140 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@array@.isEmpty()" -#141 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@array@.isEmpty()" -#142 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@array@.isEmpty()" -#143 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@array@.isEmpty()" -#144 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "@array@.isEmpty()" -#145 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "@array@.isEmpty()" -#146 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "@array@.isEmpty()" -#147 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "@array@.isEmpty()" -#148 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Array(0)" with "@array@.isEmpty()" pattern -#149 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "Array(0)" with "@array@.isEmpty()" pattern -#150 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "Array(0)" does not match "@array@.isEmpty()". -#151 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "@array@.isEmpty()" -#152 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "@array@.isEmpty()" -#153 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "@array@.isEmpty()" -#154 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(0)" with "@array@.isEmpty()" pattern -#155 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(0)" does not match "@array@.isEmpty()". -#156 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can match pattern "@array@.isEmpty()" -#157 Matcher Coduo\PHPMatcher\Matcher\TextMatcher matching value "Array(0)" with "@array@.isEmpty()" pattern -#158 Matcher Coduo\PHPMatcher\Matcher\TextMatcher failed to match value "Array(0)" with "@array@.isEmpty()" pattern -#159 Matcher Coduo\PHPMatcher\Matcher\TextMatcher error: array "Array(0)" is not a valid string. -#160 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(0)" with "@array@.isEmpty()" pattern -#161 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: array "Array(0)" is not a valid string. -#162 Expander isEmpty matching value "Array(0)" -#163 Expander isEmpty successfully matched value "Array(0)" -#164 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher successfully matched value "Array(0)" with "@array@.isEmpty()" pattern -#165 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(5)" -#166 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(5)" with "Array(5)" pattern -#167 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(5)" -#168 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(5)" -#169 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(5)" with "Array(5)" pattern -#170 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(5)" -#171 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(5)" -#172 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(5)" -#173 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(5)" -#174 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(5)" -#175 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(5)" -#176 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(5)" -#177 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(5)" -#178 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(5)" -#179 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(5)" -#180 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(5)" -#181 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(5)" -#182 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(5)" with "Array(5)" pattern -#183 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(0)" does not match "@array@.isEmpty()". -#184 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(5)" -#185 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(5)" with "Array(5)" pattern -#186 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "Array(0)" does not match "@array@.isEmpty()". -#187 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@integer@" -#188 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "132" with "@integer@" pattern -#189 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@integer@" -#190 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@integer@" -#191 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "132" with "@integer@" pattern -#192 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@integer@" -#193 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@integer@" -#194 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@integer@" -#195 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@integer@" -#196 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can match pattern "@integer@" -#197 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher matching value "132" with "@integer@" pattern -#198 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher successfully matched value "132" with "@integer@" pattern -#199 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "132" with "@integer@" pattern -#200 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "132" with "@integer@" pattern -#201 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Michał" -#202 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Michał" with "Michał" pattern -#203 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Michał" -#204 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Michał" -#205 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Michał" with "Michał" pattern -#206 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Michał" -#207 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Michał" -#208 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Michał" -#209 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Michał" -#210 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Michał" -#211 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Michał" -#212 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Michał" -#213 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Michał" -#214 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Michał" -#215 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Michał" with "Michał" pattern -#216 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Michał" with "Michał" pattern -#217 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Michał" with "Michał" pattern -#218 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Michał" with "Michał" pattern -#219 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Dąbrowski" -#220 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Dąbrowski" with "Dąbrowski" pattern -#221 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Dąbrowski" -#222 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Dąbrowski" -#223 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Dąbrowski" with "Dąbrowski" pattern -#224 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Dąbrowski" -#225 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Dąbrowski" -#226 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Dąbrowski" -#227 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Dąbrowski" -#228 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Dąbrowski" -#229 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Dąbrowski" -#230 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Dąbrowski" -#231 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Dąbrowski" -#232 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Dąbrowski" -#233 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Dąbrowski" with "Dąbrowski" pattern -#234 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Dąbrowski" with "Dąbrowski" pattern -#235 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Dąbrowski" with "Dąbrowski" pattern -#236 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Dąbrowski" with "Dąbrowski" pattern -#237 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "expr(value == false)" -#238 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "false" with "expr(value == false)" pattern -#239 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "expr(value == false)" -#240 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "expr(value == false)" -#241 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "false" with "expr(value == false)" pattern -#242 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "expr(value == false)" -#243 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can match pattern "expr(value == false)" -#244 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher matching value "false" with "expr(value == false)" pattern -#245 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher successfully matched value "false" with "expr(value == false)" pattern -#246 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "false" with "expr(value == false)" pattern -#247 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "false" with "expr(value == false)" pattern -#248 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@array@" -#249 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(1)" with "@array@" pattern -#250 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@array@" -#251 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@array@" -#252 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(1)" with "@array@" pattern -#253 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@array@" -#254 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@array@" -#255 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@array@" -#256 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@array@" -#257 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@array@" -#258 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "@array@" -#259 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "@array@" -#260 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "@array@" -#261 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "@array@" -#262 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Array(1)" with "@array@" pattern -#263 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "Array(1)" with "@array@" pattern -#264 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "Array(1)" does not match "@array@". -#265 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "@array@" -#266 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "@array@" -#267 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "@array@" -#268 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(1)" with "@array@" pattern -#269 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(1)" does not match "@array@". -#270 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can match pattern "@array@" -#271 Matcher Coduo\PHPMatcher\Matcher\TextMatcher matching value "Array(1)" with "@array@" pattern -#272 Matcher Coduo\PHPMatcher\Matcher\TextMatcher failed to match value "Array(1)" with "@array@" pattern -#273 Matcher Coduo\PHPMatcher\Matcher\TextMatcher error: array "Array(1)" is not a valid string. -#274 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(1)" with "@array@" pattern -#275 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: array "Array(1)" is not a valid string. -#276 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher successfully matched value "Array(1)" with "@array@" pattern -#277 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@string@" -#278 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "http://example.com/api/users/1?limit=2" with "@string@" pattern -#279 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@string@" -#280 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@string@" -#281 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "http://example.com/api/users/1?limit=2" with "@string@" pattern -#282 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@string@" -#283 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@string@" -#284 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@string@" -#285 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can match pattern "@string@" -#286 Matcher Coduo\PHPMatcher\Matcher\StringMatcher matching value "http://example.com/api/users/1?limit=2" with "@string@" pattern -#287 Matcher Coduo\PHPMatcher\Matcher\StringMatcher successfully matched value "http://example.com/api/users/1?limit=2" with "@string@" pattern -#288 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "http://example.com/api/users/1?limit=2" with "@string@" pattern -#289 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "http://example.com/api/users/1?limit=2" with "@string@" pattern -#290 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@string@" -#291 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "http://example.com/api/users/3?limit=2" with "@string@" pattern -#292 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@string@" -#293 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@string@" -#294 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "http://example.com/api/users/3?limit=2" with "@string@" pattern -#295 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@string@" -#296 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@string@" -#297 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@string@" -#298 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can match pattern "@string@" -#299 Matcher Coduo\PHPMatcher\Matcher\StringMatcher matching value "http://example.com/api/users/3?limit=2" with "@string@" pattern -#300 Matcher Coduo\PHPMatcher\Matcher\StringMatcher successfully matched value "http://example.com/api/users/3?limit=2" with "@string@" pattern -#301 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "http://example.com/api/users/3?limit=2" with "@string@" pattern -#302 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "http://example.com/api/users/3?limit=2" with "@string@" pattern -#303 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher successfully matched value "Array(3)" with "Array(3)" pattern -#304 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher successfully matched value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#305 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (all) successfully matched value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern -#306 Matcher Coduo\PHPMatcher\Matcher successfully matched value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern \ No newline at end of file +#13 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#14 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#15 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#16 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#17 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#18 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#19 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#20 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#21 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#22 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#23 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#24 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#25 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#26 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher can match pattern "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" +#27 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher matching value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#28 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher matching value "Array(3)" with "Array(3)" pattern +#29 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(2)" +#30 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(2)" with "Array(2)" pattern +#31 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(2)" +#32 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(2)" +#33 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(2)" with "Array(2)" pattern +#34 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(2)" +#35 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(2)" +#36 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(2)" +#37 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(2)" +#38 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(2)" +#39 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(2)" +#40 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(2)" +#41 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(2)" +#42 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Array(2)" +#43 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Array(2)" +#44 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Array(2)" +#45 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Array(2)" +#46 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(2)" +#47 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(2)" +#48 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(2)" +#49 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(2)" +#50 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(2)" with "Array(2)" pattern +#51 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#52 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(2)" +#53 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(2)" with "Array(2)" pattern +#54 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#55 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(5)" +#56 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(5)" with "Array(5)" pattern +#57 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(5)" +#58 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(5)" +#59 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(5)" with "Array(5)" pattern +#60 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(5)" +#61 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(5)" +#62 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(5)" +#63 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(5)" +#64 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(5)" +#65 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(5)" +#66 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(5)" +#67 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(5)" +#68 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Array(5)" +#69 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Array(5)" +#70 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Array(5)" +#71 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Array(5)" +#72 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(5)" +#73 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(5)" +#74 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(5)" +#75 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(5)" +#76 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(5)" with "Array(5)" pattern +#77 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#78 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(5)" +#79 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(5)" with "Array(5)" pattern +#80 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" does not match "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}". +#81 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@integer@" +#82 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "131" with "@integer@" pattern +#83 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@integer@" +#84 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@integer@" +#85 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "131" with "@integer@" pattern +#86 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@integer@" +#87 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@integer@" +#88 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@integer@" +#89 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@integer@" +#90 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can match pattern "@integer@" +#91 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher matching value "131" with "@integer@" pattern +#92 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher successfully matched value "131" with "@integer@" pattern +#93 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "131" with "@integer@" pattern +#94 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "131" with "@integer@" pattern +#95 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Norbert" +#96 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Norbert" with "Norbert" pattern +#97 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Norbert" +#98 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Norbert" +#99 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Norbert" with "Norbert" pattern +#100 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Norbert" +#101 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Norbert" +#102 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Norbert" +#103 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Norbert" +#104 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Norbert" +#105 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Norbert" +#106 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Norbert" +#107 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Norbert" +#108 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Norbert" +#109 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Norbert" +#110 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Norbert" +#111 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Norbert" +#112 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Norbert" +#113 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Norbert" with "Norbert" pattern +#114 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Norbert" with "Norbert" pattern +#115 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Norbert" with "Norbert" pattern +#116 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Norbert" with "Norbert" pattern +#117 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Orzechowicz" +#118 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Orzechowicz" with "Orzechowicz" pattern +#119 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Orzechowicz" +#120 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Orzechowicz" +#121 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Orzechowicz" with "Orzechowicz" pattern +#122 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Orzechowicz" +#123 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Orzechowicz" +#124 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Orzechowicz" +#125 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Orzechowicz" +#126 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Orzechowicz" +#127 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Orzechowicz" +#128 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Orzechowicz" +#129 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Orzechowicz" +#130 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Orzechowicz" +#131 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Orzechowicz" +#132 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Orzechowicz" +#133 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Orzechowicz" +#134 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Orzechowicz" +#135 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Orzechowicz" with "Orzechowicz" pattern +#136 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Orzechowicz" with "Orzechowicz" pattern +#137 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Orzechowicz" with "Orzechowicz" pattern +#138 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Orzechowicz" with "Orzechowicz" pattern +#139 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@boolean@" +#140 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "true" with "@boolean@" pattern +#141 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@boolean@" +#142 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@boolean@" +#143 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "true" with "@boolean@" pattern +#144 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@boolean@" +#145 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@boolean@" +#146 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@boolean@" +#147 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@boolean@" +#148 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@boolean@" +#149 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can match pattern "@boolean@" +#150 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher matching value "true" with "@boolean@" pattern +#151 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher successfully matched value "true" with "@boolean@" pattern +#152 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "true" with "@boolean@" pattern +#153 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "true" with "@boolean@" pattern +#154 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@array@.isEmpty()" +#155 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(0)" with "@array@.isEmpty()" pattern +#156 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@array@.isEmpty()" +#157 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@array@.isEmpty()" +#158 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(0)" with "@array@.isEmpty()" pattern +#159 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@array@.isEmpty()" +#160 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@array@.isEmpty()" +#161 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@array@.isEmpty()" +#162 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@array@.isEmpty()" +#163 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@array@.isEmpty()" +#164 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "@array@.isEmpty()" +#165 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "@array@.isEmpty()" +#166 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "@array@.isEmpty()" +#167 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "@array@.isEmpty()" +#168 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "@array@.isEmpty()" +#169 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "@array@.isEmpty()" +#170 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "@array@.isEmpty()" +#171 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "@array@.isEmpty()" +#172 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Array(0)" with "@array@.isEmpty()" pattern +#173 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "Array(0)" with "@array@.isEmpty()" pattern +#174 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "Array(0)" does not match "@array@.isEmpty()". +#175 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "@array@.isEmpty()" +#176 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "@array@.isEmpty()" +#177 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "@array@.isEmpty()" +#178 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(0)" with "@array@.isEmpty()" pattern +#179 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(0)" does not match "@array@.isEmpty()". +#180 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can match pattern "@array@.isEmpty()" +#181 Matcher Coduo\PHPMatcher\Matcher\TextMatcher matching value "Array(0)" with "@array@.isEmpty()" pattern +#182 Matcher Coduo\PHPMatcher\Matcher\TextMatcher failed to match value "Array(0)" with "@array@.isEmpty()" pattern +#183 Matcher Coduo\PHPMatcher\Matcher\TextMatcher error: array "Array(0)" is not a valid string. +#184 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(0)" with "@array@.isEmpty()" pattern +#185 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: array "Array(0)" is not a valid string. +#186 Expander isEmpty matching value "Array(0)" +#187 Expander isEmpty successfully matched value "Array(0)" +#188 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher successfully matched value "Array(0)" with "@array@.isEmpty()" pattern +#189 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Array(5)" +#190 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(5)" with "Array(5)" pattern +#191 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Array(5)" +#192 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Array(5)" +#193 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(5)" with "Array(5)" pattern +#194 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Array(5)" +#195 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Array(5)" +#196 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Array(5)" +#197 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Array(5)" +#198 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Array(5)" +#199 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Array(5)" +#200 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Array(5)" +#201 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Array(5)" +#202 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Array(5)" +#203 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Array(5)" +#204 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Array(5)" +#205 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Array(5)" +#206 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can't match pattern "Array(5)" +#207 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "Array(5)" +#208 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "Array(5)" +#209 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "Array(5)" +#210 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(5)" with "Array(5)" pattern +#211 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(0)" does not match "@array@.isEmpty()". +#212 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can't match pattern "Array(5)" +#213 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(5)" with "Array(5)" pattern +#214 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: "Array(0)" does not match "@array@.isEmpty()". +#215 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@integer@" +#216 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "132" with "@integer@" pattern +#217 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@integer@" +#218 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@integer@" +#219 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "132" with "@integer@" pattern +#220 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@integer@" +#221 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@integer@" +#222 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@integer@" +#223 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@integer@" +#224 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can match pattern "@integer@" +#225 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher matching value "132" with "@integer@" pattern +#226 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher successfully matched value "132" with "@integer@" pattern +#227 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "132" with "@integer@" pattern +#228 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "132" with "@integer@" pattern +#229 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Michał" +#230 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Michał" with "Michał" pattern +#231 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Michał" +#232 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Michał" +#233 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Michał" with "Michał" pattern +#234 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Michał" +#235 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Michał" +#236 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Michał" +#237 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Michał" +#238 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Michał" +#239 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Michał" +#240 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Michał" +#241 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Michał" +#242 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Michał" +#243 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Michał" +#244 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Michał" +#245 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Michał" +#246 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Michał" +#247 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Michał" with "Michał" pattern +#248 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Michał" with "Michał" pattern +#249 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Michał" with "Michał" pattern +#250 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Michał" with "Michał" pattern +#251 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "Dąbrowski" +#252 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Dąbrowski" with "Dąbrowski" pattern +#253 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "Dąbrowski" +#254 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "Dąbrowski" +#255 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Dąbrowski" with "Dąbrowski" pattern +#256 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "Dąbrowski" +#257 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "Dąbrowski" +#258 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "Dąbrowski" +#259 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "Dąbrowski" +#260 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "Dąbrowski" +#261 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "Dąbrowski" +#262 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "Dąbrowski" +#263 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "Dąbrowski" +#264 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "Dąbrowski" +#265 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "Dąbrowski" +#266 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "Dąbrowski" +#267 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "Dąbrowski" +#268 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "Dąbrowski" +#269 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Dąbrowski" with "Dąbrowski" pattern +#270 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher successfully matched value "Dąbrowski" with "Dąbrowski" pattern +#271 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "Dąbrowski" with "Dąbrowski" pattern +#272 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "Dąbrowski" with "Dąbrowski" pattern +#273 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "expr(value == false)" +#274 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "false" with "expr(value == false)" pattern +#275 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "expr(value == false)" +#276 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "expr(value == false)" +#277 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "false" with "expr(value == false)" pattern +#278 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "expr(value == false)" +#279 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can match pattern "expr(value == false)" +#280 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher matching value "false" with "expr(value == false)" pattern +#281 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher successfully matched value "false" with "expr(value == false)" pattern +#282 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "false" with "expr(value == false)" pattern +#283 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "false" with "expr(value == false)" pattern +#284 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@array@" +#285 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "Array(1)" with "@array@" pattern +#286 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@array@" +#287 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@array@" +#288 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "Array(1)" with "@array@" pattern +#289 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@array@" +#290 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@array@" +#291 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@array@" +#292 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can't match pattern "@array@" +#293 Matcher Coduo\PHPMatcher\Matcher\IntegerMatcher can't match pattern "@array@" +#294 Matcher Coduo\PHPMatcher\Matcher\BooleanMatcher can't match pattern "@array@" +#295 Matcher Coduo\PHPMatcher\Matcher\DoubleMatcher can't match pattern "@array@" +#296 Matcher Coduo\PHPMatcher\Matcher\NumberMatcher can't match pattern "@array@" +#297 Matcher Coduo\PHPMatcher\Matcher\TimeMatcher can't match pattern "@array@" +#298 Matcher Coduo\PHPMatcher\Matcher\DateMatcher can't match pattern "@array@" +#299 Matcher Coduo\PHPMatcher\Matcher\DateTimeMatcher can't match pattern "@array@" +#300 Matcher Coduo\PHPMatcher\Matcher\TimeZoneMatcher can't match pattern "@array@" +#301 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher can match pattern "@array@" +#302 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher matching value "Array(1)" with "@array@" pattern +#303 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher failed to match value "Array(1)" with "@array@" pattern +#304 Matcher Coduo\PHPMatcher\Matcher\ScalarMatcher error: "Array(1)" does not match "@array@". +#305 Matcher Coduo\PHPMatcher\Matcher\WildcardMatcher can't match pattern "@array@" +#306 Matcher Coduo\PHPMatcher\Matcher\UuidMatcher can't match pattern "@array@" +#307 Matcher Coduo\PHPMatcher\Matcher\JsonObjectMatcher can't match pattern "@array@" +#308 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) failed to match value "Array(1)" with "@array@" pattern +#309 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) error: "Array(1)" does not match "@array@". +#310 Matcher Coduo\PHPMatcher\Matcher\TextMatcher can match pattern "@array@" +#311 Matcher Coduo\PHPMatcher\Matcher\TextMatcher matching value "Array(1)" with "@array@" pattern +#312 Matcher Coduo\PHPMatcher\Matcher\TextMatcher failed to match value "Array(1)" with "@array@" pattern +#313 Matcher Coduo\PHPMatcher\Matcher\TextMatcher error: array "Array(1)" is not a valid string. +#314 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) failed to match value "Array(1)" with "@array@" pattern +#315 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) error: array "Array(1)" is not a valid string. +#316 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher successfully matched value "Array(1)" with "@array@" pattern +#317 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@string@" +#318 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "http://example.com/api/users/1?limit=2" with "@string@" pattern +#319 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@string@" +#320 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@string@" +#321 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "http://example.com/api/users/1?limit=2" with "@string@" pattern +#322 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@string@" +#323 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@string@" +#324 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@string@" +#325 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can match pattern "@string@" +#326 Matcher Coduo\PHPMatcher\Matcher\StringMatcher matching value "http://example.com/api/users/1?limit=2" with "@string@" pattern +#327 Matcher Coduo\PHPMatcher\Matcher\StringMatcher successfully matched value "http://example.com/api/users/1?limit=2" with "@string@" pattern +#328 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "http://example.com/api/users/1?limit=2" with "@string@" pattern +#329 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "http://example.com/api/users/1?limit=2" with "@string@" pattern +#330 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) can match pattern "@string@" +#331 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) matching value "http://example.com/api/users/3?limit=2" with "@string@" pattern +#332 Matcher Coduo\PHPMatcher\Matcher\OrMatcher can't match pattern "@string@" +#333 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) can match pattern "@string@" +#334 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) matching value "http://example.com/api/users/3?limit=2" with "@string@" pattern +#335 Matcher Coduo\PHPMatcher\Matcher\CallbackMatcher can't match pattern "@string@" +#336 Matcher Coduo\PHPMatcher\Matcher\ExpressionMatcher can't match pattern "@string@" +#337 Matcher Coduo\PHPMatcher\Matcher\NullMatcher can't match pattern "@string@" +#338 Matcher Coduo\PHPMatcher\Matcher\StringMatcher can match pattern "@string@" +#339 Matcher Coduo\PHPMatcher\Matcher\StringMatcher matching value "http://example.com/api/users/3?limit=2" with "@string@" pattern +#340 Matcher Coduo\PHPMatcher\Matcher\StringMatcher successfully matched value "http://example.com/api/users/3?limit=2" with "@string@" pattern +#341 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (scalars) successfully matched value "http://example.com/api/users/3?limit=2" with "@string@" pattern +#342 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (array) successfully matched value "http://example.com/api/users/3?limit=2" with "@string@" pattern +#343 Matcher Coduo\PHPMatcher\Matcher\ArrayMatcher successfully matched value "Array(3)" with "Array(3)" pattern +#344 Matcher Coduo\PHPMatcher\Matcher\JsonMatcher successfully matched value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#345 Matcher Coduo\PHPMatcher\Matcher\ChainMatcher (all) successfully matched value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern +#346 Matcher Coduo\PHPMatcher\Matcher successfully matched value "{"users":[{"id":131,"firstName":"Norbert","lastName":"Orzechowicz","enabled":true,"roles":[]},{"id":132,"firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":false,"roles":["ROLE_DEVELOPER"]}],"prevPage":"http:\/\/example.com\/api\/users\/1?limit=2","nextPage":"http:\/\/example.com\/api\/users\/3?limit=2"}" with "{"users":[{"id":"@integer@","firstName":"Norbert","lastName":"Orzechowicz","enabled":"@boolean@","roles":"@array@.isEmpty()"},{"id":"@integer@","firstName":"Micha\u0142","lastName":"D\u0105browski","enabled":"expr(value == false)","roles":"@array@"}],"prevPage":"@string@","nextPage":"@string@"}" pattern \ No newline at end of file diff --git a/tests/Matcher/ArrayMatcherTest.php b/tests/Matcher/ArrayMatcherTest.php index 0b630601..07f0cf83 100644 --- a/tests/Matcher/ArrayMatcherTest.php +++ b/tests/Matcher/ArrayMatcherTest.php @@ -12,10 +12,9 @@ class ArrayMatcherTest extends TestCase { - /** - * @var Matcher\ArrayMatcher - */ - private $matcher; + private Matcher\ArrayMatcher $matcher; + + private Backtrace $backtrace; public static function positiveMatchData() { @@ -195,28 +194,29 @@ public static function negativeMatchData() public function setUp() : void { - $backtrace = new Backtrace\InMemoryBacktrace(); - $parser = new Parser(new Lexer(), new Parser\ExpanderInitializer($backtrace)); + $this->backtrace = new Backtrace\InMemoryBacktrace(); + $parser = new Parser(new Lexer(), new Parser\ExpanderInitializer($this->backtrace)); $matchers = [ - new Matcher\CallbackMatcher($backtrace), - new Matcher\NullMatcher($backtrace), - new Matcher\StringMatcher($backtrace, $parser), - new Matcher\IntegerMatcher($backtrace, $parser), - new Matcher\BooleanMatcher($backtrace, $parser), - new Matcher\DoubleMatcher($backtrace, $parser), - new Matcher\NumberMatcher($backtrace, $parser), - new Matcher\ScalarMatcher($backtrace), - new Matcher\WildcardMatcher($backtrace), + new Matcher\CallbackMatcher($this->backtrace), + new Matcher\NullMatcher($this->backtrace), + new Matcher\StringMatcher($this->backtrace, $parser), + new Matcher\IntegerMatcher($this->backtrace, $parser), + new Matcher\BooleanMatcher($this->backtrace, $parser), + new Matcher\DoubleMatcher($this->backtrace, $parser), + new Matcher\NumberMatcher($this->backtrace, $parser), + new Matcher\DateMatcher($this->backtrace, $parser), + new Matcher\ScalarMatcher($this->backtrace), + new Matcher\WildcardMatcher($this->backtrace), ]; if (\class_exists('Symfony\\Component\\ExpressionLanguage\\ExpressionLanguage')) { - $matchers[] = new Matcher\ExpressionMatcher($backtrace); + $matchers[] = new Matcher\ExpressionMatcher($this->backtrace); } $this->matcher = new Matcher\ArrayMatcher( - new Matcher\ChainMatcher(self::class, $backtrace, $matchers), - $backtrace, + new Matcher\ChainMatcher(self::class, $this->backtrace, $matchers), + $this->backtrace, $parser ); } @@ -252,12 +252,14 @@ public function test_negative_match_when_cant_find_matcher_that_can_match_array_ ); $this->assertTrue($matcher->match(['test' => 1], ['test' => 1])); + $this->assertFalse($backtrace->isEmpty()); } public function test_error_when_path_in_pattern_does_not_exist() : void { $this->assertFalse($this->matcher->match(['foo' => 'foo value'], ['bar' => 'bar value'])); $this->assertEquals($this->matcher->getError(), 'There is no element under path [foo] in pattern.'); + $this->assertFalse($this->backtrace->isEmpty()); } public function test_error_when_path_in_nested_pattern_does_not_exist() : void @@ -268,6 +270,7 @@ public function test_error_when_path_in_nested_pattern_does_not_exist() : void $this->assertFalse($this->matcher->match($array, $pattern)); $this->assertEquals($this->matcher->getError(), 'There is no element under path [foo][bar][baz] in pattern.'); + $this->assertFalse($this->backtrace->isEmpty()); } public function test_error_when_path_in_value_does_not_exist() : void @@ -278,6 +281,7 @@ public function test_error_when_path_in_value_does_not_exist() : void $this->assertFalse($this->matcher->match($array, $pattern)); $this->assertEquals($this->matcher->getError(), 'There is no element under path [bar] in value.'); + $this->assertFalse($this->backtrace->isEmpty()); } public function test_error_when_path_in_nested_value_does_not_exist() : void @@ -288,18 +292,21 @@ public function test_error_when_path_in_nested_value_does_not_exist() : void $this->assertFalse($this->matcher->match($array, $pattern)); $this->assertEquals($this->matcher->getError(), 'There is no element under path [foo][bar][faz] in value.'); + $this->assertFalse($this->backtrace->isEmpty()); } public function test_error_when_matching_fail() : void { $this->assertFalse($this->matcher->match(['foo' => 'foo value'], ['foo' => 'bar value'])); $this->assertEquals($this->matcher->getError(), '"foo value" does not match "bar value".'); + $this->assertFalse($this->backtrace->isEmpty()); } public function test_error_message_when_matching_non_array_value() : void { $this->assertFalse($this->matcher->match(new \DateTime(), '@array@')); $this->assertEquals($this->matcher->getError(), 'object "\\DateTime" is not a valid array.'); + $this->assertFalse($this->backtrace->isEmpty()); } public function test_matching_array_to_array_pattern() : void @@ -313,5 +320,6 @@ public function test_matching_array_to_array_pattern() : void '@array@.inArray("bar")', ] )); + $this->assertFalse($this->backtrace->isEmpty()); } } diff --git a/tests/Matcher/BooleanMatcherTest.php b/tests/Matcher/BooleanMatcherTest.php index d79e916c..7df5efe4 100644 --- a/tests/Matcher/BooleanMatcherTest.php +++ b/tests/Matcher/BooleanMatcherTest.php @@ -12,10 +12,9 @@ class BooleanMatcherTest extends TestCase { - /** - * @var BooleanMatcher - */ - private $matcher; + private BooleanMatcher $matcher; + + private Backtrace $backtrace; public static function positiveCanMatchData() { @@ -61,8 +60,8 @@ public static function negativeMatchDescription() public function setUp() : void { $this->matcher = new BooleanMatcher( - $backtrace = new Backtrace\InMemoryBacktrace(), - new Parser(new Lexer(), new Parser\ExpanderInitializer($backtrace)) + $this->backtrace = new Backtrace\InMemoryBacktrace(), + new Parser(new Lexer(), new Parser\ExpanderInitializer($this->backtrace)) ); } @@ -72,6 +71,7 @@ public function setUp() : void public function test_positive_can_matches($pattern) : void { $this->assertTrue($this->matcher->canMatch($pattern)); + $this->assertFalse($this->backtrace->isEmpty()); } /** @@ -80,6 +80,7 @@ public function test_positive_can_matches($pattern) : void public function test_negative_can_matches($pattern) : void { $this->assertFalse($this->matcher->canMatch($pattern)); + $this->assertFalse($this->backtrace->isEmpty()); } /** @@ -88,6 +89,7 @@ public function test_negative_can_matches($pattern) : void public function test_positive_match($value, $pattern) : void { $this->assertTrue($this->matcher->match($value, $pattern)); + $this->assertFalse($this->backtrace->isEmpty()); } /** @@ -96,6 +98,7 @@ public function test_positive_match($value, $pattern) : void public function test_negative_match($value, $pattern) : void { $this->assertFalse($this->matcher->match($value, $pattern)); + $this->assertFalse($this->backtrace->isEmpty()); } /** @@ -105,5 +108,6 @@ public function test_negative_match_description($value, $pattern, $error) : void { $this->matcher->match($value, $pattern); $this->assertEquals($error, $this->matcher->getError()); + $this->assertFalse($this->backtrace->isEmpty()); } } diff --git a/tests/Matcher/DateMatcherTest.php b/tests/Matcher/DateMatcherTest.php new file mode 100644 index 00000000..19ea11a4 --- /dev/null +++ b/tests/Matcher/DateMatcherTest.php @@ -0,0 +1,120 @@ +matcher = new DateMatcher( + $this->backtrace = new Backtrace\InMemoryBacktrace(), + new Parser(new Lexer(), new Parser\ExpanderInitializer($this->backtrace)) + ); + } + + /** + * @dataProvider positiveCanMatchData + */ + public function test_positive_can_matches($pattern) : void + { + $this->assertTrue($this->matcher->canMatch($pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider negativeCanMatchData + */ + public function test_negative_can_matches($pattern) : void + { + $this->assertFalse($this->matcher->canMatch($pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider positiveMatchData + */ + public function test_positive_match($value, $pattern) : void + { + $this->assertTrue($this->matcher->match($value, $pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider negativeMatchData + */ + public function test_negative_match($value, $pattern) : void + { + $this->assertFalse($this->matcher->match($value, $pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider negativeMatchDescription + */ + public function test_negative_match_description($value, $pattern, $error) : void + { + $this->matcher->match($value, $pattern); + $this->assertEquals($error, $this->matcher->getError()); + } +} diff --git a/tests/Matcher/DateTimeMatcherTest.php b/tests/Matcher/DateTimeMatcherTest.php new file mode 100644 index 00000000..bc7b11d9 --- /dev/null +++ b/tests/Matcher/DateTimeMatcherTest.php @@ -0,0 +1,120 @@ +matcher = new DateTimeMatcher( + $this->backtrace = new Backtrace\InMemoryBacktrace(), + new Parser(new Lexer(), new Parser\ExpanderInitializer($this->backtrace)) + ); + } + + /** + * @dataProvider positiveCanMatchData + */ + public function test_positive_can_matches($pattern) : void + { + $this->assertTrue($this->matcher->canMatch($pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider negativeCanMatchData + */ + public function test_negative_can_matches($pattern) : void + { + $this->assertFalse($this->matcher->canMatch($pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider positiveMatchData + */ + public function test_positive_match($value, $pattern) : void + { + $this->assertTrue($this->matcher->match($value, $pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider negativeMatchData + */ + public function test_negative_match($value, $pattern) : void + { + $this->assertFalse($this->matcher->match($value, $pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider negativeMatchDescription + */ + public function test_negative_match_description($value, $pattern, $error) : void + { + $this->matcher->match($value, $pattern); + $this->assertEquals($error, $this->matcher->getError()); + } +} diff --git a/tests/Matcher/Pattern/Expander/BeforeTest.php b/tests/Matcher/Pattern/Expander/BeforeTest.php index eacfd96f..68ddf5e9 100644 --- a/tests/Matcher/Pattern/Expander/BeforeTest.php +++ b/tests/Matcher/Pattern/Expander/BeforeTest.php @@ -13,7 +13,7 @@ class BeforeTest extends TestCase public static function examplesProvider() { return [ - ['+ 2 day', 'today', true], + ['+2 day', 'today', true], ['2018-02-06T04:20:33', '2017-02-06T04:20:33', true], ['2017-02-06T04:20:33', '2018-02-06T04:20:33', false], ]; diff --git a/tests/Matcher/Pattern/Expander/IsTzAbbreviationTest.php b/tests/Matcher/Pattern/Expander/IsTzAbbreviationTest.php new file mode 100644 index 00000000..d5602ae1 --- /dev/null +++ b/tests/Matcher/Pattern/Expander/IsTzAbbreviationTest.php @@ -0,0 +1,37 @@ +setBacktrace(new Backtrace\InMemoryBacktrace()); + $this->assertSame($expectedResult, $expander->match($date)); + + if ($expectedResult === false) { + $this->assertSame($expander->getError(), $errorMessage); + } + } +} diff --git a/tests/Matcher/Pattern/Expander/IsTzIdentifierTest.php b/tests/Matcher/Pattern/Expander/IsTzIdentifierTest.php new file mode 100644 index 00000000..6b75603c --- /dev/null +++ b/tests/Matcher/Pattern/Expander/IsTzIdentifierTest.php @@ -0,0 +1,37 @@ +setBacktrace(new Backtrace\InMemoryBacktrace()); + $this->assertSame($expectedResult, $expander->match($date)); + + if ($expectedResult === false) { + $this->assertSame($expander->getError(), $errorMessage); + } + } +} diff --git a/tests/Matcher/Pattern/Expander/IsTzOffsetTest.php b/tests/Matcher/Pattern/Expander/IsTzOffsetTest.php new file mode 100644 index 00000000..87a8de92 --- /dev/null +++ b/tests/Matcher/Pattern/Expander/IsTzOffsetTest.php @@ -0,0 +1,38 @@ +setBacktrace(new Backtrace\InMemoryBacktrace()); + $this->assertSame($expectedResult, $expander->match($date)); + + if ($expectedResult === false) { + $this->assertSame($expander->getError(), $errorMessage); + } + } +} diff --git a/tests/Matcher/TimeMatcherTest.php b/tests/Matcher/TimeMatcherTest.php new file mode 100644 index 00000000..52737ad7 --- /dev/null +++ b/tests/Matcher/TimeMatcherTest.php @@ -0,0 +1,119 @@ +matcher = new TimeMatcher( + $this->backtrace = new Backtrace\InMemoryBacktrace(), + new Parser(new Lexer(), new Parser\ExpanderInitializer($this->backtrace)) + ); + } + + /** + * @dataProvider positiveCanMatchData + */ + public function test_positive_can_matches($pattern) : void + { + $this->assertTrue($this->matcher->canMatch($pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider negativeCanMatchData + */ + public function test_negative_can_matches($pattern) : void + { + $this->assertFalse($this->matcher->canMatch($pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider positiveMatchData + */ + public function test_positive_match($value, $pattern) : void + { + $this->assertTrue($this->matcher->match($value, $pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider negativeMatchData + */ + public function test_negative_match($value, $pattern) : void + { + $this->assertFalse($this->matcher->match($value, $pattern)); + $this->assertFalse($this->backtrace->isEmpty()); + } + + /** + * @dataProvider negativeMatchDescription + */ + public function test_negative_match_description($value, $pattern, $error) : void + { + $this->matcher->match($value, $pattern); + $this->assertEquals($error, $this->matcher->getError()); + $this->assertFalse($this->backtrace->isEmpty()); + } +} diff --git a/tests/Matcher/TimeZoneMatcherTest.php b/tests/Matcher/TimeZoneMatcherTest.php new file mode 100644 index 00000000..61fda45c --- /dev/null +++ b/tests/Matcher/TimeZoneMatcherTest.php @@ -0,0 +1,120 @@ +matcher = new TimeZoneMatcher( + $backtrace = new Backtrace\InMemoryBacktrace(), + new Parser(new Lexer(), new Parser\ExpanderInitializer($backtrace)) + ); + } + + /** + * @dataProvider positiveCanMatchData + */ + public function test_positive_can_matches($pattern) : void + { + $this->assertTrue($this->matcher->canMatch($pattern)); + } + + /** + * @dataProvider negativeCanMatchData + */ + public function test_negative_can_matches($pattern) : void + { + $this->assertFalse($this->matcher->canMatch($pattern)); + } + + /** + * @dataProvider positiveMatchData + */ + public function test_positive_match($value, $pattern) : void + { + $this->assertTrue($this->matcher->match($value, $pattern)); + } + + /** + * @dataProvider negativeMatchData + */ + public function test_negative_match($value, $pattern) : void + { + $this->assertFalse($this->matcher->match($value, $pattern)); + } + + /** + * @dataProvider negativeMatchDescription + */ + public function test_negative_match_description($value, $pattern, $error) : void + { + $this->matcher->match($value, $pattern); + $this->assertEquals($error, $this->matcher->getError()); + } +} diff --git a/tests/MatcherTest.php b/tests/MatcherTest.php index 3fdcaaed..f1628387 100644 --- a/tests/MatcherTest.php +++ b/tests/MatcherTest.php @@ -209,14 +209,16 @@ public function jsonDataProvider() "firstName": "Norbert", "lastName": "Orzechowicz", "enabled": true, - "roles": ["ROLE_DEVELOPER"] + "roles": ["ROLE_DEVELOPER"], + "createdAt" : "2020-01-01 00:00:00" }, { "id": 132, "firstName": "Michał", "lastName": "Dąbrowski", "enabled": false, - "roles": ["ROLE_DEVELOPER"] + "roles": ["ROLE_DEVELOPER"], + "createdAt" : "2020-01-01 00:00:00" } ], "prevPage": "http:\/\/example.com\/api\/users\/1?limit=2", @@ -233,14 +235,16 @@ public function jsonDataProvider() "firstName": "Norbert", "lastName": "Orzechowicz", "enabled": true, - "roles": ["ROLE_DEVELOPER"] + "roles": ["ROLE_DEVELOPER"], + "createdAt" : "2020-01-01 00:00:00" }, { "id": 132, "firstName": "Michał", "lastName": "Dąbrowski", "enabled": false, - "roles": ["ROLE_DEVELOPER"] + "roles": ["ROLE_DEVELOPER"], + "createdAt" : "2020-01-01 00:00:00" } ], "prevPage": "http:\/\/example.com\/api\/users\/1?limit=2", @@ -254,14 +258,16 @@ public function jsonDataProvider() "firstName":"Norbert", "lastName":"Orzechowicz", "enabled": "@boolean@", - "roles": "@array@" + "roles": "@array@", + "createdAt" : "@datetime@" }, { "id": "@integer@", "firstName": "Michał", "lastName": "Dąbrowski", "enabled": "expr(value == false)", - "roles": "@array@" + "roles": "@array@", + "createdAt" : "@datetime@" } ], "prevPage": "@string@",