From: =?utf-8?q?David_Pr=C3=A9vot?= <taffit@debian.org>
Date: Sun, 2 Mar 2025 18:44:23 +0100
Subject: Modernize PHPUnit syntax

---
 tests/Dotenv/DotenvTest.php                |  4 +-
 tests/Dotenv/Loader/LoaderTest.php         |  4 +-
 tests/Dotenv/Parser/LexerTest.php          |  4 +-
 tests/Dotenv/Repository/RepositoryTest.php |  4 +-
 tests/Dotenv/Store/StoreTest.php           |  4 +-
 tests/Dotenv/ValidatorTest.php             | 86 +++++++++---------------------
 6 files changed, 36 insertions(+), 70 deletions(-)

diff --git a/tests/Dotenv/DotenvTest.php b/tests/Dotenv/DotenvTest.php
index 97ddfd7..c392960 100644
--- a/tests/Dotenv/DotenvTest.php
+++ b/tests/Dotenv/DotenvTest.php
@@ -11,6 +11,7 @@ use Dotenv\Loader\Loader;
 use Dotenv\Parser\Parser;
 use Dotenv\Repository\RepositoryBuilder;
 use Dotenv\Store\StoreBuilder;
+use PHPUnit\Framework\Attributes\BeforeClass;
 use PHPUnit\Framework\TestCase;
 
 final class DotenvTest extends TestCase
@@ -21,10 +22,9 @@ final class DotenvTest extends TestCase
     private static $folder;
 
     /**
-     * @beforeClass
-     *
      * @return void
      */
+    #[BeforeClass]
     public static function setFolder()
     {
         self::$folder = \dirname(__DIR__).'/fixtures/env';
diff --git a/tests/Dotenv/Loader/LoaderTest.php b/tests/Dotenv/Loader/LoaderTest.php
index 76ba8e9..aa4cfaa 100644
--- a/tests/Dotenv/Loader/LoaderTest.php
+++ b/tests/Dotenv/Loader/LoaderTest.php
@@ -12,6 +12,7 @@ use Dotenv\Repository\Adapter\ArrayAdapter;
 use Dotenv\Repository\Adapter\EnvConstAdapter;
 use Dotenv\Repository\Adapter\ServerConstAdapter;
 use Dotenv\Repository\RepositoryBuilder;
+use PHPUnit\Framework\Attributes\DataProvider;
 use PHPUnit\Framework\TestCase;
 
 final class LoaderTest extends TestCase
@@ -69,10 +70,9 @@ final class LoaderTest extends TestCase
     }
 
     /**
-     * @dataProvider providesAdapters
-     *
      * @param \Dotenv\Repository\Adapter\AdapterInterface|string $adapter
      */
+    #[DataProvider('providesAdapters')]
     public function testLoaderWithSpecificAdapter($adapter)
     {
         $repository = RepositoryBuilder::createWithNoAdapters()->addReader($adapter)->addWriter($adapter)->make();
diff --git a/tests/Dotenv/Parser/LexerTest.php b/tests/Dotenv/Parser/LexerTest.php
index fabc36e..d73ddff 100644
--- a/tests/Dotenv/Parser/LexerTest.php
+++ b/tests/Dotenv/Parser/LexerTest.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
 namespace Dotenv\Tests\Parser;
 
 use Dotenv\Parser\Lexer;
+use PHPUnit\Framework\Attributes\DataProvider;
 use PHPUnit\Framework\TestCase;
 
 final class LexerTest extends TestCase
@@ -26,13 +27,12 @@ final class LexerTest extends TestCase
     }
 
     /**
-     * @dataProvider provideLexCases
-     *
      * @param string   $input
      * @param string[] $output
      *
      * @return void
      */
