diff --git a/composer.json b/composer.json
index 7ccd420c..8dd22838 100644
--- a/composer.json
+++ b/composer.json
@@ -20,8 +20,8 @@
"psr/simple-cache": "^1.0 || ^2.0 || ^3.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.5",
- "infection/infection": "^0.26",
+ "phpunit/phpunit": "^10.5",
+ "infection/infection": "^0.27",
"phpstan/phpstan": "^1.3",
"phpstan/phpstan-strict-rules": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
@@ -29,7 +29,7 @@
"marcocesarato/php-conventional-changelog": "^1.12",
"vimeo/psalm": "^5.0",
"mikey179/vfsstream": "^1.6.10",
- "rector/rector": "~0.17.0"
+ "rector/rector": "^1.0"
},
"autoload": {
"psr-4": {
diff --git a/composer.lock b/composer.lock
index e410c323..5fee4489 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "5b0a5c1021fd69730e81eb8d561ed9fa",
+ "content-hash": "d8ad2085ad373dd8ded5f55b062aab34",
"packages": [
{
"name": "psr/simple-cache",
@@ -318,16 +318,16 @@
},
{
"name": "composer/pcre",
- "version": "3.1.0",
+ "version": "3.1.1",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
- "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2"
+ "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
- "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9",
+ "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9",
"shasum": ""
},
"require": {
@@ -369,7 +369,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.1.0"
+ "source": "https://github.com/composer/pcre/tree/3.1.1"
},
"funding": [
{
@@ -385,20 +385,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-17T09:50:14+00:00"
+ "time": "2023-10-11T07:11:09+00:00"
},
{
"name": "composer/semver",
- "version": "3.3.2",
+ "version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
"shasum": ""
},
"require": {
@@ -448,9 +448,9 @@
"versioning"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.3.2"
+ "source": "https://github.com/composer/semver/tree/3.4.0"
},
"funding": [
{
@@ -466,7 +466,7 @@
"type": "tidelift"
}
],
- "time": "2022-04-01T19:23:25+00:00"
+ "time": "2023-08-31T09:50:34+00:00"
},
{
"name": "composer/xdebug-handler",
@@ -571,94 +571,18 @@
},
"time": "2019-12-04T15:06:13+00:00"
},
- {
- "name": "doctrine/annotations",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/annotations.git",
- "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
- "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
- "shasum": ""
- },
- "require": {
- "doctrine/lexer": "^2 || ^3",
- "ext-tokenizer": "*",
- "php": "^7.2 || ^8.0",
- "psr/cache": "^1 || ^2 || ^3"
- },
- "require-dev": {
- "doctrine/cache": "^2.0",
- "doctrine/coding-standard": "^10",
- "phpstan/phpstan": "^1.8.0",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "symfony/cache": "^5.4 || ^6",
- "vimeo/psalm": "^4.10"
- },
- "suggest": {
- "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Docblock Annotations Parser",
- "homepage": "https://www.doctrine-project.org/projects/annotations.html",
- "keywords": [
- "annotations",
- "docblock",
- "parser"
- ],
- "support": {
- "issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/2.0.1"
- },
- "time": "2023-02-02T22:02:53+00:00"
- },
{
"name": "doctrine/deprecations",
- "version": "v1.1.1",
+ "version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3"
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
"shasum": ""
},
"require": {
@@ -690,157 +614,9 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/v1.1.1"
- },
- "time": "2023-06-03T09:27:29+00:00"
- },
- {
- "name": "doctrine/instantiator",
- "version": "1.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9 || ^11",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^0.16 || ^1",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.30 || ^5.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "https://ocramius.github.io/"
- }
- ],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
- "keywords": [
- "constructor",
- "instantiate"
- ],
- "support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
},
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-30T00:15:36+00:00"
- },
- {
- "name": "doctrine/lexer",
- "version": "2.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/lexer.git",
- "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
- "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^1.0",
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9 || ^10",
- "phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^4.11 || ^5.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Lexer\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
- "homepage": "https://www.doctrine-project.org/projects/lexer.html",
- "keywords": [
- "annotations",
- "docblock",
- "lexer",
- "parser",
- "php"
- ],
- "support": {
- "issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/2.1.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-14T08:49:07+00:00"
+ "time": "2024-01-30T19:34:25+00:00"
},
{
"name": "felixfbecker/advanced-json-rpc",
@@ -945,16 +721,16 @@
},
{
"name": "fidry/cpu-core-counter",
- "version": "0.4.1",
+ "version": "0.5.1",
"source": {
"type": "git",
"url": "https://github.com/theofidry/cpu-core-counter.git",
- "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2"
+ "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/79261cc280aded96d098e1b0e0ba0c4881b432c2",
- "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2",
+ "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623",
+ "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623",
"shasum": ""
},
"require": {
@@ -994,7 +770,7 @@
],
"support": {
"issues": "https://github.com/theofidry/cpu-core-counter/issues",
- "source": "https://github.com/theofidry/cpu-core-counter/tree/0.4.1"
+ "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1"
},
"funding": [
{
@@ -1002,58 +778,52 @@
"type": "github"
}
],
- "time": "2022-12-16T22:01:02+00:00"
+ "time": "2022-12-24T12:35:10+00:00"
},
{
"name": "friendsofphp/php-cs-fixer",
- "version": "v3.22.0",
+ "version": "v3.49.0",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
- "reference": "92b019f6c8d79aa26349d0db7671d37440dc0ff3"
+ "reference": "8742f7aa6f72a399688b65e4f58992c2d4681fc2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/92b019f6c8d79aa26349d0db7671d37440dc0ff3",
- "reference": "92b019f6c8d79aa26349d0db7671d37440dc0ff3",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/8742f7aa6f72a399688b65e4f58992c2d4681fc2",
+ "reference": "8742f7aa6f72a399688b65e4f58992c2d4681fc2",
"shasum": ""
},
"require": {
- "composer/semver": "^3.3",
+ "composer/semver": "^3.4",
"composer/xdebug-handler": "^3.0.3",
- "doctrine/annotations": "^2",
- "doctrine/lexer": "^2 || ^3",
+ "ext-filter": "*",
"ext-json": "*",
"ext-tokenizer": "*",
"php": "^7.4 || ^8.0",
"sebastian/diff": "^4.0 || ^5.0",
- "symfony/console": "^5.4 || ^6.0",
- "symfony/event-dispatcher": "^5.4 || ^6.0",
- "symfony/filesystem": "^5.4 || ^6.0",
- "symfony/finder": "^5.4 || ^6.0",
- "symfony/options-resolver": "^5.4 || ^6.0",
- "symfony/polyfill-mbstring": "^1.27",
- "symfony/polyfill-php80": "^1.27",
- "symfony/polyfill-php81": "^1.27",
- "symfony/process": "^5.4 || ^6.0",
- "symfony/stopwatch": "^5.4 || ^6.0"
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0",
+ "symfony/polyfill-mbstring": "^1.28",
+ "symfony/polyfill-php80": "^1.28",
+ "symfony/polyfill-php81": "^1.28",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0",
+ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
"facile-it/paraunit": "^1.3 || ^2.0",
"justinrainbow/json-schema": "^5.2",
- "keradus/cli-executor": "^2.0",
+ "keradus/cli-executor": "^2.1",
"mikey179/vfsstream": "^1.6.11",
- "php-coveralls/php-coveralls": "^2.5.3",
+ "php-coveralls/php-coveralls": "^2.7",
"php-cs-fixer/accessible-object": "^1.1",
- "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
- "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
- "phpspec/prophecy": "^1.16",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpunit/phpunit": "^9.5",
- "phpunitgoodpractices/polyfill": "^1.6",
- "phpunitgoodpractices/traits": "^1.9.2",
- "symfony/phpunit-bridge": "^6.2.3",
- "symfony/yaml": "^5.4 || ^6.0"
+ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4",
+ "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4",
+ "phpunit/phpunit": "^9.6 || ^10.5.5",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"suggest": {
"ext-dom": "For handling output formats in XML",
@@ -1091,7 +861,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
- "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.22.0"
+ "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.49.0"
},
"funding": [
{
@@ -1099,7 +869,7 @@
"type": "github"
}
],
- "time": "2023-07-16T23:08:06+00:00"
+ "time": "2024-02-02T00:41:40+00:00"
},
{
"name": "infection/abstract-testframework-adapter",
@@ -1280,16 +1050,16 @@
},
{
"name": "infection/infection",
- "version": "0.26.19",
+ "version": "0.27.9",
"source": {
"type": "git",
"url": "https://github.com/infection/infection.git",
- "reference": "bd7351c88f3a797ea8977e68fe6a3f4d4c5f457f"
+ "reference": "61e6d0645b89104fbd660218d3408219ad7176b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/infection/infection/zipball/bd7351c88f3a797ea8977e68fe6a3f4d4c5f457f",
- "reference": "bd7351c88f3a797ea8977e68fe6a3f4d4c5f457f",
+ "url": "https://api.github.com/repos/infection/infection/zipball/61e6d0645b89104fbd660218d3408219ad7176b5",
+ "reference": "61e6d0645b89104fbd660218d3408219ad7176b5",
"shasum": ""
},
"require": {
@@ -1300,42 +1070,46 @@
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
- "fidry/cpu-core-counter": "^0.4.0",
+ "fidry/cpu-core-counter": "^0.4.0 || ^0.5.0 || ^1.0",
"infection/abstract-testframework-adapter": "^0.5.0",
"infection/extension-installer": "^0.1.0",
"infection/include-interceptor": "^0.2.5",
"justinrainbow/json-schema": "^5.2.10",
"nikic/php-parser": "^4.15.1",
"ondram/ci-detector": "^4.1.0",
- "php": "^8.0",
+ "php": "^8.1",
"sanmai/later": "^0.1.1",
"sanmai/pipeline": "^5.1 || ^6",
"sebastian/diff": "^3.0.2 || ^4.0 || ^5.0",
- "symfony/console": "^5.4 || ^6.0",
- "symfony/filesystem": "^5.4 || ^6.0",
- "symfony/finder": "^5.4 || ^6.0",
- "symfony/process": "^5.4 || ^6.0",
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0",
"thecodingmachine/safe": "^2.1.2",
"webmozart/assert": "^1.11"
},
"conflict": {
+ "antecedent/patchwork": "<2.1.25",
"dg/bypass-finals": "<1.4.1",
"phpunit/php-code-coverage": ">9,<9.1.4 || >9.2.17,<9.2.21"
},
"require-dev": {
- "brianium/paratest": "^6.3",
+ "brianium/paratest": "^6.11",
"ext-simplexml": "*",
"fidry/makefile": "^0.2.0",
"helmich/phpunit-json-assert": "^3.0",
+ "phpspec/prophecy": "^1.15",
"phpspec/prophecy-phpunit": "^2.0",
"phpstan/extension-installer": "^1.1.0",
- "phpstan/phpstan": "^1.3.0",
+ "phpstan/phpstan": "^1.10.15",
"phpstan/phpstan-phpunit": "^1.0.0",
"phpstan/phpstan-strict-rules": "^1.1.0",
"phpstan/phpstan-webmozart-assert": "^1.0.2",
- "phpunit/phpunit": "^9.5.5",
- "symfony/phpunit-bridge": "^5.4 || ^6.0",
- "symfony/yaml": "^5.4 || ^6.0",
+ "phpunit/phpunit": "^9.6",
+ "rector/rector": "^0.16.0",
+ "sidz/phpstan-rules": "^0.4.0",
+ "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0",
"thecodingmachine/phpstan-safe-rule": "^1.2.0"
},
"bin": [
@@ -1392,7 +1166,7 @@
],
"support": {
"issues": "https://github.com/infection/infection/issues",
- "source": "https://github.com/infection/infection/tree/0.26.19"
+ "source": "https://github.com/infection/infection/tree/0.27.9"
},
"funding": [
{
@@ -1404,20 +1178,20 @@
"type": "open_collective"
}
],
- "time": "2023-02-05T21:47:26+00:00"
+ "time": "2023-12-07T17:42:43+00:00"
},
{
"name": "justinrainbow/json-schema",
- "version": "5.2.12",
+ "version": "v5.2.13",
"source": {
"type": "git",
"url": "https://github.com/justinrainbow/json-schema.git",
- "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60"
+ "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60",
- "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60",
+ "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793",
+ "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793",
"shasum": ""
},
"require": {
@@ -1472,9 +1246,9 @@
],
"support": {
"issues": "https://github.com/justinrainbow/json-schema/issues",
- "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12"
+ "source": "https://github.com/justinrainbow/json-schema/tree/v5.2.13"
},
- "time": "2022-04-13T08:02:27+00:00"
+ "time": "2023-09-26T02:20:38+00:00"
},
{
"name": "marcocesarato/php-conventional-changelog",
@@ -1665,16 +1439,16 @@
},
{
"name": "netresearch/jsonmapper",
- "version": "v4.2.0",
+ "version": "v4.4.1",
"source": {
"type": "git",
"url": "https://github.com/cweiske/jsonmapper.git",
- "reference": "f60565f8c0566a31acf06884cdaa591867ecc956"
+ "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956",
- "reference": "f60565f8c0566a31acf06884cdaa591867ecc956",
+ "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/132c75c7dd83e45353ebb9c6c9f591952995bbf0",
+ "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0",
"shasum": ""
},
"require": {
@@ -1685,7 +1459,7 @@
"php": ">=7.1"
},
"require-dev": {
- "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0",
+ "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0",
"squizlabs/php_codesniffer": "~3.5"
},
"type": "library",
@@ -1710,22 +1484,22 @@
"support": {
"email": "cweiske@cweiske.de",
"issues": "https://github.com/cweiske/jsonmapper/issues",
- "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0"
+ "source": "https://github.com/cweiske/jsonmapper/tree/v4.4.1"
},
- "time": "2023-04-09T17:37:40+00:00"
+ "time": "2024-01-31T06:18:54+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.16.0",
+ "version": "v4.18.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "19526a33fb561ef417e822e85f08a00db4059c17"
+ "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17",
- "reference": "19526a33fb561ef417e822e85f08a00db4059c17",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
+ "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"shasum": ""
},
"require": {
@@ -1766,9 +1540,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
},
- "time": "2023-06-25T14:52:30+00:00"
+ "time": "2023-12-10T21:03:43+00:00"
},
{
"name": "ondram/ci-detector",
@@ -2071,16 +1845,16 @@
},
{
"name": "phpdocumentor/type-resolver",
- "version": "1.7.2",
+ "version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d"
+ "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b2fe4d22a5426f38e014855322200b97b5362c0d",
- "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fad452781b3d774e3337b0c0b245dd8e5a4455fc",
+ "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc",
"shasum": ""
},
"require": {
@@ -2123,22 +1897,22 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.2"
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.0"
},
- "time": "2023-05-30T18:13:47+00:00"
+ "time": "2024-01-11T11:49:22+00:00"
},
{
"name": "phpstan/phpdoc-parser",
- "version": "1.23.1",
+ "version": "1.25.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "846ae76eef31c6d7790fac9bc399ecee45160b26"
+ "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/846ae76eef31c6d7790fac9bc399ecee45160b26",
- "reference": "846ae76eef31c6d7790fac9bc399ecee45160b26",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240",
+ "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240",
"shasum": ""
},
"require": {
@@ -2170,22 +1944,22 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.23.1"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0"
},
- "time": "2023-08-03T16:32:59+00:00"
+ "time": "2024-01-04T17:06:16+00:00"
},
{
"name": "phpstan/phpstan",
- "version": "1.10.27",
+ "version": "1.10.57",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "a9f44dcea06f59d1363b100bb29f297b311fa640"
+ "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/a9f44dcea06f59d1363b100bb29f297b311fa640",
- "reference": "a9f44dcea06f59d1363b100bb29f297b311fa640",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e",
+ "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e",
"shasum": ""
},
"require": {
@@ -2234,20 +2008,20 @@
"type": "tidelift"
}
],
- "time": "2023-08-05T09:57:55+00:00"
+ "time": "2024-01-24T11:51:34+00:00"
},
{
"name": "phpstan/phpstan-phpunit",
- "version": "1.3.13",
+ "version": "1.3.15",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan-phpunit.git",
- "reference": "d8bdab0218c5eb0964338d24a8511b65e9c94fa5"
+ "reference": "70ecacc64fe8090d8d2a33db5a51fe8e88acd93a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/d8bdab0218c5eb0964338d24a8511b65e9c94fa5",
- "reference": "d8bdab0218c5eb0964338d24a8511b65e9c94fa5",
+ "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/70ecacc64fe8090d8d2a33db5a51fe8e88acd93a",
+ "reference": "70ecacc64fe8090d8d2a33db5a51fe8e88acd93a",
"shasum": ""
},
"require": {
@@ -2260,7 +2034,7 @@
"require-dev": {
"nikic/php-parser": "^4.13.0",
"php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-strict-rules": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.5.1",
"phpunit/phpunit": "^9.5"
},
"type": "phpstan-extension",
@@ -2284,27 +2058,27 @@
"description": "PHPUnit extensions and rules for PHPStan",
"support": {
"issues": "https://github.com/phpstan/phpstan-phpunit/issues",
- "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.3.13"
+ "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.3.15"
},
- "time": "2023-05-26T11:05:59+00:00"
+ "time": "2023-10-09T18:58:39+00:00"
},
{
"name": "phpstan/phpstan-strict-rules",
- "version": "1.5.1",
+ "version": "1.5.2",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan-strict-rules.git",
- "reference": "b21c03d4f6f3a446e4311155f4be9d65048218e6"
+ "reference": "7a50e9662ee9f3942e4aaaf3d603653f60282542"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/b21c03d4f6f3a446e4311155f4be9d65048218e6",
- "reference": "b21c03d4f6f3a446e4311155f4be9d65048218e6",
+ "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/7a50e9662ee9f3942e4aaaf3d603653f60282542",
+ "reference": "7a50e9662ee9f3942e4aaaf3d603653f60282542",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.10"
+ "phpstan/phpstan": "^1.10.34"
},
"require-dev": {
"nikic/php-parser": "^4.13.0",
@@ -2333,41 +2107,41 @@
"description": "Extra strict and opinionated rules for PHPStan",
"support": {
"issues": "https://github.com/phpstan/phpstan-strict-rules/issues",
- "source": "https://github.com/phpstan/phpstan-strict-rules/tree/1.5.1"
+ "source": "https://github.com/phpstan/phpstan-strict-rules/tree/1.5.2"
},
- "time": "2023-03-29T14:47:40+00:00"
+ "time": "2023-10-30T14:35:06+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.27",
+ "version": "10.1.11",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1"
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b0a88255cb70d52653d80c890bd7f38740ea50d1",
- "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145",
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.15",
- "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.3",
- "sebastian/version": "^3.0.1",
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1",
+ "phpunit/php-file-iterator": "^4.0",
+ "phpunit/php-text-template": "^3.0",
+ "sebastian/code-unit-reverse-lookup": "^3.0",
+ "sebastian/complexity": "^3.0",
+ "sebastian/environment": "^6.0",
+ "sebastian/lines-of-code": "^2.0",
+ "sebastian/version": "^4.0",
"theseer/tokenizer": "^1.2.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.1"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -2376,7 +2150,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.2-dev"
+ "dev-main": "10.1-dev"
}
},
"autoload": {
@@ -2405,7 +2179,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.27"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11"
},
"funding": [
{
@@ -2413,32 +2187,32 @@
"type": "github"
}
],
- "time": "2023-07-26T13:44:30+00:00"
+ "time": "2023-12-21T15:38:30+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "3.0.6",
+ "version": "4.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -2465,7 +2239,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
},
"funding": [
{
@@ -2473,28 +2248,28 @@
"type": "github"
}
],
- "time": "2021-12-02T12:48:52+00:00"
+ "time": "2023-08-31T06:24:48+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "3.1.1",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
"ext-pcntl": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"suggest": {
"ext-pcntl": "*"
@@ -2502,7 +2277,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -2528,7 +2303,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
},
"funding": [
{
@@ -2536,32 +2311,32 @@
"type": "github"
}
],
- "time": "2020-09-28T05:58:55+00:00"
+ "time": "2023-02-03T06:56:09+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "2.0.4",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -2587,7 +2362,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
},
"funding": [
{
@@ -2595,32 +2371,32 @@
"type": "github"
}
],
- "time": "2020-10-26T05:33:50+00:00"
+ "time": "2023-08-31T14:07:24+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "5.0.3",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -2646,7 +2422,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
},
"funding": [
{
@@ -2654,24 +2430,23 @@
"type": "github"
}
],
- "time": "2020-10-26T13:16:10+00:00"
+ "time": "2023-02-03T06:57:52+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "9.6.10",
+ "version": "10.5.10",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328"
+ "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a6d351645c3fe5a30f5e86be6577d946af65a328",
- "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/50b8e314b6d0dd06521dc31d1abffa73f25f850c",
+ "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
@@ -2681,27 +2456,26 @@
"myclabs/deep-copy": "^1.10.1",
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
- "php": ">=7.3",
- "phpunit/php-code-coverage": "^9.2.13",
- "phpunit/php-file-iterator": "^3.0.5",
- "phpunit/php-invoker": "^3.1.1",
- "phpunit/php-text-template": "^2.0.3",
- "phpunit/php-timer": "^5.0.2",
- "sebastian/cli-parser": "^1.0.1",
- "sebastian/code-unit": "^1.0.6",
- "sebastian/comparator": "^4.0.8",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.5",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^3.2",
- "sebastian/version": "^3.0.2"
+ "php": ">=8.1",
+ "phpunit/php-code-coverage": "^10.1.5",
+ "phpunit/php-file-iterator": "^4.0",
+ "phpunit/php-invoker": "^4.0",
+ "phpunit/php-text-template": "^3.0",
+ "phpunit/php-timer": "^6.0",
+ "sebastian/cli-parser": "^2.0",
+ "sebastian/code-unit": "^2.0",
+ "sebastian/comparator": "^5.0",
+ "sebastian/diff": "^5.0",
+ "sebastian/environment": "^6.0",
+ "sebastian/exporter": "^5.1",
+ "sebastian/global-state": "^6.0.1",
+ "sebastian/object-enumerator": "^5.0",
+ "sebastian/recursion-context": "^5.0",
+ "sebastian/type": "^4.0",
+ "sebastian/version": "^4.0"
},
"suggest": {
- "ext-soap": "To be able to generate mocks based on WSDL files",
- "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ "ext-soap": "To be able to generate mocks based on WSDL files"
},
"bin": [
"phpunit"
@@ -2709,7 +2483,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.6-dev"
+ "dev-main": "10.5-dev"
}
},
"autoload": {
@@ -2741,7 +2515,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.10"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.10"
},
"funding": [
{
@@ -2757,56 +2531,7 @@
"type": "tidelift"
}
],
- "time": "2023-07-10T04:04:23+00:00"
- },
- {
- "name": "psr/cache",
- "version": "3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
- "shasum": ""
- },
- "require": {
- "php": ">=8.0.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "support": {
- "source": "https://github.com/php-fig/cache/tree/3.0.0"
- },
- "time": "2021-02-03T23:26:27+00:00"
+ "time": "2024-02-04T09:07:51+00:00"
},
{
"name": "psr/container",
@@ -2963,21 +2688,21 @@
},
{
"name": "rector/rector",
- "version": "0.17.13",
+ "version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/rectorphp/rector.git",
- "reference": "e2003ba7c5bda06d7bb419cf4be8dae5f8672132"
+ "reference": "362258a1f6369fc88d02d469a5478d220f78b0e6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/rectorphp/rector/zipball/e2003ba7c5bda06d7bb419cf4be8dae5f8672132",
- "reference": "e2003ba7c5bda06d7bb419cf4be8dae5f8672132",
+ "url": "https://api.github.com/repos/rectorphp/rector/zipball/362258a1f6369fc88d02d469a5478d220f78b0e6",
+ "reference": "362258a1f6369fc88d02d469a5478d220f78b0e6",
"shasum": ""
},
"require": {
"php": "^7.2|^8.0",
- "phpstan/phpstan": "^1.10.26"
+ "phpstan/phpstan": "^1.10.56"
},
"conflict": {
"rector/rector-doctrine": "*",
@@ -3007,7 +2732,7 @@
],
"support": {
"issues": "https://github.com/rectorphp/rector/issues",
- "source": "https://github.com/rectorphp/rector/tree/0.17.13"
+ "source": "https://github.com/rectorphp/rector/tree/1.0.0"
},
"funding": [
{
@@ -3015,35 +2740,41 @@
"type": "github"
}
],
- "time": "2023-08-14T16:33:29+00:00"
+ "time": "2024-02-06T13:38:07+00:00"
},
{
"name": "sanmai/later",
- "version": "0.1.2",
+ "version": "0.1.4",
"source": {
"type": "git",
"url": "https://github.com/sanmai/later.git",
- "reference": "9b659fecef2030193fd02402955bc39629d5606f"
+ "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sanmai/later/zipball/9b659fecef2030193fd02402955bc39629d5606f",
- "reference": "9b659fecef2030193fd02402955bc39629d5606f",
+ "url": "https://api.github.com/repos/sanmai/later/zipball/e24c4304a4b1349c2a83151a692cec0c10579f60",
+ "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.4"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.13",
- "infection/infection": ">=0.10.5",
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^3.35.1",
+ "infection/infection": ">=0.27.6",
"phan/phan": ">=2",
"php-coveralls/php-coveralls": "^2.0",
- "phpstan/phpstan": ">=0.10",
- "phpunit/phpunit": ">=7.4",
+ "phpstan/phpstan": ">=1.4.5",
+ "phpunit/phpunit": ">=9.5 <10",
"vimeo/psalm": ">=2"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.1.x-dev"
+ }
+ },
"autoload": {
"files": [
"src/functions.php"
@@ -3065,7 +2796,7 @@
"description": "Later: deferred wrapper object",
"support": {
"issues": "https://github.com/sanmai/later/issues",
- "source": "https://github.com/sanmai/later/tree/0.1.2"
+ "source": "https://github.com/sanmai/later/tree/0.1.4"
},
"funding": [
{
@@ -3073,20 +2804,20 @@
"type": "github"
}
],
- "time": "2021-01-02T10:26:44+00:00"
+ "time": "2023-10-24T00:25:28+00:00"
},
{
"name": "sanmai/pipeline",
- "version": "v6.8.1",
+ "version": "v6.9",
"source": {
"type": "git",
"url": "https://github.com/sanmai/pipeline.git",
- "reference": "2e88e466dd49f20c10a15330b3953d4d49c326e3"
+ "reference": "c48f45c22c3ce4140d071f7658fb151df1cc08ea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sanmai/pipeline/zipball/2e88e466dd49f20c10a15330b3953d4d49c326e3",
- "reference": "2e88e466dd49f20c10a15330b3953d4d49c326e3",
+ "url": "https://api.github.com/repos/sanmai/pipeline/zipball/c48f45c22c3ce4140d071f7658fb151df1cc08ea",
+ "reference": "c48f45c22c3ce4140d071f7658fb151df1cc08ea",
"shasum": ""
},
"require": {
@@ -3130,7 +2861,7 @@
"description": "General-purpose collections pipeline",
"support": {
"issues": "https://github.com/sanmai/pipeline/issues",
- "source": "https://github.com/sanmai/pipeline/tree/v6.8.1"
+ "source": "https://github.com/sanmai/pipeline/tree/v6.9"
},
"funding": [
{
@@ -3138,32 +2869,32 @@
"type": "github"
}
],
- "time": "2023-06-15T09:14:47+00:00"
+ "time": "2023-10-08T11:56:54+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.1",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae",
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "2.0-dev"
}
},
"autoload": {
@@ -3186,7 +2917,7 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0"
},
"funding": [
{
@@ -3194,32 +2925,32 @@
"type": "github"
}
],
- "time": "2020-09-28T06:08:49+00:00"
+ "time": "2023-02-03T06:58:15+00:00"
},
{
"name": "sebastian/code-unit",
- "version": "1.0.8",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "2.0-dev"
}
},
"autoload": {
@@ -3242,7 +2973,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.8"
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
},
"funding": [
{
@@ -3250,32 +2981,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:08:54+00:00"
+ "time": "2023-02-03T06:58:43+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "2.0.3",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -3297,7 +3028,7 @@
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
},
"funding": [
{
@@ -3305,34 +3036,36 @@
"type": "github"
}
],
- "time": "2020-09-28T05:30:19+00:00"
+ "time": "2023-02-03T06:59:15+00:00"
},
{
"name": "sebastian/comparator",
- "version": "4.0.8",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/diff": "^4.0",
- "sebastian/exporter": "^4.0"
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/diff": "^5.0",
+ "sebastian/exporter": "^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -3371,7 +3104,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
},
"funding": [
{
@@ -3379,33 +3113,33 @@
"type": "github"
}
],
- "time": "2022-09-14T12:41:17+00:00"
+ "time": "2023-08-14T13:18:12+00:00"
},
{
"name": "sebastian/complexity",
- "version": "2.0.2",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ "reference": "68ff824baeae169ec9f2137158ee529584553799"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.7",
- "php": ">=7.3"
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.2-dev"
}
},
"autoload": {
@@ -3428,7 +3162,8 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
},
"funding": [
{
@@ -3436,33 +3171,33 @@
"type": "github"
}
],
- "time": "2020-10-26T15:52:27+00:00"
+ "time": "2023-12-21T08:37:17+00:00"
},
{
"name": "sebastian/diff",
- "version": "4.0.5",
+ "version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
- "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3",
+ "phpunit/phpunit": "^10.0",
"symfony/process": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -3494,7 +3229,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
+ "security": "https://github.com/sebastianbergmann/diff/security/policy",
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0"
},
"funding": [
{
@@ -3502,27 +3238,27 @@
"type": "github"
}
],
- "time": "2023-05-07T05:35:17+00:00"
+ "time": "2023-12-22T10:55:06+00:00"
},
{
"name": "sebastian/environment",
- "version": "5.1.5",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
- "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951",
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"suggest": {
"ext-posix": "*"
@@ -3530,7 +3266,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.1-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -3549,7 +3285,7 @@
}
],
"description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "homepage": "https://github.com/sebastianbergmann/environment",
"keywords": [
"Xdebug",
"environment",
@@ -3557,7 +3293,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ "security": "https://github.com/sebastianbergmann/environment/security/policy",
+ "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1"
},
"funding": [
{
@@ -3565,34 +3302,34 @@
"type": "github"
}
],
- "time": "2023-02-03T06:03:51+00:00"
+ "time": "2023-04-11T05:39:26+00:00"
},
{
"name": "sebastian/exporter",
- "version": "4.0.5",
+ "version": "5.1.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc",
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/recursion-context": "^4.0"
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/recursion-context": "^5.0"
},
"require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -3634,7 +3371,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
+ "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1"
},
"funding": [
{
@@ -3642,38 +3380,35 @@
"type": "github"
}
],
- "time": "2022-09-14T06:03:37+00:00"
+ "time": "2023-09-24T13:22:09+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.6",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "bde739e7565280bda77be70044ac1047bc007e34"
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
- "reference": "bde739e7565280bda77be70044ac1047bc007e34",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4",
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^9.3"
- },
- "suggest": {
- "ext-uopz": "*"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -3698,7 +3433,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6"
+ "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1"
},
"funding": [
{
@@ -3706,33 +3442,33 @@
"type": "github"
}
],
- "time": "2023-08-02T09:26:13+00:00"
+ "time": "2023-07-19T07:19:23+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.3",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.6",
- "php": ">=7.3"
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "2.0-dev"
}
},
"autoload": {
@@ -3755,7 +3491,8 @@
"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.3"
+ "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
},
"funding": [
{
@@ -3763,34 +3500,34 @@
"type": "github"
}
],
- "time": "2020-11-28T06:42:11+00:00"
+ "time": "2023-12-21T08:38:20+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "4.0.4",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -3812,7 +3549,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.4"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
},
"funding": [
{
@@ -3820,32 +3557,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:12:34+00:00"
+ "time": "2023-02-03T07:08:32+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "2.0.4",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -3867,7 +3604,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.4"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
},
"funding": [
{
@@ -3875,32 +3612,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:14:26+00:00"
+ "time": "2023-02-03T07:06:18+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "4.0.5",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
- "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -3930,62 +3667,7 @@
"homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2023-02-03T06:07:39+00:00"
- },
- {
- "name": "sebastian/resource-operations",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides a list of PHP built-in functions that operate on resources",
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
- "support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
},
"funding": [
{
@@ -3993,32 +3675,32 @@
"type": "github"
}
],
- "time": "2020-09-28T06:45:17+00:00"
+ "time": "2023-02-03T07:05:40+00:00"
},
{
"name": "sebastian/type",
- "version": "3.2.1",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
- "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.5"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.2-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -4041,7 +3723,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
},
"funding": [
{
@@ -4049,29 +3731,29 @@
"type": "github"
}
],
- "time": "2023-02-03T06:13:03+00:00"
+ "time": "2023-02-03T07:10:45+00:00"
},
{
"name": "sebastian/version",
- "version": "3.0.2",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
- "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -4094,7 +3776,7 @@
"homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
- "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
},
"funding": [
{
@@ -4102,20 +3784,20 @@
"type": "github"
}
],
- "time": "2020-09-28T06:39:44+00:00"
+ "time": "2023-02-07T11:34:05+00:00"
},
{
"name": "spatie/array-to-xml",
- "version": "3.2.0",
+ "version": "3.2.3",
"source": {
"type": "git",
"url": "https://github.com/spatie/array-to-xml.git",
- "reference": "f9ab39c808500c347d5a8b6b13310bd5221e39e7"
+ "reference": "c95fd4db94ec199f798d4b5b4a81757bd20d88ab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f9ab39c808500c347d5a8b6b13310bd5221e39e7",
- "reference": "f9ab39c808500c347d5a8b6b13310bd5221e39e7",
+ "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/c95fd4db94ec199f798d4b5b4a81757bd20d88ab",
+ "reference": "c95fd4db94ec199f798d4b5b4a81757bd20d88ab",
"shasum": ""
},
"require": {
@@ -4153,7 +3835,7 @@
"xml"
],
"support": {
- "source": "https://github.com/spatie/array-to-xml/tree/3.2.0"
+ "source": "https://github.com/spatie/array-to-xml/tree/3.2.3"
},
"funding": [
{
@@ -4165,27 +3847,28 @@
"type": "github"
}
],
- "time": "2023-07-19T18:30:26+00:00"
+ "time": "2024-02-07T10:39:02+00:00"
},
{
"name": "symfony/console",
- "version": "v6.0.19",
+ "version": "v6.4.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed"
+ "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed",
- "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed",
+ "url": "https://api.github.com/repos/symfony/console/zipball/2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e",
+ "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.4|^6.0"
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0|^7.0"
},
"conflict": {
"symfony/dependency-injection": "<5.4",
@@ -4199,18 +3882,16 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/lock": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4239,12 +3920,12 @@
"homepage": "https://symfony.com",
"keywords": [
"cli",
- "command line",
+ "command-line",
"console",
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.0.19"
+ "source": "https://github.com/symfony/console/tree/v6.4.3"
},
"funding": [
{
@@ -4260,29 +3941,29 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-01-23T14:51:35+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.0.2",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4311,7 +3992,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
},
"funding": [
{
@@ -4327,28 +4008,29 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:55:41+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.0.19",
+ "version": "v6.4.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a"
+ "reference": "ae9d3a6f3003a6caf56acd7466d8d52378d44fef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
- "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ae9d3a6f3003a6caf56acd7466d8d52378d44fef",
+ "reference": "ae9d3a6f3003a6caf56acd7466d8d52378d44fef",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
- "symfony/event-dispatcher-contracts": "^2|^3"
+ "php": ">=8.1",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<5.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/service-contracts": "<2.5"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
@@ -4356,17 +4038,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^5.4|^6.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4394,7 +4072,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.3"
},
"funding": [
{
@@ -4410,33 +4088,30 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-01-23T14:51:35+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.0.2",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051"
+ "reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
+ "reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"psr/event-dispatcher": "^1"
},
- "suggest": {
- "symfony/event-dispatcher-implementation": ""
- },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4473,7 +4148,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0"
},
"funding": [
{
@@ -4489,24 +4164,24 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:55:41+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v6.0.19",
+ "version": "v6.4.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214"
+ "reference": "7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/3d49eec03fda1f0fc19b7349fbbe55ebc1004214",
- "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb",
+ "reference": "7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
@@ -4536,7 +4211,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.0.19"
+ "source": "https://github.com/symfony/filesystem/tree/v6.4.3"
},
"funding": [
{
@@ -4552,24 +4227,27 @@
"type": "tidelift"
}
],
- "time": "2023-01-20T17:44:14+00:00"
+ "time": "2024-01-23T14:51:35+00:00"
},
{
"name": "symfony/finder",
- "version": "v6.0.19",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11"
+ "reference": "11d736e97f116ac375a81f96e662911a34cd50ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11",
- "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce",
+ "reference": "11d736e97f116ac375a81f96e662911a34cd50ce",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4597,7 +4275,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.0.19"
+ "source": "https://github.com/symfony/finder/tree/v6.4.0"
},
"funding": [
{
@@ -4613,25 +4291,25 @@
"type": "tidelift"
}
],
- "time": "2023-01-20T17:44:14+00:00"
+ "time": "2023-10-31T17:30:12+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v6.0.19",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3"
+ "reference": "22301f0e7fdeaacc14318928612dee79be99860e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/6a180d1c45e0d9797470ca9eb46215692de00fa3",
- "reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/22301f0e7fdeaacc14318928612dee79be99860e",
+ "reference": "22301f0e7fdeaacc14318928612dee79be99860e",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@@ -4664,7 +4342,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v6.0.19"
+ "source": "https://github.com/symfony/options-resolver/tree/v6.4.0"
},
"funding": [
{
@@ -4680,20 +4358,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2023-08-08T10:16:24+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.27.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
+ "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
+ "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
"shasum": ""
},
"require": {
@@ -4707,9 +4385,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -4746,7 +4421,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
},
"funding": [
{
@@ -4762,20 +4437,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.27.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
"shasum": ""
},
"require": {
@@ -4786,9 +4461,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -4827,7 +4499,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
},
"funding": [
{
@@ -4843,20 +4515,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.27.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
"shasum": ""
},
"require": {
@@ -4867,9 +4539,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -4911,7 +4580,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
},
"funding": [
{
@@ -4927,20 +4596,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.27.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
"shasum": ""
},
"require": {
@@ -4954,9 +4623,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -4994,7 +4660,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
},
"funding": [
{
@@ -5010,20 +4676,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.27.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
"shasum": ""
},
"require": {
@@ -5031,9 +4697,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5077,7 +4740,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
},
"funding": [
{
@@ -5093,20 +4756,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-php81",
- "version": "v1.27.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
+ "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d",
+ "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d",
"shasum": ""
},
"require": {
@@ -5114,9 +4777,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5156,7 +4816,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0"
},
"funding": [
{
@@ -5172,24 +4832,24 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/process",
- "version": "v6.0.19",
+ "version": "v6.4.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "2114fd60f26a296cc403a7939ab91478475a33d4"
+ "reference": "31642b0818bfcff85930344ef93193f8c607e0a3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4",
- "reference": "2114fd60f26a296cc403a7939ab91478475a33d4",
+ "url": "https://api.github.com/repos/symfony/process/zipball/31642b0818bfcff85930344ef93193f8c607e0a3",
+ "reference": "31642b0818bfcff85930344ef93193f8c607e0a3",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
@@ -5217,7 +4877,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.0.19"
+ "source": "https://github.com/symfony/process/tree/v6.4.3"
},
"funding": [
{
@@ -5233,36 +4893,33 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-01-23T14:51:35+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.0.2",
+ "version": "v3.4.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66"
+ "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66",
- "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
+ "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
- "psr/container": "^2.0"
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -5272,7 +4929,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -5299,7 +4959,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
},
"funding": [
{
@@ -5315,25 +4975,25 @@
"type": "tidelift"
}
],
- "time": "2022-05-30T19:17:58+00:00"
+ "time": "2023-12-26T14:02:43+00:00"
},
{
"name": "symfony/stopwatch",
- "version": "v6.0.19",
+ "version": "v6.4.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "011e781839dd1d2eb8119f65ac516a530f60226d"
+ "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/011e781839dd1d2eb8119f65ac516a530f60226d",
- "reference": "011e781839dd1d2eb8119f65ac516a530f60226d",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/416596166641f1f728b0a64f5b9dd07cceb410c1",
+ "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
- "symfony/service-contracts": "^1|^2|^3"
+ "php": ">=8.1",
+ "symfony/service-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@@ -5361,7 +5021,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v6.0.19"
+ "source": "https://github.com/symfony/stopwatch/tree/v6.4.3"
},
"funding": [
{
@@ -5377,37 +5037,38 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/string",
- "version": "v6.0.19",
+ "version": "v6.4.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a"
+ "reference": "7a14736fb179876575464e4658fce0c304e8c15b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a",
- "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a",
+ "url": "https://api.github.com/repos/symfony/string/zipball/7a14736fb179876575464e4658fce0c304e8c15b",
+ "reference": "7a14736fb179876575464e4658fce0c304e8c15b",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/translation-contracts": "<2.0"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/translation-contracts": "^2.0|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^6.2|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -5446,7 +5107,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.0.19"
+ "source": "https://github.com/symfony/string/tree/v6.4.3"
},
"funding": [
{
@@ -5462,7 +5123,7 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-01-25T09:26:29+00:00"
},
{
"name": "thecodingmachine/safe",
@@ -5605,16 +5266,16 @@
},
{
"name": "theseer/tokenizer",
- "version": "1.2.1",
+ "version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
"shasum": ""
},
"require": {
@@ -5643,7 +5304,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.2.1"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
},
"funding": [
{
@@ -5651,20 +5312,20 @@
"type": "github"
}
],
- "time": "2021-07-28T10:34:58+00:00"
+ "time": "2023-11-20T00:12:19+00:00"
},
{
"name": "vimeo/psalm",
- "version": "5.14.1",
+ "version": "5.15.0",
"source": {
"type": "git",
"url": "https://github.com/vimeo/psalm.git",
- "reference": "b9d355e0829c397b9b3b47d0c0ed042a8a70284d"
+ "reference": "5c774aca4746caf3d239d9c8cadb9f882ca29352"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vimeo/psalm/zipball/b9d355e0829c397b9b3b47d0c0ed042a8a70284d",
- "reference": "b9d355e0829c397b9b3b47d0c0ed042a8a70284d",
+ "url": "https://api.github.com/repos/vimeo/psalm/zipball/5c774aca4746caf3d239d9c8cadb9f882ca29352",
+ "reference": "5c774aca4746caf3d239d9c8cadb9f882ca29352",
"shasum": ""
},
"require": {
@@ -5692,6 +5353,9 @@
"symfony/console": "^4.1.6 || ^5.0 || ^6.0",
"symfony/filesystem": "^5.4 || ^6.0"
},
+ "conflict": {
+ "nikic/php-parser": "4.17.0"
+ },
"provide": {
"psalm/psalm": "self.version"
},
@@ -5755,9 +5419,9 @@
],
"support": {
"issues": "https://github.com/vimeo/psalm/issues",
- "source": "https://github.com/vimeo/psalm/tree/5.14.1"
+ "source": "https://github.com/vimeo/psalm/tree/5.15.0"
},
- "time": "2023-08-01T05:16:55+00:00"
+ "time": "2023-08-20T23:07:30+00:00"
},
{
"name": "webmozart/assert",
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 735fe68e..083519e9 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -1,8 +1,7 @@
+ xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
+ cacheResultFile="var/cache/phpunit/.phpunit.result.cache">
@@ -19,10 +18,9 @@
tests/Integration
-
-
+
+
diff --git a/qa/Psalm/Plugin/ArgumentsMapperPsalmPlugin.php b/qa/Psalm/Plugin/ArgumentsMapperPsalmPlugin.php
index fc21e816..bc97ab7b 100644
--- a/qa/Psalm/Plugin/ArgumentsMapperPsalmPlugin.php
+++ b/qa/Psalm/Plugin/ArgumentsMapperPsalmPlugin.php
@@ -58,13 +58,15 @@ public static function getMethodReturnType(MethodReturnTypeProviderEvent $event)
return null;
}
- if (empty($type->params ?? [])) {
+ $typeParams = $type->params ?? [];
+
+ if ($typeParams === []) {
return null;
}
$params = [];
- foreach ($type->params as $param) {
+ foreach ($typeParams as $param) {
$params[$param->name] = $param->type ?? new Union([new TMixed()]);
}
diff --git a/src/MapperBuilder.php b/src/MapperBuilder.php
index 60d48881..ef343abb 100644
--- a/src/MapperBuilder.php
+++ b/src/MapperBuilder.php
@@ -176,8 +176,8 @@ public function infer(string $name, callable $callback): self
* case CASE_D = 'BAR_VALUE_2';
*
* /**
- * * @param 'FOO'|'BAR' $type
- * * @param int<1, 2> $number
+ * * \@param 'FOO'|'BAR' $type
+ * * \@param int<1, 2> $number
* * /
* public static function fromMatrix(string $type, int $number): self
* {
diff --git a/src/Utility/Reflection/DocParser.php b/src/Utility/Reflection/DocParser.php
index bab41b46..dbaf50d9 100644
--- a/src/Utility/Reflection/DocParser.php
+++ b/src/Utility/Reflection/DocParser.php
@@ -219,7 +219,7 @@ private static function sanitizeDocComment(string|false $doc): ?string
$doc = preg_replace('#^\s*/\*\*([^/]+)\*/\s*$#', '$1', $doc);
- return preg_replace('/^\s*\*\s*(\S*)/m', '$1', $doc); // @phpstan-ignore-line
+ return preg_replace('/^\s*\*\s*(\S*)/m', '$1', (string)$doc);
}
/**
diff --git a/tests/Functional/Definition/Repository/Cache/Compiler/TypeCompilerTest.php b/tests/Functional/Definition/Repository/Cache/Compiler/TypeCompilerTest.php
index 137b6841..19a3d762 100644
--- a/tests/Functional/Definition/Repository/Cache/Compiler/TypeCompilerTest.php
+++ b/tests/Functional/Definition/Repository/Cache/Compiler/TypeCompilerTest.php
@@ -44,6 +44,7 @@
use DateTime;
use DateTimeInterface;
use Error;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -58,9 +59,7 @@ protected function setUp(): void
$this->typeCompiler = new TypeCompiler();
}
- /**
- * @dataProvider type_is_compiled_correctly_data_provider
- */
+ #[DataProvider('type_is_compiled_correctly_data_provider')]
public function test_type_is_compiled_correctly(Type $type): void
{
$code = $this->typeCompiler->compile($type);
@@ -75,7 +74,7 @@ public function test_type_is_compiled_correctly(Type $type): void
self::assertSame($type->toString(), $compiledType->toString());
}
- public function type_is_compiled_correctly_data_provider(): iterable
+ public static function type_is_compiled_correctly_data_provider(): iterable
{
yield [NullType::get()];
yield [BooleanValueType::true()];
diff --git a/tests/Functional/Type/Parser/Lexer/GenericLexerTest.php b/tests/Functional/Type/Parser/Lexer/GenericLexerTest.php
index 80ed0580..838b844b 100644
--- a/tests/Functional/Type/Parser/Lexer/GenericLexerTest.php
+++ b/tests/Functional/Type/Parser/Lexer/GenericLexerTest.php
@@ -24,6 +24,7 @@
use CuyZ\Valinor\Type\ClassType;
use CuyZ\Valinor\Type\Types\InterfaceType;
use DateTimeInterface;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -39,10 +40,9 @@ protected function setUp(): void
}
/**
- * @dataProvider parse_valid_types_returns_valid_result_data_provider
- *
* @param class-string $type
*/
+ #[DataProvider('parse_valid_types_returns_valid_result_data_provider')]
public function test_parse_valid_types_returns_valid_result(string $raw, string $transformed, string $type): void
{
$result = $this->parser->parse($raw);
@@ -51,55 +51,60 @@ public function test_parse_valid_types_returns_valid_result(string $raw, string
self::assertInstanceOf($type, $result);
}
- public function parse_valid_types_returns_valid_result_data_provider(): array
+ public static function parse_valid_types_returns_valid_result_data_provider(): iterable
{
- return [
- 'Class name with no template' => [
- 'raw' => stdClass::class,
- 'transformed' => stdClass::class,
- 'type' => ClassType::class,
- ],
- 'Abstract class name with no template' => [
- 'raw' => AbstractObject::class,
- 'transformed' => AbstractObject::class,
- 'type' => ClassType::class,
- ],
- 'Interface name with no template' => [
- 'raw' => DateTimeInterface::class,
- 'transformed' => DateTimeInterface::class,
- 'type' => InterfaceType::class,
- ],
- 'Class name with generic with one template' => [
- 'raw' => $this->classWithOneTemplate() . '',
- 'transformed' => $this->classWithOneTemplate() . '',
- 'type' => ClassType::class,
- ],
- 'Class name with generic with three templates' => [
- 'raw' => $this->classWithThreeTemplates() . '',
- 'transformed' => $this->classWithThreeTemplates() . '',
- 'type' => ClassType::class,
- ],
- 'Class name with generic with template of array-key with string' => [
- 'raw' => $this->classWithTemplateOfArrayKey() . '',
- 'transformed' => $this->classWithTemplateOfArrayKey() . '',
- 'type' => ClassType::class,
- ],
- 'Class name with generic with template of array-key with integer' => [
- 'raw' => $this->classWithTemplateOfArrayKey() . '',
- 'transformed' => $this->classWithTemplateOfArrayKey() . '',
- 'type' => ClassType::class,
- ],
- 'Simple array of class name with no template' => [
- 'raw' => stdClass::class . '[]',
- 'transformed' => stdClass::class . '[]',
- 'type' => CompositeTraversableType::class,
- ],
+ yield 'Class name with no template' => [
+ 'raw' => stdClass::class,
+ 'transformed' => stdClass::class,
+ 'type' => ClassType::class,
+ ];
+
+ yield 'Abstract class name with no template' => [
+ 'raw' => AbstractObject::class,
+ 'transformed' => AbstractObject::class,
+ 'type' => ClassType::class,
+ ];
+
+ yield 'Interface name with no template' => [
+ 'raw' => DateTimeInterface::class,
+ 'transformed' => DateTimeInterface::class,
+ 'type' => InterfaceType::class,
+ ];
+
+ yield 'Class name with generic with one template' => [
+ 'raw' => SomeClassWithOneTemplate::class . '',
+ 'transformed' => SomeClassWithOneTemplate::class . '',
+ 'type' => ClassType::class,
+ ];
+
+ yield 'Class name with generic with three templates' => [
+ 'raw' => SomeClassWithThreeTemplates::class . '',
+ 'transformed' => SomeClassWithThreeTemplates::class . '',
+ 'type' => ClassType::class,
+ ];
+
+ yield 'Class name with generic with template of array-key with string' => [
+ 'raw' => SomeClassWithTemplateOfArrayKey::class . '',
+ 'transformed' => SomeClassWithTemplateOfArrayKey::class . '',
+ 'type' => ClassType::class,
+ ];
+
+ yield 'Class name with generic with template of array-key with integer' => [
+ 'raw' => SomeClassWithTemplateOfArrayKey::class . '',
+ 'transformed' => SomeClassWithTemplateOfArrayKey::class . '',
+ 'type' => ClassType::class,
+ ];
+
+ yield 'Simple array of class name with no template' => [
+ 'raw' => stdClass::class . '[]',
+ 'transformed' => stdClass::class . '[]',
+ 'type' => CompositeTraversableType::class,
];
}
public function test_missing_generics_throws_exception(): void
{
- $genericClassName = $this->classWithThreeTemplates();
+ $genericClassName = SomeClassWithThreeTemplates::class;
$this->expectException(MissingGenerics::class);
$this->expectExceptionCode(1618054357);
@@ -121,7 +126,7 @@ public function test_missing_generic_closing_bracket_throws_exception(): void
public function test_missing_comma_in_generics_throws_exception(): void
{
- $className = $this->classWithThreeTemplates();
+ $className = SomeClassWithThreeTemplates::class;
$this->expectException(GenericCommaMissing::class);
$this->expectExceptionCode(1615829484);
@@ -132,7 +137,7 @@ public function test_missing_comma_in_generics_throws_exception(): void
public function test_assigned_generic_not_found_throws_exception(): void
{
- $className = $this->classWithThreeTemplates();
+ $className = SomeClassWithThreeTemplates::class;
$this->expectException(AssignedGenericNotFound::class);
$this->expectExceptionCode(1604656730);
@@ -143,7 +148,7 @@ public function test_assigned_generic_not_found_throws_exception(): void
public function test_generic_with_no_template_throws_exception(): void
{
- $className = $this->classWithOneTemplate();
+ $className = SomeClassWithOneTemplate::class;
$this->expectException(CannotAssignGeneric::class);
$this->expectExceptionCode(1604660485);
@@ -249,42 +254,24 @@ public function test_extend_tag_type_error_throws_exception(): void
$this->parser->parse($className);
}
+}
- private function classWithOneTemplate(): string
- {
- $object =
- /**
- * @template TemplateA
- */
- new class () {};
-
- return $object::class;
- }
-
- private function classWithThreeTemplates(): string
- {
- $object =
- /**
- * @template TemplateA
- * @template TemplateB
- * @template TemplateC
- */
- new class () {};
-
- return $object::class;
- }
+/**
+ * @template TemplateA
+ */
+final class SomeClassWithOneTemplate {}
- private function classWithTemplateOfArrayKey(): string
- {
- $object =
- /**
- * @template TemplateA of array-key
- */
- new class () {};
+/**
+ * @template TemplateA
+ * @template TemplateB
+ * @template TemplateC
+ */
+final class SomeClassWithThreeTemplates {}
- return $object::class;
- }
-}
+/**
+ * @template TemplateA of array-key
+ */
+final class SomeClassWithTemplateOfArrayKey {}
/**
* @template T
diff --git a/tests/Functional/Type/Parser/Lexer/NativeLexerTest.php b/tests/Functional/Type/Parser/Lexer/NativeLexerTest.php
index 51ec505c..9f9e3850 100644
--- a/tests/Functional/Type/Parser/Lexer/NativeLexerTest.php
+++ b/tests/Functional/Type/Parser/Lexer/NativeLexerTest.php
@@ -77,6 +77,7 @@
use CuyZ\Valinor\Type\Types\UnionType;
use DateTime;
use DateTimeInterface;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -94,10 +95,9 @@ protected function setUp(): void
}
/**
- * @dataProvider parse_valid_types_returns_valid_result_data_provider
- *
* @param class-string $type
*/
+ #[DataProvider('parse_valid_types_returns_valid_result_data_provider')]
public function test_parse_valid_types_returns_valid_result(string $raw, string $transformed, string $type): void
{
$result = $this->parser->parse($raw);
@@ -106,7 +106,7 @@ public function test_parse_valid_types_returns_valid_result(string $raw, string
self::assertInstanceOf($type, $result);
}
- public function parse_valid_types_returns_valid_result_data_provider(): iterable
+ public static function parse_valid_types_returns_valid_result_data_provider(): iterable
{
yield 'Null type' => [
'raw' => 'null',
diff --git a/tests/Integration/Cache/CacheInjectionTest.php b/tests/Integration/Cache/CacheInjectionTest.php
index 80342de7..14f30bd3 100644
--- a/tests/Integration/Cache/CacheInjectionTest.php
+++ b/tests/Integration/Cache/CacheInjectionTest.php
@@ -8,7 +8,7 @@
use CuyZ\Valinor\Cache\FileWatchingCache;
use CuyZ\Valinor\Mapper\TreeMapper;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use org\bovigo\vfs\vfsStream;
use org\bovigo\vfs\vfsStreamDirectory;
@@ -19,7 +19,7 @@
use function file_get_contents;
use function str_ends_with;
-final class CacheInjectionTest extends IntegrationTest
+final class CacheInjectionTest extends IntegrationTestCase
{
public function test_cache_entries_are_written_once_during_mapping(): void
{
diff --git a/tests/Integration/Cache/CacheWarmupTest.php b/tests/Integration/Cache/CacheWarmupTest.php
index d5ac4ce3..1d0377b6 100644
--- a/tests/Integration/Cache/CacheWarmupTest.php
+++ b/tests/Integration/Cache/CacheWarmupTest.php
@@ -8,10 +8,10 @@
use CuyZ\Valinor\MapperBuilder;
use CuyZ\Valinor\Tests\Fake\Cache\FakeCache;
use CuyZ\Valinor\Tests\Fake\Cache\FakeCacheWithWarmup;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use DateTimeInterface;
-final class CacheWarmupTest extends IntegrationTest
+final class CacheWarmupTest extends IntegrationTestCase
{
private FakeCache $cache;
diff --git a/tests/Integration/IntegrationTest.php b/tests/Integration/IntegrationTestCase.php
similarity index 95%
rename from tests/Integration/IntegrationTest.php
rename to tests/Integration/IntegrationTestCase.php
index 59b42d05..ce8ec0bc 100644
--- a/tests/Integration/IntegrationTest.php
+++ b/tests/Integration/IntegrationTestCase.php
@@ -11,7 +11,7 @@
use function implode;
use function iterator_to_array;
-abstract class IntegrationTest extends TestCase
+abstract class IntegrationTestCase extends TestCase
{
protected function mappingFail(MappingError $error): never
{
diff --git a/tests/Integration/Mapping/AnonymousClassMappingTest.php b/tests/Integration/Mapping/AnonymousClassMappingTest.php
index 229fdf57..b4d8cafe 100644
--- a/tests/Integration/Mapping/AnonymousClassMappingTest.php
+++ b/tests/Integration/Mapping/AnonymousClassMappingTest.php
@@ -3,9 +3,9 @@
namespace CuyZ\Valinor\Tests\Integration\Mapping;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class AnonymousClassMappingTest extends IntegrationTest
+final class AnonymousClassMappingTest extends IntegrationTestCase
{
public function test_map_to_string_or_anonymous_class_with_string_works_correctly(): void
{
diff --git a/tests/Integration/Mapping/ClassInheritanceInferringMappingTest.php b/tests/Integration/Mapping/ClassInheritanceInferringMappingTest.php
index cfd68a5a..f113b59c 100644
--- a/tests/Integration/Mapping/ClassInheritanceInferringMappingTest.php
+++ b/tests/Integration/Mapping/ClassInheritanceInferringMappingTest.php
@@ -6,10 +6,10 @@
use CuyZ\Valinor\Mapper\Tree\Exception\CannotInferFinalClass;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use LogicException;
-final class ClassInheritanceInferringMappingTest extends IntegrationTest
+final class ClassInheritanceInferringMappingTest extends IntegrationTestCase
{
public function test_infer_abstract_class_works_as_expected(): void
{
diff --git a/tests/Integration/Mapping/ClassNameCollisionTestCollision.php b/tests/Integration/Mapping/ClassNameCollisionTestCollision.php
index 5b7c1754..66f734ec 100644
--- a/tests/Integration/Mapping/ClassNameCollisionTestCollision.php
+++ b/tests/Integration/Mapping/ClassNameCollisionTestCollision.php
@@ -4,10 +4,10 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\Error;
-final class ClassNameCollisionTestCollision extends IntegrationTest
+final class ClassNameCollisionTestCollision extends IntegrationTestCase
{
public function test_mapping_to_class_with_same_class_name_as_native_class_works_properly(): void
{
diff --git a/tests/Integration/Mapping/Closure/ArgumentsMappingTest.php b/tests/Integration/Mapping/Closure/ArgumentsMappingTest.php
index 9d8373a4..d7b73e12 100644
--- a/tests/Integration/Mapping/Closure/ArgumentsMappingTest.php
+++ b/tests/Integration/Mapping/Closure/ArgumentsMappingTest.php
@@ -6,9 +6,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class ArgumentsMappingTest extends IntegrationTest
+final class ArgumentsMappingTest extends IntegrationTestCase
{
public function test_can_map_to_anonymous_function(): void
{
diff --git a/tests/Integration/Mapping/ConstructorRegistrationMappingTest.php b/tests/Integration/Mapping/ConstructorRegistrationMappingTest.php
index 878251a6..80c47ddc 100644
--- a/tests/Integration/Mapping/ConstructorRegistrationMappingTest.php
+++ b/tests/Integration/Mapping/ConstructorRegistrationMappingTest.php
@@ -14,7 +14,7 @@
use CuyZ\Valinor\Mapper\Object\Exception\ObjectBuildersCollision;
use CuyZ\Valinor\MapperBuilder;
use CuyZ\Valinor\Tests\Fake\Mapper\Tree\Message\FakeErrorMessage;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObjectWithGeneric;
use DateTime;
@@ -22,7 +22,7 @@
use DateTimeInterface;
use stdClass;
-final class ConstructorRegistrationMappingTest extends IntegrationTest
+final class ConstructorRegistrationMappingTest extends IntegrationTestCase
{
public function test_registered_anonymous_function_constructor_is_used(): void
{
@@ -667,7 +667,6 @@ public function test_registered_constructor_throwing_exception_fails_mapping_wit
{
try {
(new MapperBuilder())
- // @phpstan-ignore-next-line
->registerConstructor(fn (): stdClass => throw new FakeErrorMessage('some error message', 1656076090))
->mapper()
->map(stdClass::class, []);
@@ -774,7 +773,7 @@ final class SomeClassWithStaticConstructorForOtherClass
public static function from(string $value): SimpleObject
{
$object = new SimpleObject();
- $object->value= $value;
+ $object->value = $value;
return $object;
}
diff --git a/tests/Integration/Mapping/EnumConstructorRegistrationMappingTest.php b/tests/Integration/Mapping/EnumConstructorRegistrationMappingTest.php
index 67706143..59f79d59 100644
--- a/tests/Integration/Mapping/EnumConstructorRegistrationMappingTest.php
+++ b/tests/Integration/Mapping/EnumConstructorRegistrationMappingTest.php
@@ -5,9 +5,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
use CuyZ\Valinor\Tests\Fixture\Enum\BackedStringEnum;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-class EnumConstructorRegistrationMappingTest extends IntegrationTest
+class EnumConstructorRegistrationMappingTest extends IntegrationTestCase
{
public function test_constructor_with_no_argument_is_called_when_no_value_is_given(): void
{
diff --git a/tests/Integration/Mapping/ExceptionFilteringTest.php b/tests/Integration/Mapping/ExceptionFilteringTest.php
index 2b787a49..06185c4c 100644
--- a/tests/Integration/Mapping/ExceptionFilteringTest.php
+++ b/tests/Integration/Mapping/ExceptionFilteringTest.php
@@ -8,11 +8,11 @@
use CuyZ\Valinor\Mapper\Tree\Message\ErrorMessage;
use CuyZ\Valinor\MapperBuilder;
use CuyZ\Valinor\Tests\Fake\Mapper\Tree\Message\FakeErrorMessage;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use DomainException;
use Throwable;
-final class ExceptionFilteringTest extends IntegrationTest
+final class ExceptionFilteringTest extends IntegrationTestCase
{
public function test_userland_exception_not_filtered_is_not_caught(): void
{
diff --git a/tests/Integration/Mapping/InterfaceInferringMappingTest.php b/tests/Integration/Mapping/InterfaceInferringMappingTest.php
index f2f91a0d..9c06453b 100644
--- a/tests/Integration/Mapping/InterfaceInferringMappingTest.php
+++ b/tests/Integration/Mapping/InterfaceInferringMappingTest.php
@@ -21,13 +21,13 @@
use CuyZ\Valinor\Tests\Fixture\Object\InterfaceWithDifferentNamespaces\InterfaceAInferer;
use CuyZ\Valinor\Tests\Fixture\Object\InterfaceWithDifferentNamespaces\InterfaceB;
use CuyZ\Valinor\Tests\Fixture\Object\InterfaceWithDifferentNamespaces\InterfaceBInferer;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use DateTime;
use DateTimeInterface;
use DomainException;
use stdClass;
-final class InterfaceInferringMappingTest extends IntegrationTest
+final class InterfaceInferringMappingTest extends IntegrationTestCase
{
public function test_override_date_time_interface_inferring_overrides_correctly(): void
{
diff --git a/tests/Integration/Mapping/MappingErrorTest.php b/tests/Integration/Mapping/MappingErrorTest.php
index ae511458..623897be 100644
--- a/tests/Integration/Mapping/MappingErrorTest.php
+++ b/tests/Integration/Mapping/MappingErrorTest.php
@@ -6,9 +6,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class MappingErrorTest extends IntegrationTest
+final class MappingErrorTest extends IntegrationTestCase
{
public function test_single_tree_mapper_error_details_are_reported_in_exception_message(): void
{
diff --git a/tests/Integration/Mapping/Message/MessageFormatterTest.php b/tests/Integration/Mapping/Message/MessageFormatterTest.php
index a93e55e2..f9c9341a 100644
--- a/tests/Integration/Mapping/Message/MessageFormatterTest.php
+++ b/tests/Integration/Mapping/Message/MessageFormatterTest.php
@@ -10,9 +10,9 @@
use CuyZ\Valinor\Mapper\Tree\Message\Formatter\MessageMapFormatter;
use CuyZ\Valinor\Mapper\Tree\Message\Formatter\TranslationMessageFormatter;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class MessageFormatterTest extends IntegrationTest
+final class MessageFormatterTest extends IntegrationTestCase
{
public function test_message_is_formatted_correctly(): void
{
diff --git a/tests/Integration/Mapping/Namespace/NamespacedInterfaceInferringTest.php b/tests/Integration/Mapping/Namespace/NamespacedInterfaceInferringTest.php
index d8331942..03e8b15a 100644
--- a/tests/Integration/Mapping/Namespace/NamespacedInterfaceInferringTest.php
+++ b/tests/Integration/Mapping/Namespace/NamespacedInterfaceInferringTest.php
@@ -4,10 +4,10 @@
namespace CuyZ\Valinor\Tests\Integration\Mapping\Namespace;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use SimpleNamespace\ImplementationOne;
-final class NamespacedInterfaceInferringTest extends IntegrationTest
+final class NamespacedInterfaceInferringTest extends IntegrationTestCase
{
// @see https://github.com/CuyZ/Valinor/issues/394#issuecomment-1746722996
public function test_interface_inferred_from_same_namespace_as_file_runs_correctly(): void
diff --git a/tests/Integration/Mapping/Namespace/RegisteredStaticConstructorWithReturnTypeInDocBlockTest.php b/tests/Integration/Mapping/Namespace/RegisteredStaticConstructorWithReturnTypeInDocBlockTest.php
index b7aba095..ee221dfd 100644
--- a/tests/Integration/Mapping/Namespace/RegisteredStaticConstructorWithReturnTypeInDocBlockTest.php
+++ b/tests/Integration/Mapping/Namespace/RegisteredStaticConstructorWithReturnTypeInDocBlockTest.php
@@ -5,9 +5,9 @@
namespace CuyZ\Valinor\Tests\Integration\Mapping\Namespace;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class RegisteredStaticConstructorWithReturnTypeInDocBlockTest extends IntegrationTest
+final class RegisteredStaticConstructorWithReturnTypeInDocBlockTest extends IntegrationTestCase
{
// @see https://github.com/CuyZ/Valinor/issues/461
public function test_registered_static_constructor_with_return_type_in_doc_block_works_properly(): void
diff --git a/tests/Integration/Mapping/Object/ArrayValuesMappingTest.php b/tests/Integration/Mapping/Object/ArrayValuesMappingTest.php
index cbd1cf94..6220030d 100644
--- a/tests/Integration/Mapping/Object/ArrayValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/ArrayValuesMappingTest.php
@@ -6,11 +6,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject as SimpleObjectAlias;
-final class ArrayValuesMappingTest extends IntegrationTest
+final class ArrayValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/ConstantValuesMappingTest.php b/tests/Integration/Mapping/Object/ConstantValuesMappingTest.php
index e868fbae..50db27b1 100644
--- a/tests/Integration/Mapping/Object/ConstantValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/ConstantValuesMappingTest.php
@@ -8,9 +8,9 @@
use CuyZ\Valinor\MapperBuilder;
use CuyZ\Valinor\Tests\Fixture\Enum\BackedIntegerEnum;
use CuyZ\Valinor\Tests\Fixture\Object\ObjectWithConstants;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class ConstantValuesMappingTest extends IntegrationTest
+final class ConstantValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/DateTimeMappingTest.php b/tests/Integration/Mapping/Object/DateTimeMappingTest.php
index cb3bac5a..609d7682 100644
--- a/tests/Integration/Mapping/Object/DateTimeMappingTest.php
+++ b/tests/Integration/Mapping/Object/DateTimeMappingTest.php
@@ -6,10 +6,10 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use DateTimeInterface;
-final class DateTimeMappingTest extends IntegrationTest
+final class DateTimeMappingTest extends IntegrationTestCase
{
public function test_default_datetime_constructor_cannot_be_used(): void
{
diff --git a/tests/Integration/Mapping/Object/DateTimeZoneMappingTest.php b/tests/Integration/Mapping/Object/DateTimeZoneMappingTest.php
index 725219b3..8ab2a455 100644
--- a/tests/Integration/Mapping/Object/DateTimeZoneMappingTest.php
+++ b/tests/Integration/Mapping/Object/DateTimeZoneMappingTest.php
@@ -6,10 +6,10 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use DateTimeZone;
-final class DateTimeZoneMappingTest extends IntegrationTest
+final class DateTimeZoneMappingTest extends IntegrationTestCase
{
public function test_can_map_to_timezone_with_default_constructor(): void
{
diff --git a/tests/Integration/Mapping/Object/EnumValuesMappingTest.php b/tests/Integration/Mapping/Object/EnumValuesMappingTest.php
index be6eb644..b16d52e1 100644
--- a/tests/Integration/Mapping/Object/EnumValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/EnumValuesMappingTest.php
@@ -10,9 +10,9 @@
use CuyZ\Valinor\Tests\Fixture\Enum\BackedStringEnum;
use CuyZ\Valinor\Tests\Fixture\Enum\PureEnum;
use CuyZ\Valinor\Tests\Fixture\Object\StringableObject;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class EnumValuesMappingTest extends IntegrationTest
+final class EnumValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/ExtendedDateIntervalMappingTest.php b/tests/Integration/Mapping/Object/ExtendedDateIntervalMappingTest.php
index 63625778..2d2b4044 100644
--- a/tests/Integration/Mapping/Object/ExtendedDateIntervalMappingTest.php
+++ b/tests/Integration/Mapping/Object/ExtendedDateIntervalMappingTest.php
@@ -6,10 +6,10 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\DateInterval;
-final class ExtendedDateIntervalMappingTest extends IntegrationTest
+final class ExtendedDateIntervalMappingTest extends IntegrationTestCase
{
public function test_extended_date_interval_is_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/GenericInheritanceTest.php b/tests/Integration/Mapping/Object/GenericInheritanceTest.php
index 481949ee..10a92ca1 100644
--- a/tests/Integration/Mapping/Object/GenericInheritanceTest.php
+++ b/tests/Integration/Mapping/Object/GenericInheritanceTest.php
@@ -6,9 +6,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class GenericInheritanceTest extends IntegrationTest
+final class GenericInheritanceTest extends IntegrationTestCase
{
public function test_generic_types_are_inherited_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/GenericValuesMappingTest.php b/tests/Integration/Mapping/Object/GenericValuesMappingTest.php
index 1d5d102b..0e7110b0 100644
--- a/tests/Integration/Mapping/Object/GenericValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/GenericValuesMappingTest.php
@@ -6,11 +6,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject as SimpleObjectAlias;
-final class GenericValuesMappingTest extends IntegrationTest
+final class GenericValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/IterableValuesMappingTest.php b/tests/Integration/Mapping/Object/IterableValuesMappingTest.php
index 01873594..82467f6a 100644
--- a/tests/Integration/Mapping/Object/IterableValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/IterableValuesMappingTest.php
@@ -6,11 +6,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject as SimpleObjectAlias;
-final class IterableValuesMappingTest extends IntegrationTest
+final class IterableValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/ListValuesMappingTest.php b/tests/Integration/Mapping/Object/ListValuesMappingTest.php
index b0d23f05..5b6d2322 100644
--- a/tests/Integration/Mapping/Object/ListValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/ListValuesMappingTest.php
@@ -6,11 +6,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject as SimpleObjectAlias;
-final class ListValuesMappingTest extends IntegrationTest
+final class ListValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/LocalTypeAliasMappingTest.php b/tests/Integration/Mapping/Object/LocalTypeAliasMappingTest.php
index af3b6bc8..128e8a8e 100644
--- a/tests/Integration/Mapping/Object/LocalTypeAliasMappingTest.php
+++ b/tests/Integration/Mapping/Object/LocalTypeAliasMappingTest.php
@@ -6,9 +6,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class LocalTypeAliasMappingTest extends IntegrationTest
+final class LocalTypeAliasMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/NullableMappingTest.php b/tests/Integration/Mapping/Object/NullableMappingTest.php
index 49507ab4..fbc2f94f 100644
--- a/tests/Integration/Mapping/Object/NullableMappingTest.php
+++ b/tests/Integration/Mapping/Object/NullableMappingTest.php
@@ -6,9 +6,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class NullableMappingTest extends IntegrationTest
+final class NullableMappingTest extends IntegrationTestCase
{
public function test_nullable_properties_default_value_are_handled_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/ObjectValuesMappingTest.php b/tests/Integration/Mapping/Object/ObjectValuesMappingTest.php
index 8883df81..4ae056ea 100644
--- a/tests/Integration/Mapping/Object/ObjectValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/ObjectValuesMappingTest.php
@@ -6,11 +6,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use stdClass;
-final class ObjectValuesMappingTest extends IntegrationTest
+final class ObjectValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/ScalarValuesMappingTest.php b/tests/Integration/Mapping/Object/ScalarValuesMappingTest.php
index 610963cd..aa793a5d 100644
--- a/tests/Integration/Mapping/Object/ScalarValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/ScalarValuesMappingTest.php
@@ -6,7 +6,7 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use DateTime;
use DateTimeImmutable;
@@ -14,7 +14,7 @@
use stdClass;
use stdClass as ObjectAlias;
-final class ScalarValuesMappingTest extends IntegrationTest
+final class ScalarValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/ShapedArrayValuesMappingTest.php b/tests/Integration/Mapping/Object/ShapedArrayValuesMappingTest.php
index 72756b58..8a0b369a 100644
--- a/tests/Integration/Mapping/Object/ShapedArrayValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/ShapedArrayValuesMappingTest.php
@@ -6,11 +6,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use stdClass;
-final class ShapedArrayValuesMappingTest extends IntegrationTest
+final class ShapedArrayValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Object/SimpleNamespacedObjectMappingTest.php b/tests/Integration/Mapping/Object/SimpleNamespacedObjectMappingTest.php
index dcc526e1..b515b21e 100644
--- a/tests/Integration/Mapping/Object/SimpleNamespacedObjectMappingTest.php
+++ b/tests/Integration/Mapping/Object/SimpleNamespacedObjectMappingTest.php
@@ -6,10 +6,10 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use SimpleNamespace\SimpleNamespacedObject;
-final class SimpleNamespacedObjectMappingTest extends IntegrationTest
+final class SimpleNamespacedObjectMappingTest extends IntegrationTestCase
{
public function test_simple_namespaced_object_can_be_mapped(): void
{
diff --git a/tests/Integration/Mapping/Object/UnionOfObjectsMappingTest.php b/tests/Integration/Mapping/Object/UnionOfObjectsMappingTest.php
index 24815dbf..1fdfafd6 100644
--- a/tests/Integration/Mapping/Object/UnionOfObjectsMappingTest.php
+++ b/tests/Integration/Mapping/Object/UnionOfObjectsMappingTest.php
@@ -6,9 +6,10 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
+use PHPUnit\Framework\Attributes\DataProvider;
-final class UnionOfObjectsMappingTest extends IntegrationTest
+final class UnionOfObjectsMappingTest extends IntegrationTestCase
{
public function test_objects_sharing_one_property_are_resolved_correctly(): void
{
@@ -51,12 +52,11 @@ public function test_mapping_to_union_of_null_and_objects_can_infer_object(): vo
}
/**
- *
- * @dataProvider mapping_error_when_cannot_resolve_union_data_provider
*
* @param class-string $className
* @param mixed[] $source
*/
+ #[DataProvider('mapping_error_when_cannot_resolve_union_data_provider')]
public function test_mapping_error_when_cannot_resolve_union(string $className, array $source): void
{
try {
@@ -70,7 +70,7 @@ public function test_mapping_error_when_cannot_resolve_union(string $className,
}
}
- public function mapping_error_when_cannot_resolve_union_data_provider(): iterable
+ public static function mapping_error_when_cannot_resolve_union_data_provider(): iterable
{
yield [
'className' => UnionOfFooAndBar::class,
diff --git a/tests/Integration/Mapping/Object/UnionValuesMappingTest.php b/tests/Integration/Mapping/Object/UnionValuesMappingTest.php
index e9a7f970..c0d87922 100644
--- a/tests/Integration/Mapping/Object/UnionValuesMappingTest.php
+++ b/tests/Integration/Mapping/Object/UnionValuesMappingTest.php
@@ -7,11 +7,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
use CuyZ\Valinor\Tests\Fixture\Object\ObjectWithConstants;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use DateTimeImmutable;
use DateTimeInterface;
-final class UnionValuesMappingTest extends IntegrationTest
+final class UnionValuesMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Other/ArrayMappingTest.php b/tests/Integration/Mapping/Other/ArrayMappingTest.php
index e4659c1e..e6d68910 100644
--- a/tests/Integration/Mapping/Other/ArrayMappingTest.php
+++ b/tests/Integration/Mapping/Other/ArrayMappingTest.php
@@ -6,10 +6,10 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use stdClass;
-final class ArrayMappingTest extends IntegrationTest
+final class ArrayMappingTest extends IntegrationTestCase
{
public function test_map_to_array_of_scalars_works_properly(): void
{
diff --git a/tests/Integration/Mapping/Other/FlexibleCastingMappingTest.php b/tests/Integration/Mapping/Other/FlexibleCastingMappingTest.php
index b8304256..154bec99 100644
--- a/tests/Integration/Mapping/Other/FlexibleCastingMappingTest.php
+++ b/tests/Integration/Mapping/Other/FlexibleCastingMappingTest.php
@@ -10,10 +10,10 @@
use CuyZ\Valinor\Tests\Fixture\Enum\BackedIntegerEnum;
use CuyZ\Valinor\Tests\Fixture\Enum\BackedStringEnum;
use CuyZ\Valinor\Tests\Fixture\Object\StringableObject;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use stdClass;
-final class FlexibleCastingMappingTest extends IntegrationTest
+final class FlexibleCastingMappingTest extends IntegrationTestCase
{
private TreeMapper $mapper;
diff --git a/tests/Integration/Mapping/Other/PermissiveTypesMappingTest.php b/tests/Integration/Mapping/Other/PermissiveTypesMappingTest.php
index 339cdb15..40c893f0 100644
--- a/tests/Integration/Mapping/Other/PermissiveTypesMappingTest.php
+++ b/tests/Integration/Mapping/Other/PermissiveTypesMappingTest.php
@@ -7,11 +7,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\Mapper\TreeMapper;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use DateTime;
use stdClass;
-final class PermissiveTypesMappingTest extends IntegrationTest
+final class PermissiveTypesMappingTest extends IntegrationTestCase
{
private TreeMapper $mapper;
diff --git a/tests/Integration/Mapping/Other/ShapedArrayMappingTest.php b/tests/Integration/Mapping/Other/ShapedArrayMappingTest.php
index f253ccc9..9ca10d8c 100644
--- a/tests/Integration/Mapping/Other/ShapedArrayMappingTest.php
+++ b/tests/Integration/Mapping/Other/ShapedArrayMappingTest.php
@@ -6,9 +6,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class ShapedArrayMappingTest extends IntegrationTest
+final class ShapedArrayMappingTest extends IntegrationTestCase
{
public function test_values_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/Other/StrictMappingTest.php b/tests/Integration/Mapping/Other/StrictMappingTest.php
index 2c54a268..3da8d3d8 100644
--- a/tests/Integration/Mapping/Other/StrictMappingTest.php
+++ b/tests/Integration/Mapping/Other/StrictMappingTest.php
@@ -10,11 +10,11 @@
use CuyZ\Valinor\Tests\Fixture\Enum\BackedIntegerEnum;
use CuyZ\Valinor\Tests\Fixture\Enum\BackedStringEnum;
use CuyZ\Valinor\Tests\Fixture\Enum\PureEnum;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Utility\PermissiveTypeFound;
use stdClass;
-final class StrictMappingTest extends IntegrationTest
+final class StrictMappingTest extends IntegrationTestCase
{
public function test_missing_value_throws_exception(): void
{
diff --git a/tests/Integration/Mapping/Other/SuperfluousKeysMappingTest.php b/tests/Integration/Mapping/Other/SuperfluousKeysMappingTest.php
index e3824de9..26762ccf 100644
--- a/tests/Integration/Mapping/Other/SuperfluousKeysMappingTest.php
+++ b/tests/Integration/Mapping/Other/SuperfluousKeysMappingTest.php
@@ -7,9 +7,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\Mapper\TreeMapper;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class SuperfluousKeysMappingTest extends IntegrationTest
+final class SuperfluousKeysMappingTest extends IntegrationTestCase
{
private TreeMapper $mapper;
diff --git a/tests/Integration/Mapping/ReadonlyMappingTest.php b/tests/Integration/Mapping/ReadonlyMappingTest.php
index 14124976..4ae79893 100644
--- a/tests/Integration/Mapping/ReadonlyMappingTest.php
+++ b/tests/Integration/Mapping/ReadonlyMappingTest.php
@@ -6,9 +6,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class ReadonlyMappingTest extends IntegrationTest
+final class ReadonlyMappingTest extends IntegrationTestCase
{
public function test_single_property_and_constructor_parameter_are_mapped_properly(): void
{
diff --git a/tests/Integration/Mapping/SingleNodeMappingTest.php b/tests/Integration/Mapping/SingleNodeMappingTest.php
index 1084b03a..697f0013 100644
--- a/tests/Integration/Mapping/SingleNodeMappingTest.php
+++ b/tests/Integration/Mapping/SingleNodeMappingTest.php
@@ -6,16 +6,16 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
+use PHPUnit\Framework\Attributes\DataProvider;
-final class SingleNodeMappingTest extends IntegrationTest
+final class SingleNodeMappingTest extends IntegrationTestCase
{
/**
- * @dataProvider single_property_and_constructor_parameter_data_provider
- *
* @param class-string $className
*/
+ #[DataProvider('single_property_and_constructor_parameter_data_provider')]
public function test_single_property_and_constructor_parameter_are_mapped_properly(string $className, mixed $value): void
{
try {
@@ -28,10 +28,9 @@ public function test_single_property_and_constructor_parameter_are_mapped_proper
}
/**
- * @dataProvider single_property_and_constructor_parameter_with_default_value_data_provider
- *
* @param class-string $className
*/
+ #[DataProvider('single_property_and_constructor_parameter_with_default_value_data_provider')]
public function test_single_property_and_constructor_parameter_with_default_value_are_mapped_properly(string $className): void
{
try {
@@ -44,10 +43,9 @@ public function test_single_property_and_constructor_parameter_with_default_valu
}
/**
- * @dataProvider single_property_and_constructor_parameter_data_provider
- *
* @param class-string $className
*/
+ #[DataProvider('single_property_and_constructor_parameter_data_provider')]
public function test_single_property_and_constructor_parameter_can_be_mapped_with_array_with_property_name(string $className, mixed $value): void
{
try {
@@ -81,7 +79,7 @@ public function test_single_argument_invalid_value_with_key_not_present_in_sourc
}
}
- public function single_property_and_constructor_parameter_data_provider(): iterable
+ public static function single_property_and_constructor_parameter_data_provider(): iterable
{
yield 'Single scalar property' => [
SingleScalarProperty::class, 'foo',
@@ -115,7 +113,7 @@ public function single_property_and_constructor_parameter_data_provider(): itera
];
}
- public function single_property_and_constructor_parameter_with_default_value_data_provider(): iterable
+ public static function single_property_and_constructor_parameter_with_default_value_data_provider(): iterable
{
yield ['array{foo: ' . SingleScalarPropertyWithDefaultValue::class . '}'];
yield ['array{foo: ' . SingleConstructorParameterWithDefaultValue::class . '}'];
diff --git a/tests/Integration/Mapping/Source/JsonSourceMappingTest.php b/tests/Integration/Mapping/Source/JsonSourceMappingTest.php
index 3986da7c..86a1e20d 100644
--- a/tests/Integration/Mapping/Source/JsonSourceMappingTest.php
+++ b/tests/Integration/Mapping/Source/JsonSourceMappingTest.php
@@ -7,9 +7,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\Mapper\Source\JsonSource;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class JsonSourceMappingTest extends IntegrationTest
+final class JsonSourceMappingTest extends IntegrationTestCase
{
public function test_json_source_is_mapped_correctly(): void
{
diff --git a/tests/Integration/Mapping/Source/Modifier/CamelCaseKeysMappingTest.php b/tests/Integration/Mapping/Source/Modifier/CamelCaseKeysMappingTest.php
index 85afd572..cd745e9e 100644
--- a/tests/Integration/Mapping/Source/Modifier/CamelCaseKeysMappingTest.php
+++ b/tests/Integration/Mapping/Source/Modifier/CamelCaseKeysMappingTest.php
@@ -7,16 +7,16 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\Mapper\Source\Modifier\CamelCaseKeys;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\ObjectWithSubProperties;
+use PHPUnit\Framework\Attributes\DataProvider;
-final class CamelCaseKeysMappingTest extends IntegrationTest
+final class CamelCaseKeysMappingTest extends IntegrationTestCase
{
/**
- * @dataProvider sources_are_mapped_properly_data_provider
- *
* @param iterable $source
*/
+ #[DataProvider('sources_are_mapped_properly_data_provider')]
public function test_sources_are_mapped_properly(iterable $source): void
{
try {
@@ -31,7 +31,7 @@ public function test_sources_are_mapped_properly(iterable $source): void
self::assertSame('bar2', $object->someOtherValue->someOtherNestedValue);
}
- public function sources_are_mapped_properly_data_provider(): iterable
+ public static function sources_are_mapped_properly_data_provider(): iterable
{
yield 'underscore' => [
new CamelCaseKeys([
diff --git a/tests/Integration/Mapping/Source/Modifier/PathMappingTest.php b/tests/Integration/Mapping/Source/Modifier/PathMappingTest.php
index 77051c30..e6c2b3aa 100644
--- a/tests/Integration/Mapping/Source/Modifier/PathMappingTest.php
+++ b/tests/Integration/Mapping/Source/Modifier/PathMappingTest.php
@@ -7,10 +7,10 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\Mapper\Source\Modifier\PathMapping;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\Country;
-final class PathMappingTest extends IntegrationTest
+final class PathMappingTest extends IntegrationTestCase
{
public function test_path_with_sub_paths_are_mapped(): void
{
diff --git a/tests/Integration/Mapping/Source/SourceTest.php b/tests/Integration/Mapping/Source/SourceTest.php
index 01cbafe0..80e464ee 100644
--- a/tests/Integration/Mapping/Source/SourceTest.php
+++ b/tests/Integration/Mapping/Source/SourceTest.php
@@ -7,18 +7,18 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\Mapper\Source\Source;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\ObjectWithSubProperties;
use IteratorAggregate;
+use PHPUnit\Framework\Attributes\DataProvider;
use Traversable;
-final class SourceTest extends IntegrationTest
+final class SourceTest extends IntegrationTestCase
{
/**
- * @dataProvider sources_are_mapped_properly_data_provider
- *
* @param iterable $source
*/
+ #[DataProvider('sources_are_mapped_properly_data_provider')]
public function test_sources_are_mapped_properly(iterable $source): void
{
try {
@@ -33,7 +33,7 @@ public function test_sources_are_mapped_properly(iterable $source): void
self::assertSame('bar2', $object->someOtherValue->someOtherNestedValue);
}
- public function sources_are_mapped_properly_data_provider(): iterable
+ public static function sources_are_mapped_properly_data_provider(): iterable
{
yield 'Iterable class' => [
Source::iterable(new class () implements IteratorAggregate {
diff --git a/tests/Integration/Mapping/Source/YamlSourceMappingTest.php b/tests/Integration/Mapping/Source/YamlSourceMappingTest.php
index af741e5f..c54b1f09 100644
--- a/tests/Integration/Mapping/Source/YamlSourceMappingTest.php
+++ b/tests/Integration/Mapping/Source/YamlSourceMappingTest.php
@@ -7,12 +7,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\Mapper\Source\YamlSource;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
-/**
- * @requires extension yaml
- */
-final class YamlSourceMappingTest extends IntegrationTest
+#[RequiresPhpExtension('yaml')]
+final class YamlSourceMappingTest extends IntegrationTestCase
{
public function test_yaml_source_is_mapped_correctly(): void
{
diff --git a/tests/Integration/Mapping/UnionMappingTest.php b/tests/Integration/Mapping/UnionMappingTest.php
index b850dea9..c9472d61 100644
--- a/tests/Integration/Mapping/UnionMappingTest.php
+++ b/tests/Integration/Mapping/UnionMappingTest.php
@@ -6,11 +6,11 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\City;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
-final class UnionMappingTest extends IntegrationTest
+final class UnionMappingTest extends IntegrationTestCase
{
public function test_union_with_int_or_object(): void
{
diff --git a/tests/Integration/Mapping/ValueAlteringMappingTest.php b/tests/Integration/Mapping/ValueAlteringMappingTest.php
index 9ce3cce8..aa194976 100644
--- a/tests/Integration/Mapping/ValueAlteringMappingTest.php
+++ b/tests/Integration/Mapping/ValueAlteringMappingTest.php
@@ -6,13 +6,13 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use CuyZ\Valinor\Tests\Integration\Mapping\Fixture\SimpleObject;
use function strtolower;
use function strtoupper;
-final class ValueAlteringMappingTest extends IntegrationTest
+final class ValueAlteringMappingTest extends IntegrationTestCase
{
public function test_alter_string_alters_value(): void
{
diff --git a/tests/Integration/Mapping/VariadicParameterMappingTest.php b/tests/Integration/Mapping/VariadicParameterMappingTest.php
index 05e3b57c..33647170 100644
--- a/tests/Integration/Mapping/VariadicParameterMappingTest.php
+++ b/tests/Integration/Mapping/VariadicParameterMappingTest.php
@@ -6,9 +6,9 @@
use CuyZ\Valinor\Mapper\MappingError;
use CuyZ\Valinor\MapperBuilder;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
-final class VariadicParameterMappingTest extends IntegrationTest
+final class VariadicParameterMappingTest extends IntegrationTestCase
{
public function test_only_variadic_parameters_are_mapped_properly(): void
{
diff --git a/tests/Integration/Normalizer/NormalizerTest.php b/tests/Integration/Normalizer/NormalizerTest.php
index d59bcc4c..081b8be8 100644
--- a/tests/Integration/Normalizer/NormalizerTest.php
+++ b/tests/Integration/Normalizer/NormalizerTest.php
@@ -21,6 +21,7 @@
use DateTimeInterface;
use DateTimeZone;
use IteratorAggregate;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use RuntimeException;
use stdClass;
@@ -31,11 +32,10 @@
final class NormalizerTest extends TestCase
{
/**
- * @dataProvider normalize_basic_values_yields_expected_output_data_provider
- *
* @param array> $transformers
* @param list $transformerAttributes
*/
+ #[DataProvider('normalize_basic_values_yields_expected_output_data_provider')]
public function test_normalize_basic_values_yields_expected_output(
mixed $input,
mixed $expectedArray,
@@ -62,7 +62,7 @@ public function test_normalize_basic_values_yields_expected_output(
self::assertSame($expectedJson, $jsonResult);
}
- public function normalize_basic_values_yields_expected_output_data_provider(): iterable
+ public static function normalize_basic_values_yields_expected_output_data_provider(): iterable
{
yield 'null' => [
'input' => null,
diff --git a/tests/Integration/Normalizer/StreamNormalizerTest.php b/tests/Integration/Normalizer/StreamNormalizerTest.php
index 97629dbf..db94dbf6 100644
--- a/tests/Integration/Normalizer/StreamNormalizerTest.php
+++ b/tests/Integration/Normalizer/StreamNormalizerTest.php
@@ -6,12 +6,12 @@
use CuyZ\Valinor\MapperBuilder;
use CuyZ\Valinor\Normalizer\Format;
-use CuyZ\Valinor\Tests\Integration\IntegrationTest;
+use CuyZ\Valinor\Tests\Integration\IntegrationTestCase;
use function fopen;
use function rewind;
-final class StreamNormalizerTest extends IntegrationTest
+final class StreamNormalizerTest extends IntegrationTestCase
{
public function test_json_normalizer_can_normalize_into_stream(): void
{
diff --git a/tests/Traits/TestIsSingleton.php b/tests/Traits/TestIsSingleton.php
index 8b770533..b80cec9b 100644
--- a/tests/Traits/TestIsSingleton.php
+++ b/tests/Traits/TestIsSingleton.php
@@ -14,8 +14,7 @@
*/
trait TestIsSingleton
{
- /** @test */
- public function singleton_instance_can_be_fetched(): void
+ public function test_singleton_instance_can_be_fetched(): void
{
$class = substr(str_replace('Tests\\Unit\\', '', $this::class), 0, -4);
diff --git a/tests/Unit/Cache/Compiled/MixedValueCacheCompilerTest.php b/tests/Unit/Cache/Compiled/MixedValueCacheCompilerTest.php
index 609f4084..8aaf669f 100644
--- a/tests/Unit/Cache/Compiled/MixedValueCacheCompilerTest.php
+++ b/tests/Unit/Cache/Compiled/MixedValueCacheCompilerTest.php
@@ -5,6 +5,7 @@
namespace CuyZ\Valinor\Tests\Unit\Cache\Compiled;
use CuyZ\Valinor\Cache\Compiled\MixedValueCacheCompiler;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -19,9 +20,7 @@ protected function setUp(): void
$this->compiler = new MixedValueCacheCompiler();
}
- /**
- * @dataProvider values_are_compiled_correctly_data_provider
- */
+ #[DataProvider('values_are_compiled_correctly_data_provider')]
public function test_values_are_compiled_correctly(mixed $value): void
{
$compiledValue = eval('return ' . $this->compiler->compile($value) . ';');
@@ -29,7 +28,7 @@ public function test_values_are_compiled_correctly(mixed $value): void
self::assertEquals($value, $compiledValue);
}
- public function values_are_compiled_correctly_data_provider(): iterable
+ public static function values_are_compiled_correctly_data_provider(): iterable
{
yield 'Float' => [1337.42];
yield 'Int' => [404];
diff --git a/tests/Unit/Mapper/Source/FileSourceTest.php b/tests/Unit/Mapper/Source/FileSourceTest.php
index 8c9a3e59..44de40e4 100644
--- a/tests/Unit/Mapper/Source/FileSourceTest.php
+++ b/tests/Unit/Mapper/Source/FileSourceTest.php
@@ -9,6 +9,7 @@
use CuyZ\Valinor\Mapper\Source\FileSource;
use org\bovigo\vfs\vfsStream;
use org\bovigo\vfs\vfsStreamDirectory;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use SplFileObject;
@@ -26,9 +27,7 @@ protected function setUp(): void
$this->files = vfsStream::setup();
}
- /**
- * @dataProvider file_is_handled_properly_data_provider
- */
+ #[DataProvider('file_is_handled_properly_data_provider')]
public function test_file_is_handled_properly(string $filename, string $content): void
{
$file = (vfsStream::newFile($filename))->withContent($content)->at($this->files);
@@ -39,7 +38,7 @@ public function test_file_is_handled_properly(string $filename, string $content)
self::assertSame($file->url(), $source->sourceName());
}
- public function file_is_handled_properly_data_provider(): iterable
+ public static function file_is_handled_properly_data_provider(): iterable
{
yield ['test-json.json', '{"foo": "bar"}'];
yield ['test-json.JSON', '{"foo": "bar"}'];
diff --git a/tests/Unit/Mapper/Source/Modifier/MappingTest.php b/tests/Unit/Mapper/Source/Modifier/MappingTest.php
index f059a8df..62fe0d72 100644
--- a/tests/Unit/Mapper/Source/Modifier/MappingTest.php
+++ b/tests/Unit/Mapper/Source/Modifier/MappingTest.php
@@ -5,15 +5,15 @@
namespace CuyZ\Valinor\Tests\Unit\Mapper\Source\Modifier;
use CuyZ\Valinor\Mapper\Source\Modifier\Mapping;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
final class MappingTest extends TestCase
{
/**
- * @dataProvider mappingsDataProvider
- *
* @param array $keys
*/
+ #[DataProvider('mappings_data_provider')]
public function test_matches_string_key_at_sub_level(
array $keys,
string $to,
@@ -31,7 +31,7 @@ public function test_matches_string_key_at_sub_level(
/**
* @return array
*/
- public function mappingsDataProvider(): array
+ public static function mappings_data_provider(): array
{
return [
[
diff --git a/tests/Unit/Mapper/Source/YamlSourceTest.php b/tests/Unit/Mapper/Source/YamlSourceTest.php
index 0b15268e..5b8cdc70 100644
--- a/tests/Unit/Mapper/Source/YamlSourceTest.php
+++ b/tests/Unit/Mapper/Source/YamlSourceTest.php
@@ -7,13 +7,12 @@
use CuyZ\Valinor\Mapper\Source\Exception\InvalidYaml;
use CuyZ\Valinor\Mapper\Source\Exception\SourceNotIterable;
use CuyZ\Valinor\Mapper\Source\YamlSource;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use PHPUnit\Framework\TestCase;
use function iterator_to_array;
-/**
- * @requires extension yaml
- */
+#[RequiresPhpExtension('yaml')]
final class YamlSourceTest extends TestCase
{
public function test_valid_yaml_is_parsed_correctly(): void
diff --git a/tests/Unit/Mapper/Tree/Message/NodeMessageTest.php b/tests/Unit/Mapper/Tree/Message/NodeMessageTest.php
index 984f867a..0ce1daef 100644
--- a/tests/Unit/Mapper/Tree/Message/NodeMessageTest.php
+++ b/tests/Unit/Mapper/Tree/Message/NodeMessageTest.php
@@ -10,6 +10,7 @@
use CuyZ\Valinor\Tests\Fake\Mapper\Tree\Message\FakeErrorMessage;
use CuyZ\Valinor\Tests\Fake\Mapper\Tree\Message\FakeMessage;
use CuyZ\Valinor\Tests\Fake\Mapper\Tree\Message\FakeNodeMessage;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use PHPUnit\Framework\TestCase;
final class NodeMessageTest extends TestCase
@@ -102,9 +103,7 @@ public function test_custom_locale_returns_clone(): void
self::assertNotSame($messageA, $messageB);
}
- /**
- * @requires extension intl
- */
+ #[RequiresPhpExtension('intl')]
public function test_custom_locale_is_used(): void
{
$originalMessage = (new FakeMessage('un message: {value, spellout}'))->withParameters(['value' => '42']);
diff --git a/tests/Unit/Type/Parser/Lexer/NativeLexerTest.php b/tests/Unit/Type/Parser/Lexer/NativeLexerTest.php
index 3d723017..fd3fb5c7 100644
--- a/tests/Unit/Type/Parser/Lexer/NativeLexerTest.php
+++ b/tests/Unit/Type/Parser/Lexer/NativeLexerTest.php
@@ -29,6 +29,7 @@
use CuyZ\Valinor\Type\Parser\Lexer\Token\Token;
use CuyZ\Valinor\Type\Parser\Lexer\Token\UnionToken;
use CuyZ\Valinor\Type\Parser\Lexer\Token\UnknownSymbolToken;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -44,10 +45,9 @@ protected function setUp(): void
}
/**
- * @dataProvider tokenized_type_is_correct_data_provider
- *
* @param class-string $tokenClassName
*/
+ #[DataProvider('tokenized_type_is_correct_data_provider')]
public function test_tokenized_type_is_correct(string $symbol, string $tokenClassName): void
{
$token = $this->lexer->tokenize($symbol);
@@ -56,7 +56,7 @@ public function test_tokenized_type_is_correct(string $symbol, string $tokenClas
self::assertSame($symbol, $token->symbol());
}
- public function tokenized_type_is_correct_data_provider(): iterable
+ public static function tokenized_type_is_correct_data_provider(): iterable
{
yield 'null' => [
'symbol' => 'null',
diff --git a/tests/Unit/Type/Types/Factory/ValueTypeFactoryTest.php b/tests/Unit/Type/Types/Factory/ValueTypeFactoryTest.php
index 7e0d18bf..7769ada5 100644
--- a/tests/Unit/Type/Types/Factory/ValueTypeFactoryTest.php
+++ b/tests/Unit/Type/Types/Factory/ValueTypeFactoryTest.php
@@ -8,13 +8,12 @@
use CuyZ\Valinor\Type\Types\Factory\CannotBuildTypeFromValue;
use CuyZ\Valinor\Type\Types\Factory\ValueTypeFactory;
use DateTime;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
final class ValueTypeFactoryTest extends TestCase
{
- /**
- * @dataProvider type_from_value_returns_expected_type_data_provider
- */
+ #[DataProvider('type_from_value_returns_expected_type_data_provider')]
public function test_type_from_value_returns_expected_type(mixed $value, string $expectedType): void
{
$type = ValueTypeFactory::from($value);
@@ -22,7 +21,7 @@ public function test_type_from_value_returns_expected_type(mixed $value, string
self::assertSame($expectedType, $type->toString());
}
- public function type_from_value_returns_expected_type_data_provider(): iterable
+ public static function type_from_value_returns_expected_type_data_provider(): iterable
{
yield 'true' => [
'value' => true,
diff --git a/tests/Unit/Type/Types/IntegerRangeTypeTest.php b/tests/Unit/Type/Types/IntegerRangeTypeTest.php
index 9096fdb3..9ba9a508 100644
--- a/tests/Unit/Type/Types/IntegerRangeTypeTest.php
+++ b/tests/Unit/Type/Types/IntegerRangeTypeTest.php
@@ -14,6 +14,7 @@
use CuyZ\Valinor\Type\Types\NegativeIntegerType;
use CuyZ\Valinor\Type\Types\PositiveIntegerType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -85,15 +86,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->type->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, int $expected): void
{
self::assertSame($expected, $this->type->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'Integer from float' => [
diff --git a/tests/Unit/Type/Types/IntegerValueTypeTest.php b/tests/Unit/Type/Types/IntegerValueTypeTest.php
index f170c912..cdd81d9a 100644
--- a/tests/Unit/Type/Types/IntegerValueTypeTest.php
+++ b/tests/Unit/Type/Types/IntegerValueTypeTest.php
@@ -12,6 +12,7 @@
use CuyZ\Valinor\Type\Types\NegativeIntegerType;
use CuyZ\Valinor\Type\Types\PositiveIntegerType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -65,15 +66,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->type->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, int $expected): void
{
self::assertSame($expected, $this->type->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'Integer from float' => [
diff --git a/tests/Unit/Type/Types/NativeBooleanTypeTest.php b/tests/Unit/Type/Types/NativeBooleanTypeTest.php
index 7cac1684..d73d1ee8 100644
--- a/tests/Unit/Type/Types/NativeBooleanTypeTest.php
+++ b/tests/Unit/Type/Types/NativeBooleanTypeTest.php
@@ -10,6 +10,7 @@
use CuyZ\Valinor\Type\Types\MixedType;
use CuyZ\Valinor\Type\Types\NativeBooleanType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -57,9 +58,7 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->booleanType->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, bool $expected): void
{
$result = $this->booleanType->cast($value);
@@ -67,7 +66,7 @@ public function test_cast_value_returns_correct_result(mixed $value, bool $expec
self::assertSame($expected, $result);
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'True from integer-string' => [
diff --git a/tests/Unit/Type/Types/NativeFloatTypeTest.php b/tests/Unit/Type/Types/NativeFloatTypeTest.php
index 6668f9d8..8a59298a 100644
--- a/tests/Unit/Type/Types/NativeFloatTypeTest.php
+++ b/tests/Unit/Type/Types/NativeFloatTypeTest.php
@@ -10,6 +10,7 @@
use CuyZ\Valinor\Type\Types\MixedType;
use CuyZ\Valinor\Type\Types\NativeFloatType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -57,15 +58,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->floatType->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, float $expected): void
{
self::assertSame($expected, $this->floatType->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'Float from integer' => [
diff --git a/tests/Unit/Type/Types/NativeIntegerTypeTest.php b/tests/Unit/Type/Types/NativeIntegerTypeTest.php
index 868c909e..f3d12759 100644
--- a/tests/Unit/Type/Types/NativeIntegerTypeTest.php
+++ b/tests/Unit/Type/Types/NativeIntegerTypeTest.php
@@ -10,6 +10,7 @@
use CuyZ\Valinor\Type\Types\MixedType;
use CuyZ\Valinor\Type\Types\NativeIntegerType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -64,15 +65,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->integerType->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, int $expected): void
{
self::assertSame($expected, $this->integerType->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'Negative integer from float' => [
diff --git a/tests/Unit/Type/Types/NativeStringTypeTest.php b/tests/Unit/Type/Types/NativeStringTypeTest.php
index ff0a2afe..bb876904 100644
--- a/tests/Unit/Type/Types/NativeStringTypeTest.php
+++ b/tests/Unit/Type/Types/NativeStringTypeTest.php
@@ -11,6 +11,7 @@
use CuyZ\Valinor\Type\Types\MixedType;
use CuyZ\Valinor\Type\Types\NativeStringType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -58,15 +59,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->stringType->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, string $expected): void
{
self::assertSame($expected, $this->stringType->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'String from float' => [
diff --git a/tests/Unit/Type/Types/NegativeIntegerTypeTest.php b/tests/Unit/Type/Types/NegativeIntegerTypeTest.php
index a797dff6..ef42727e 100644
--- a/tests/Unit/Type/Types/NegativeIntegerTypeTest.php
+++ b/tests/Unit/Type/Types/NegativeIntegerTypeTest.php
@@ -12,6 +12,7 @@
use CuyZ\Valinor\Type\Types\NegativeIntegerType;
use CuyZ\Valinor\Type\Types\PositiveIntegerType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -63,15 +64,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->negativeIntegerType->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, int $expected): void
{
self::assertSame($expected, $this->negativeIntegerType->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'Integer from float' => [
diff --git a/tests/Unit/Type/Types/NonEmptyStringTypeTest.php b/tests/Unit/Type/Types/NonEmptyStringTypeTest.php
index 5f2fc2a9..56962983 100644
--- a/tests/Unit/Type/Types/NonEmptyStringTypeTest.php
+++ b/tests/Unit/Type/Types/NonEmptyStringTypeTest.php
@@ -12,6 +12,7 @@
use CuyZ\Valinor\Type\Types\NativeStringType;
use CuyZ\Valinor\Type\Types\NonEmptyStringType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -61,15 +62,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->nonEmptyStringType->canCast(new StringableObject('')));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, string $expected): void
{
self::assertSame($expected, $this->nonEmptyStringType->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'String from float' => [
diff --git a/tests/Unit/Type/Types/NonNegativeIntegerTypeTest.php b/tests/Unit/Type/Types/NonNegativeIntegerTypeTest.php
index b5258222..eca0edb9 100644
--- a/tests/Unit/Type/Types/NonNegativeIntegerTypeTest.php
+++ b/tests/Unit/Type/Types/NonNegativeIntegerTypeTest.php
@@ -12,6 +12,7 @@
use CuyZ\Valinor\Type\Types\NonNegativeIntegerType;
use CuyZ\Valinor\Type\Types\PositiveIntegerType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -65,15 +66,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->nonNegativeIntegerType->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, int $expected): void
{
self::assertSame($expected, $this->nonNegativeIntegerType->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'Integer from float' => [
diff --git a/tests/Unit/Type/Types/NonPositiveIntegerTypeTest.php b/tests/Unit/Type/Types/NonPositiveIntegerTypeTest.php
index 494cc518..7c0b499d 100644
--- a/tests/Unit/Type/Types/NonPositiveIntegerTypeTest.php
+++ b/tests/Unit/Type/Types/NonPositiveIntegerTypeTest.php
@@ -12,6 +12,7 @@
use CuyZ\Valinor\Type\Types\NonPositiveIntegerType;
use CuyZ\Valinor\Type\Types\PositiveIntegerType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -65,15 +66,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->nonPositiveIntegerType->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, int $expected): void
{
self::assertSame($expected, $this->nonPositiveIntegerType->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'Integer from float' => [
diff --git a/tests/Unit/Type/Types/NumericStringTypeTest.php b/tests/Unit/Type/Types/NumericStringTypeTest.php
index d15e567f..3d6fb273 100644
--- a/tests/Unit/Type/Types/NumericStringTypeTest.php
+++ b/tests/Unit/Type/Types/NumericStringTypeTest.php
@@ -13,6 +13,7 @@
use CuyZ\Valinor\Type\Types\NonEmptyStringType;
use CuyZ\Valinor\Type\Types\NumericStringType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -62,15 +63,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->numericStringType->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, string $expected): void
{
self::assertSame($expected, $this->numericStringType->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'String from float' => [
diff --git a/tests/Unit/Type/Types/PositiveIntegerTypeTest.php b/tests/Unit/Type/Types/PositiveIntegerTypeTest.php
index 64e74a73..72c5368c 100644
--- a/tests/Unit/Type/Types/PositiveIntegerTypeTest.php
+++ b/tests/Unit/Type/Types/PositiveIntegerTypeTest.php
@@ -12,6 +12,7 @@
use CuyZ\Valinor\Type\Types\NegativeIntegerType;
use CuyZ\Valinor\Type\Types\PositiveIntegerType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -63,15 +64,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->positiveIntegerType->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(mixed $value, int $expected): void
{
self::assertSame($expected, $this->positiveIntegerType->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'Integer from float' => [
diff --git a/tests/Unit/Type/Types/StringValueTypeTest.php b/tests/Unit/Type/Types/StringValueTypeTest.php
index ef748daf..76bd1007 100644
--- a/tests/Unit/Type/Types/StringValueTypeTest.php
+++ b/tests/Unit/Type/Types/StringValueTypeTest.php
@@ -10,6 +10,7 @@
use CuyZ\Valinor\Type\Types\MixedType;
use CuyZ\Valinor\Type\Types\StringValueType;
use CuyZ\Valinor\Type\Types\UnionType;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
@@ -67,15 +68,13 @@ public function test_cannot_cast_other_types(): void
self::assertFalse($this->type->canCast(new stdClass()));
}
- /**
- * @dataProvider cast_value_returns_correct_result_data_provider
- */
+ #[DataProvider('cast_value_returns_correct_result_data_provider')]
public function test_cast_value_returns_correct_result(StringValueType $type, mixed $value, string $expected): void
{
self::assertSame($expected, $type->cast($value));
}
- public function cast_value_returns_correct_result_data_provider(): array
+ public static function cast_value_returns_correct_result_data_provider(): array
{
return [
'String from float' => [
diff --git a/tests/Unit/Utility/Reflection/DocParserTest.php b/tests/Unit/Utility/Reflection/DocParserTest.php
index 9d5e29a9..7862e634 100644
--- a/tests/Unit/Utility/Reflection/DocParserTest.php
+++ b/tests/Unit/Utility/Reflection/DocParserTest.php
@@ -7,6 +7,7 @@
use CuyZ\Valinor\Tests\Fixture\Object\ObjectWithConstants;
use CuyZ\Valinor\Type\Parser\Exception\Template\DuplicatedTemplateName;
use CuyZ\Valinor\Utility\Reflection\DocParser;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use ReflectionClass;
use ReflectionFunction;
@@ -18,8 +19,8 @@ final class DocParserTest extends TestCase
{
/**
* @param non-empty-string $expectedType
- * @dataProvider callables_with_docblock_typed_return_type
*/
+ #[DataProvider('callables_with_docblock_typed_return_type')]
public function test_docblock_return_type_is_fetched_correctly(
callable $dockblockTypedCallable,
string $expectedType
@@ -32,7 +33,7 @@ public function test_docblock_return_type_is_fetched_correctly(
/**
* @return iterable
*/
- public function callables_with_docblock_typed_return_type(): iterable
+ public static function callables_with_docblock_typed_return_type(): iterable
{
yield 'phpdoc' => [
/** @return int */
@@ -144,8 +145,8 @@ public function test_docblock_return_type_with_no_docblock_returns_null(): void
/**
* @param non-empty-string $expectedType
- * @dataProvider objects_with_docblock_typed_properties
*/
+ #[DataProvider('objects_with_docblock_typed_properties')]
public function test_docblock_var_type_is_fetched_correctly(
ReflectionParameter|ReflectionProperty $reflection,
string $expectedType
@@ -160,7 +161,7 @@ public function test_docblock_var_type_is_fetched_correctly(
/**
* @return iterable
*/
- public function objects_with_docblock_typed_properties(): iterable
+ public static function objects_with_docblock_typed_properties(): iterable
{
yield 'phpdoc @var' => [
new ReflectionProperty(new class () {
diff --git a/tests/Unit/Utility/Reflection/PhpParserTest.php b/tests/Unit/Utility/Reflection/PhpParserTest.php
index b76e66be..b73deeb7 100644
--- a/tests/Unit/Utility/Reflection/PhpParserTest.php
+++ b/tests/Unit/Utility/Reflection/PhpParserTest.php
@@ -11,6 +11,7 @@
use CuyZ\Valinor\Tests\Unit\Utility\Reflection\Fixtures\SubDir\Foo;
use CuyZ\Valinor\Utility\Reflection\PhpParser;
use Generator;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use ReflectionClass;
use ReflectionFunction;
@@ -24,12 +25,12 @@
final class PhpParserTest extends TestCase
{
/**
- * @dataProvider useStatementsDataProvider
* @template T of object
*
* @param ReflectionClass|ReflectionFunction|ReflectionMethod $reflection
* @param array $expectedMap
*/
+ #[DataProvider('use_statements_data_provider')]
public function test_parse_use_statements(\ReflectionClass|\ReflectionFunction|\ReflectionMethod $reflection, array $expectedMap): void
{
$actualMap = PhpParser::parseUseStatements($reflection);
@@ -37,7 +38,7 @@ public function test_parse_use_statements(\ReflectionClass|\ReflectionFunction|\
self::assertSame($expectedMap, $actualMap);
}
- public function useStatementsDataProvider(): Generator
+ public static function use_statements_data_provider(): Generator
{
yield 'no use statements' => [
new ReflectionClass(\stdClass::class),
diff --git a/tests/Unit/Utility/Reflection/ReflectionTest.php b/tests/Unit/Utility/Reflection/ReflectionTest.php
index e3fed8c0..4755902f 100644
--- a/tests/Unit/Utility/Reflection/ReflectionTest.php
+++ b/tests/Unit/Utility/Reflection/ReflectionTest.php
@@ -10,6 +10,7 @@
use CuyZ\Valinor\Tests\Fixture\Object\ObjectWithPropertyWithNativePhp82StandaloneTypes;
use CuyZ\Valinor\Utility\Reflection\Reflection;
use Iterator;
+use PHPUnit\Framework\Attributes\RequiresPhp;
use PHPUnit\Framework\TestCase;
use ReflectionClass;
use ReflectionFunction;
@@ -135,9 +136,7 @@ public function test_intersection_type_is_handled(): void
self::assertSame('Countable&Iterator', Reflection::flattenType($type));
}
- /**
- * @requires PHP >= 8.2
- */
+ #[RequiresPhp('8.2')]
public function test_disjunctive_normal_form_type_is_handled(): void
{
$class = ObjectWithPropertyWithNativeDisjunctiveNormalFormType::class;
@@ -148,9 +147,7 @@ public function test_disjunctive_normal_form_type_is_handled(): void
self::assertSame('Countable&Iterator|Countable&DateTime', Reflection::flattenType($type));
}
- /**
- * @requires PHP >= 8.2
- */
+ #[RequiresPhp('8.2')]
public function test_native_null_type_is_handled(): void
{
$class = ObjectWithPropertyWithNativePhp82StandaloneTypes::class;
@@ -161,9 +158,7 @@ public function test_native_null_type_is_handled(): void
self::assertSame('null', Reflection::flattenType($type));
}
- /**
- * @requires PHP >= 8.2
- */
+ #[RequiresPhp('8.2')]
public function test_native_true_type_is_handled(): void
{
$class = ObjectWithPropertyWithNativePhp82StandaloneTypes::class;
@@ -174,9 +169,7 @@ public function test_native_true_type_is_handled(): void
self::assertSame('true', Reflection::flattenType($type));
}
- /**
- * @requires PHP >= 8.2
- */
+ #[RequiresPhp('8.2')]
public function test_native_false_type_is_handled(): void
{
$class = ObjectWithPropertyWithNativePhp82StandaloneTypes::class;
diff --git a/tests/Unit/Utility/String/StringCutterTest.php b/tests/Unit/Utility/String/StringCutterTest.php
index 992c4328..26586c2e 100644
--- a/tests/Unit/Utility/String/StringCutterTest.php
+++ b/tests/Unit/Utility/String/StringCutterTest.php
@@ -5,13 +5,12 @@
namespace CuyZ\Valinor\Tests\Unit\Utility\String;
use CuyZ\Valinor\Utility\String\StringCutter;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
final class StringCutterTest extends TestCase
{
- /**
- * @dataProvider mb_strcut_polyfill_data_provider
- */
+ #[DataProvider('mb_strcut_polyfill_data_provider')]
public function test_mb_strcut_polyfill(string $base, int $length, string $expected): void
{
$cut = StringCutter::cutPolyfill($base, $length);
@@ -19,7 +18,7 @@ public function test_mb_strcut_polyfill(string $base, int $length, string $expec
self::assertSame($expected, $cut);
}
- public function mb_strcut_polyfill_data_provider(): iterable
+ public static function mb_strcut_polyfill_data_provider(): iterable
{
yield '1 byte' => [
'base' => 'foobar',
diff --git a/tests/Unit/Utility/String/StringFormatterTest.php b/tests/Unit/Utility/String/StringFormatterTest.php
index 29c3ed2a..a5feecd3 100644
--- a/tests/Unit/Utility/String/StringFormatterTest.php
+++ b/tests/Unit/Utility/String/StringFormatterTest.php
@@ -7,13 +7,12 @@
use CuyZ\Valinor\Tests\Fake\Mapper\Tree\Message\FakeMessage;
use CuyZ\Valinor\Utility\String\StringFormatter;
use CuyZ\Valinor\Utility\String\StringFormatterError;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use PHPUnit\Framework\TestCase;
final class StringFormatterTest extends TestCase
{
- /**
- * @requires extension intl
- */
+ #[RequiresPhpExtension('intl')]
public function test_wrong_intl_format_throws_exception(): void
{
$this->expectException(StringFormatterError::class);
@@ -23,9 +22,7 @@ public function test_wrong_intl_format_throws_exception(): void
StringFormatter::format('en', 'some {wrong.format}', []);
}
- /**
- * @requires extension intl
- */
+ #[RequiresPhpExtension('intl')]
public function test_wrong_intl_format_throws_exception_with_intl_exception(): void
{
$oldIni = ini_get('intl.use_exceptions');
diff --git a/tests/Unit/Utility/ValueDumperTest.php b/tests/Unit/Utility/ValueDumperTest.php
index 78851c11..c2e61d3e 100644
--- a/tests/Unit/Utility/ValueDumperTest.php
+++ b/tests/Unit/Utility/ValueDumperTest.php
@@ -9,20 +9,19 @@
use CuyZ\Valinor\Tests\Fixture\Enum\PureEnum;
use CuyZ\Valinor\Utility\ValueDumper;
use DateTimeImmutable;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use stdClass;
final class ValueDumperTest extends TestCase
{
- /**
- * @dataProvider dump_value_returns_correct_signature_data_provider
- */
+ #[DataProvider('dump_value_returns_correct_signature_data_provider')]
public function test_dump_value_returns_correct_signature(mixed $value, string $expected): void
{
self::assertSame($expected, ValueDumper::dump($value));
}
- public function dump_value_returns_correct_signature_data_provider(): array
+ public static function dump_value_returns_correct_signature_data_provider(): array
{
return [
'null' => [null, 'null'],