diff --git a/.travis.yml b/.travis.yml index e3afb510..81827dfb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,21 +4,21 @@ matrix: include: # linux tests - php: '7.1' - env: YAML=^3.0 + env: YAML=^3.4 - php: '7.1' env: YAML=~4.3.0 - php: '7.2' - env: YAML=^3.0 + env: YAML=^3.4 - php: '7.2' env: YAML=~4.3.0 - php: '7.3' - env: YAML=^3.0 + env: YAML=^3.4 - php: '7.3' env: YAML=~4.3.0 - php: '7.3' env: YAML=^5.0 - php: '7.4' - env: YAML=^3.0 + env: YAML=^3.4 - php: '7.4' env: YAML=~4.3.0 - php: '7.4' diff --git a/composer.json b/composer.json index 1e05bd54..457bc832 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "require": { "php": ">=7.1.0", "ext-json": "*", - "symfony/yaml": "^3.0 | ^4.0 | ^5.0", + "symfony/yaml": "^3.4 | ^4.0 | ^5.0", "justinrainbow/json-schema": "^5.0" }, "require-dev": { diff --git a/tests/ReaderTest.php b/tests/ReaderTest.php index 6aa1faed..d6d9e87f 100644 --- a/tests/ReaderTest.php +++ b/tests/ReaderTest.php @@ -96,8 +96,12 @@ public function testSymfonyYamlBugHunt() { // skip test on symfony/yaml 5.0 due to bug https://github.com/symfony/symfony/issues/34805 $installed = json_decode(file_get_contents(__DIR__ . '/../vendor/composer/installed.json'), true); + // Check for composer 2.0 structure + if (array_key_exists('packages', $installed)) { + $installed = $installed['packages']; + } foreach($installed as $pkg) { - if ($pkg['name'] === 'symfony/yaml' && strncmp($pkg['version_normalized'], '5.0', 3) === 0) { + if ($pkg['name'] === 'symfony/yaml' && version_compare($pkg['version'], 'v4.4', '>=')) { $this->markTestSkipped( 'This test is incompatible with symfony/yaml 4.4 and 5.0, see symfony bug https://github.com/symfony/symfony/issues/34805' ); diff --git a/tests/spec/OpenApiTest.php b/tests/spec/OpenApiTest.php index dc9dd449..2187e2e4 100644 --- a/tests/spec/OpenApiTest.php +++ b/tests/spec/OpenApiTest.php @@ -186,8 +186,12 @@ public function testSpecs($openApiFile) // skip test on symfony/yaml 5.0 due to bug https://github.com/symfony/symfony/issues/34805 if ($openApiFile === 'oai/openapi-specification/examples/v3.0/uspto.yaml') { $installed = json_decode(file_get_contents(__DIR__ . '/../../vendor/composer/installed.json'), true); + // Check for composer 2.0 structure + if (array_key_exists('packages', $installed)) { + $installed = $installed['packages']; + } foreach ($installed as $pkg) { - if ($pkg['name'] === 'symfony/yaml' && strncmp($pkg['version_normalized'], '5.0', 3) === 0) { + if ($pkg['name'] === 'symfony/yaml' && version_compare($pkg['version'], 'v4.4', '>=')) { $this->markTestSkipped( 'This test is incompatible with symfony/yaml 4.4 and 5.0, see symfony bug https://github.com/symfony/symfony/issues/34805' );