From 69ebbdce8596d53e87765399351cad13cdef86e9 Mon Sep 17 00:00:00 2001 From: Ruud Kamphuis Date: Fri, 25 Aug 2023 12:42:27 +0200 Subject: [PATCH 1/2] Drop support for PHP 8.0 --- .github/workflows/ci.yml | 1 - composer.json | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 41bc26f..d64ed68 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,6 @@ jobs: fail-fast: false matrix: php-version: - - "8.0" - "8.1" - "8.2" dependencies: diff --git a/composer.json b/composer.json index d22181b..f37f969 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "overblog/promise-adapter": "self.version" }, "require": { - "php": "^8.0" + "php": "^8.1" }, "require-dev": { "guzzlehttp/promises": "^1.5.0 || ^2.0.0", From fd51821057b5598d71ffa4ba63867315e4e13faa Mon Sep 17 00:00:00 2001 From: Ruud Kamphuis Date: Fri, 25 Aug 2023 13:05:44 +0200 Subject: [PATCH 2/2] Use PHPUnit 10 --- .gitignore | 1 + composer.json | 3 +- lib/promise-adapter/tests/AdapterTest.php | 28 +++++++++---------- phpunit.xml.dist | 25 +++++++++-------- tests/Functional/Webonyx/GraphQL/TestCase.php | 5 ++-- 5 files changed, 32 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index d1966d1..b74c281 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ composer.phar phpunit.xml .php_cs.cache .phpunit.result.cache +.phpunit.cache diff --git a/composer.json b/composer.json index f37f969..e6f3c30 100644 --- a/composer.json +++ b/composer.json @@ -27,8 +27,7 @@ }, "require-dev": { "guzzlehttp/promises": "^1.5.0 || ^2.0.0", - "phpunit/php-code-coverage": "^9.2.27", - "phpunit/phpunit": "^9.6.11", + "phpunit/phpunit": "^10.3", "react/promise": "^2.8.0", "webonyx/graphql-php": "^14.0" }, diff --git a/lib/promise-adapter/tests/AdapterTest.php b/lib/promise-adapter/tests/AdapterTest.php index fa56f9b..7c341ea 100644 --- a/lib/promise-adapter/tests/AdapterTest.php +++ b/lib/promise-adapter/tests/AdapterTest.php @@ -15,15 +15,16 @@ use Overblog\PromiseAdapter\Adapter\ReactPromiseAdapter; use Overblog\PromiseAdapter\Adapter\WebonyxGraphQLSyncPromiseAdapter; use Overblog\PromiseAdapter\PromiseAdapterInterface; +use PHPUnit\Framework\Attributes\DataProvider; class AdapterTest extends \PHPUnit\Framework\TestCase { /** - * @dataProvider AdapterDataProvider * @param string $promiseClass * @param PromiseAdapterInterface $Adapter * @param string $context */ + #[DataProvider('AdapterDataProvider')] public function testCreate(PromiseAdapterInterface $Adapter, $context, $promiseClass) { $promise = $Adapter->create($resolve, $reject); @@ -34,10 +35,10 @@ public function testCreate(PromiseAdapterInterface $Adapter, $context, $promiseC } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter * @param $message */ + #[DataProvider('AdapterDataProvider')] public function testResolveCreatedPromise(PromiseAdapterInterface $Adapter, $message) { $promise = $Adapter->create($resolve, $reject); @@ -49,10 +50,10 @@ public function testResolveCreatedPromise(PromiseAdapterInterface $Adapter, $mes } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter * @param string $context */ + #[DataProvider('AdapterDataProvider')] public function testRejectCreatedPromise(PromiseAdapterInterface $Adapter, $context) { $promise = $Adapter->create($resolve, $reject); @@ -65,11 +66,11 @@ public function testRejectCreatedPromise(PromiseAdapterInterface $Adapter, $cont } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter * @param string $context * @param string $promiseClass */ + #[DataProvider('AdapterDataProvider')] public function testCreateAll(PromiseAdapterInterface $Adapter, $context, $promiseClass) { $values = ['A', 'B', 'C']; @@ -82,11 +83,11 @@ public function testCreateAll(PromiseAdapterInterface $Adapter, $context, $promi } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter * @param string $context * @param string $promiseClass */ + #[DataProvider('AdapterDataProvider')] public function testCreateFulfilled(PromiseAdapterInterface $Adapter, $context, $promiseClass) { $value = 'resolved!'; @@ -98,11 +99,11 @@ public function testCreateFulfilled(PromiseAdapterInterface $Adapter, $context, } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter * @param string $context * @param string $promiseClass */ + #[DataProvider('AdapterDataProvider')] public function testCreatedRejected(PromiseAdapterInterface $Adapter, $context, $promiseClass) { $expectRejectionReason = new \Exception('Error!'); @@ -114,10 +115,10 @@ public function testCreatedRejected(PromiseAdapterInterface $Adapter, $context, } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter * @param string $context */ + #[DataProvider('AdapterDataProvider')] public function testIsPromise(PromiseAdapterInterface $Adapter, $context) { $promise = $Adapter->create(); @@ -128,10 +129,10 @@ public function testIsPromise(PromiseAdapterInterface $Adapter, $context) } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter * @param string $context */ + #[DataProvider('AdapterDataProvider')] public function testAwaitWithoutPromise(PromiseAdapterInterface $Adapter, $context) { $expected = 'expected value'; @@ -148,10 +149,9 @@ public function testAwaitWithoutPromise(PromiseAdapterInterface $Adapter, $conte } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter - * */ + #[DataProvider('AdapterDataProvider')] public function testAwaitWithUnwrap(PromiseAdapterInterface $Adapter) { $this->expectException(\Exception::class); @@ -164,9 +164,9 @@ public function testAwaitWithUnwrap(PromiseAdapterInterface $Adapter) } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter */ + #[DataProvider('AdapterDataProvider')] public function testAwaitWithInvalidPromise(PromiseAdapterInterface $Adapter) { $this->expectException(\InvalidArgumentException::class); @@ -176,9 +176,9 @@ public function testAwaitWithInvalidPromise(PromiseAdapterInterface $Adapter) } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter */ + #[DataProvider('AdapterDataProvider')] public function testCancel(PromiseAdapterInterface $Adapter) { $this->expectException(\Exception::class); @@ -193,9 +193,9 @@ public function testCancel(PromiseAdapterInterface $Adapter) } /** - * @dataProvider AdapterDataProvider * @param PromiseAdapterInterface $Adapter */ + #[DataProvider('AdapterDataProvider')] public function testCancelInvalidPromise(PromiseAdapterInterface $Adapter) { $this->expectException(\Exception::class); @@ -208,7 +208,7 @@ public function testCancelInvalidPromise(PromiseAdapterInterface $Adapter) $Adapter->cancel(new \stdClass()); } - public function AdapterDataProvider() + public static function AdapterDataProvider() { return [ [new GuzzleHttpPromiseAdapter(), 'guzzle', 'GuzzleHttp\\Promise\\PromiseInterface'], diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 338b144..bfe83d5 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,17 +1,7 @@ - - - - ./src - ./lib/promise-adapter/src - - - ./vendor - ./tests - ./lib/promise-adapter/tests - - + + @@ -21,4 +11,15 @@ ./lib/promise-adapter/tests + + + ./src + ./lib/promise-adapter/src + + + ./vendor + ./tests + ./lib/promise-adapter/tests + + diff --git a/tests/Functional/Webonyx/GraphQL/TestCase.php b/tests/Functional/Webonyx/GraphQL/TestCase.php index dfd034f..2ad5840 100644 --- a/tests/Functional/Webonyx/GraphQL/TestCase.php +++ b/tests/Functional/Webonyx/GraphQL/TestCase.php @@ -18,12 +18,13 @@ use GraphQL\GraphQL; use Overblog\DataLoader\DataLoader; use Overblog\PromiseAdapter\PromiseAdapterInterface; +use PHPUnit\Framework\Attributes\DataProvider; abstract class TestCase extends \PHPUnit\Framework\TestCase { private static $fixtures = null; - public function getFixtures() + public static function getFixtures() { if (null === self::$fixtures) { $fixturesFiles = self::listFiles(__DIR__.'/fixtures'); @@ -64,11 +65,11 @@ private static function listFiles($dir, &$results = []) } /** - * @dataProvider getFixtures * @param array $expectedMetrics * @param string $query * @param array $expectedResponse */ + #[DataProvider('getFixtures')] public function testExecute(array $expectedMetrics, $query, array $expectedResponse) { $metrics = [