+    #[DataProvider('provideLexCases')]
     public function testLex(string $input, array $output)
     {
         self::assertSame($output, \iterator_to_array(Lexer::lex($input)));
diff --git a/tests/Dotenv/Repository/RepositoryTest.php b/tests/Dotenv/Repository/RepositoryTest.php
index 6c8b70e..b982229 100644
--- a/tests/Dotenv/Repository/RepositoryTest.php
+++ b/tests/Dotenv/Repository/RepositoryTest.php
@@ -9,6 +9,7 @@ use Dotenv\Repository\Adapter\ArrayAdapter;
 use Dotenv\Repository\RepositoryBuilder;
 use Dotenv\Repository\RepositoryInterface;
 use InvalidArgumentException;
+use PHPUnit\Framework\Attributes\Before;
 use PHPUnit\Framework\TestCase;
 use TypeError;
 
@@ -20,10 +21,9 @@ final class RepositoryTest extends TestCase
     private $keyVal;
 
     /**
-     * @before
-     *
      * @return void
      */
+    #[Before]
     public function refreshKeyVal()
     {
         $this->keyVal(true);
diff --git a/tests/Dotenv/Store/StoreTest.php b/tests/Dotenv/Store/StoreTest.php
index 6b4d967..f0892f5 100644
--- a/tests/Dotenv/Store/StoreTest.php
+++ b/tests/Dotenv/Store/StoreTest.php
@@ -8,6 +8,7 @@ use Dotenv\Exception\InvalidEncodingException;
 use Dotenv\Store\File\Paths;
 use Dotenv\Store\File\Reader;
 use Dotenv\Store\StoreBuilder;
+use PHPUnit\Framework\Attributes\BeforeClass;
 use PHPUnit\Framework\TestCase;
 
 final class StoreTest extends TestCase
@@ -18,10 +19,9 @@ final class StoreTest extends TestCase
     private static $folder;
 
     /**
-     * @beforeClass
-     *
      * @return void
      */
+    #[BeforeClass]
     public static function setFolder()
     {
         self::$folder = \dirname(\dirname(__DIR__)).'/fixtures/env';
diff --git a/tests/Dotenv/ValidatorTest.php b/tests/Dotenv/ValidatorTest.php
index dd5bcf9..dac0998 100644
--- a/tests/Dotenv/ValidatorTest.php
+++ b/tests/Dotenv/ValidatorTest.php
@@ -8,6 +8,9 @@ use Dotenv\Dotenv;
 use Dotenv\Exception\ValidationException;
 use Dotenv\Repository\Adapter\ArrayAdapter;
 use Dotenv\Repository\RepositoryBuilder;
+use PHPUnit\Framework\Attributes\BeforeClass;
+use PHPUnit\Framework\Attributes\DataProvider;
+use PHPUnit\Framework\Attributes\DoesNotPerformAssertions;
 use PHPUnit\Framework\TestCase;
 
 final class ValidatorTest extends TestCase
@@ -18,10 +21,9 @@ final class ValidatorTest extends TestCase
     private static $folder;
 
     /**
-     * @beforeClass
-     *
      * @return void
      */
+    #[BeforeClass]
     public static function setFolder()
     {
         self::$folder = \dirname(__DIR__).'/fixtures/env';
@@ -39,9 +41,7 @@ final class ValidatorTest extends TestCase
         return [$repository, Dotenv::create($repository, self::$folder, $name)];
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testDotenvRequiredStringEnvironmentVars()
     {
         $dotenv = self::createArrayDotenv()[1];
@@ -49,9 +49,7 @@ final class ValidatorTest extends TestCase
         $dotenv->required('FOO');
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testDotenvAllowedValues()
     {
         $dotenv = self::createArrayDotenv()[1];
@@ -59,9 +57,7 @@ final class ValidatorTest extends TestCase
         $dotenv->required('FOO')->allowedValues(['bar', 'baz']);
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testDotenvAllowedValuesIfPresent()
     {
         $dotenv = self::createArrayDotenv()[1];
@@ -69,9 +65,7 @@ final class ValidatorTest extends TestCase
         $dotenv->ifPresent('FOO')->allowedValues(['bar', 'baz']);
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testDotenvAllowedValuesIfNotPresent()
     {
         $dotenv = self::createArrayDotenv()[1];
@@ -116,9 +110,7 @@ final class ValidatorTest extends TestCase
         $dotenv->required(['FOOX', 'NOPE']);
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testDotenvRequiredArrayEnvironmentVars()
     {
         $dotenv = self::createArrayDotenv()[1];
@@ -181,9 +173,7 @@ final class ValidatorTest extends TestCase
         $dotenv->required('ASSERTVAR2')->notEmpty();
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testDotenvEmptyWhenNotPresent()
     {
         $dotenv = self::createArrayDotenv('assertions.env')[1];
@@ -236,10 +226,8 @@ final class ValidatorTest extends TestCase
         ];
     }
 
-    /**
-     * @dataProvider validBooleanValuesDataProvider
-     * @doesNotPerformAssertions
-     */
+    #[DataProvider('validBooleanValuesDataProvider')]
+    #[DoesNotPerformAssertions]
     public function testCanValidateBooleans(string $boolean)
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'booleans.env');
@@ -247,10 +235,8 @@ final class ValidatorTest extends TestCase
         $dotenv->required($boolean)->isBoolean();
     }
 
-    /**
-     * @dataProvider validBooleanValuesDataProvider
-     * @doesNotPerformAssertions
-     */
+    #[DataProvider('validBooleanValuesDataProvider')]
+    #[DoesNotPerformAssertions]
     public function testCanValidateBooleansIfPresent(string $boolean)
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'booleans.env');
@@ -278,9 +264,7 @@ final class ValidatorTest extends TestCase
         ];
     }
 
-    /**
-     * @dataProvider invalidBooleanValuesDataProvider
-     */
+    #[DataProvider('invalidBooleanValuesDataProvider')]
     public function testCanInvalidateNonBooleans(string $boolean)
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'booleans.env');
@@ -292,9 +276,7 @@ final class ValidatorTest extends TestCase
         $dotenv->required($boolean)->isBoolean();
     }
 
-    /**
-     * @dataProvider invalidBooleanValuesDataProvider
-     */
+    #[DataProvider('invalidBooleanValuesDataProvider')]
     public function testCanInvalidateNonBooleansIfPresent(string $boolean)
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'booleans.env');
@@ -317,9 +299,7 @@ final class ValidatorTest extends TestCase
         $dotenv->required(['VAR_DOES_NOT_EXIST_234782462764'])->isBoolean();
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testIfPresentBooleanNonExist()
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'booleans.env');
@@ -343,10 +323,8 @@ final class ValidatorTest extends TestCase
         ];
     }
 
