Switch to static data provides for integration tests

This commit is contained in:
Alexander M. Turek
2024-09-03 22:48:59 +02:00
parent 6f9f7e2d29
commit 9282dbcc42
+12 -9
View File
@@ -11,6 +11,8 @@
namespace Twig\Test; namespace Twig\Test;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\IgnoreDeprecations;
use PHPUnit\Framework\Constraint\Exception; use PHPUnit\Framework\Constraint\Exception;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Twig\Environment; use Twig\Environment;
@@ -75,6 +77,7 @@ abstract class IntegrationTestCase extends TestCase
/** /**
* @dataProvider getTests * @dataProvider getTests
*/ */
#[DataProvider('getTests')]
public function testIntegration($file, $message, $condition, $templates, $exception, $outputs, $deprecation = '') public function testIntegration($file, $message, $condition, $templates, $exception, $outputs, $deprecation = '')
{ {
$this->doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs, $deprecation); $this->doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs, $deprecation);
@@ -85,15 +88,13 @@ abstract class IntegrationTestCase extends TestCase
* *
* @group legacy * @group legacy
*/ */
#[DataProvider('getLegacyTests'), IgnoreDeprecations]
public function testLegacyIntegration($file, $message, $condition, $templates, $exception, $outputs, $deprecation = '') public function testLegacyIntegration($file, $message, $condition, $templates, $exception, $outputs, $deprecation = '')
{ {
$this->doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs, $deprecation); $this->doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs, $deprecation);
} }
/** private static function assembleTests(bool $legacyTests): array
* @final since Twig 3.13
*/
public function getTests($name, $legacyTests = false)
{ {
$fixturesDir = static::getFixturesDirectory(); $fixturesDir = static::getFixturesDirectory();
$fixturesDir = realpath($fixturesDir); $fixturesDir = realpath($fixturesDir);
@@ -139,12 +140,14 @@ abstract class IntegrationTestCase extends TestCase
return $tests; return $tests;
} }
/** final public static function getTests(): array
* @final since Twig 3.13
*/
public function getLegacyTests()
{ {
return $this->getTests('testLegacyIntegration', true); return self::assembleTests(false);
}
final public static function getLegacyTests(): array
{
return self::assembleTests(true);
} }
protected function doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs, $deprecation = '') protected function doIntegrationTest($file, $message, $condition, $templates, $exception, $outputs, $deprecation = '')