--- ../src/InMemory/InMemoryFilesystemAdapterTest.php	2026-07-15 14:11:39.627900016 +0300
+++ ../src/InMemory/InMemoryFilesystemAdapterTest.php	2026-07-15 14:14:26.918075738 +0300
@@ -16,6 +16,9 @@
 use League\MimeTypeDetection\EmptyExtensionToMimeTypeMap;
 use League\MimeTypeDetection\ExtensionMimeTypeDetector;
 
+use PHPUnit\Framework\Attributes\Before;
+use PHPUnit\Framework\Attributes\Test;
+
 /**
  * @group in-memory
  */
@@ -23,9 +26,7 @@
 {
     const PATH = 'path.txt';
 
-    /**
-     * @before
-     */
+    #[Before]
     public function resetFunctionMocks(): void
     {
         reset_function_mocks();
@@ -34,36 +35,28 @@
         $filesystemAdapter->deleteEverything();
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function getting_mimetype_on_a_non_existing_file(): void
     {
         $this->expectException(UnableToRetrieveMetadata::class);
         $this->adapter()->mimeType('path.txt');
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function getting_last_modified_on_a_non_existing_file(): void
     {
         $this->expectException(UnableToRetrieveMetadata::class);
         $this->adapter()->lastModified('path.txt');
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function getting_file_size_on_a_non_existing_file(): void
     {
         $this->expectException(UnableToRetrieveMetadata::class);
         $this->adapter()->fileSize('path.txt');
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function deleting_a_file(): void
     {
         $this->adapter()->write('path.txt', 'contents', new Config());
@@ -72,9 +65,7 @@
         $this->assertFalse($this->adapter()->fileExists('path.txt'));
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function deleting_a_directory(): void
     {
         $adapter = $this->adapter();
@@ -89,18 +80,14 @@
         $this->assertFalse($adapter->fileExists('a/b/c/path.txt'));
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function creating_a_directory_does_nothing(): void
     {
         $this->adapter()->createDirectory('something', new Config());
         $this->assertTrue(true);
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function writing_with_a_stream_and_reading_a_file(): void
     {
         $handle = stream_with_contents('contents');
@@ -109,9 +96,7 @@
         $this->assertEquals('contents', $contents);
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function reading_a_stream(): void
     {
         $this->adapter()->write(self::PATH, 'contents', new Config());
@@ -120,27 +105,21 @@
         fclose($contents);
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function reading_a_non_existing_file(): void
     {
         $this->expectException(UnableToReadFile::class);
         $this->adapter()->read('path.txt');
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function stream_reading_a_non_existing_file(): void
     {
         $this->expectException(UnableToReadFile::class);
         $this->adapter()->readStream('path.txt');
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function listing_all_files(): void
     {
         $adapter = $this->adapter();
@@ -165,9 +144,7 @@
         }
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function listing_non_recursive(): void
     {
         $adapter = $this->adapter();
@@ -178,9 +155,7 @@
         $this->assertCount(2, $listing);
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function moving_a_file_successfully(): void
     {
         $adapter = $this->adapter();
@@ -190,18 +165,14 @@
         $this->assertTrue($adapter->fileExists('new-path.txt'));
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function trying_to_move_a_non_existing_file(): void
     {
         $this->expectException(UnableToMoveFile::class);
         $this->adapter()->move('path.txt', 'new-path.txt', new Config());
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function copying_a_file_successfully(): void
     {
         $adapter = $this->adapter();
@@ -211,18 +182,14 @@
         $this->assertTrue($adapter->fileExists('new-path.txt'));
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function trying_to_copy_a_non_existing_file(): void
     {
         $this->expectException(UnableToCopyFile::class);
         $this->adapter()->copy('path.txt', 'new-path.txt', new Config());
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function not_listing_directory_placeholders(): void
     {
         $adapter = $this->adapter();
@@ -232,9 +199,7 @@
         $this->assertCount(1, $contents);
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function checking_for_metadata(): void
     {
         mock_function('time', 1234);
@@ -251,18 +216,14 @@
         $this->assertStringStartsWith('image/svg+xml', $adapter->mimeType(self::PATH)->mimeType());
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function fetching_unknown_mime_type_of_a_file(): void
     {
         $this->useAdapter(new InMemoryFilesystemAdapter(Visibility::PUBLIC, new ExtensionMimeTypeDetector(new EmptyExtensionToMimeTypeMap())));
         parent::fetching_unknown_mime_type_of_a_file();
     }
 
-    /**
-     * @test
-     */
+    #[Test]
     public function using_custom_timestamp(): void
     {
         $adapter = $this->adapter();