-    /**
-     * @dataProvider validIntegerValuesDataProvider
-     * @doesNotPerformAssertions
-     */
+    #[DataProvider('validIntegerValuesDataProvider')]
+    #[DoesNotPerformAssertions]
     public function testCanValidateIntegers(string $integer)
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'integers.env');
@@ -354,10 +332,8 @@ final class ValidatorTest extends TestCase
         $dotenv->required($integer)->isInteger();
     }
 
-    /**
-     * @dataProvider validIntegerValuesDataProvider
-     * @doesNotPerformAssertions
-     */
+    #[DataProvider('validIntegerValuesDataProvider')]
+    #[DoesNotPerformAssertions]
     public function testCanValidateIntegersIfPresent(string $integer)
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'integers.env');
@@ -386,9 +362,7 @@ final class ValidatorTest extends TestCase
         ];
     }
 
-    /**
-     * @dataProvider invalidIntegerValuesDataProvider
-     */
+    #[DataProvider('invalidIntegerValuesDataProvider')]
     public function testCanInvalidateNonIntegers(string $integer)
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'integers.env');
@@ -400,9 +374,7 @@ final class ValidatorTest extends TestCase
         $dotenv->required($integer)->isInteger();
     }
 
-    /**
-     * @dataProvider invalidIntegerValuesDataProvider
-     */
+    #[DataProvider('invalidIntegerValuesDataProvider')]
     public function testCanInvalidateNonIntegersIfExist(string $integer)
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'integers.env');
@@ -425,9 +397,7 @@ final class ValidatorTest extends TestCase
         $dotenv->required(['VAR_DOES_NOT_EXIST_234782462764'])->isInteger();
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testIfPresentIntegerNonExist()
     {
         $dotenv = Dotenv::createImmutable(self::$folder, 'integers.env');
@@ -435,9 +405,7 @@ final class ValidatorTest extends TestCase
         $dotenv->ifPresent(['VAR_DOES_NOT_EXIST_234782462764'])->isInteger();
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testDotenvRegexMatchPass()
     {
         $dotenv = Dotenv::createImmutable(self::$folder);
@@ -467,9 +435,7 @@ final class ValidatorTest extends TestCase
         $dotenv->required('FOO')->allowedRegexValues('/([[:lower:]{1{');
     }
 
-    /**
-     * @doesNotPerformAssertions
-     */
+    #[DoesNotPerformAssertions]
     public function testDotenvRegexMatchNotPresent()
     {
         $dotenv = Dotenv::createImmutable(self::$folder);
