diff --git a/.editorconfig b/.editorconfig
index 09a9fd89..0e63afa8 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -2,13 +2,11 @@
root = true
-[*]
+[*.php]
+indent_size = 4
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
-
-[*.php]
-indent_size = 4
diff --git a/.gitignore b/.gitignore
index 344e3a73..0fe4e41f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
build/
vendor/
-.phpunit.result.cache
+/.phpunit.cache
composer.lock
phpunit.xml
diff --git a/composer.json b/composer.json
index 14a6a8a4..466bb9bc 100644
--- a/composer.json
+++ b/composer.json
@@ -1,51 +1,51 @@
{
- "name": "intervention/image",
- "description": "PHP image manipulation",
- "homepage": "https://image.intervention.io/",
- "keywords": [
- "image",
- "gd",
- "imagick",
- "watermark",
- "thumbnail",
- "resize"
- ],
- "license": "MIT",
- "authors": [
- {
- "name": "Oliver Vogel",
- "email": "oliver@intervention.io",
- "homepage": "https://intervention.io/"
+ "name": "intervention/image",
+ "description": "PHP image manipulation",
+ "homepage": "https://image.intervention.io/",
+ "keywords": [
+ "image",
+ "gd",
+ "imagick",
+ "watermark",
+ "thumbnail",
+ "resize"
+ ],
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Oliver Vogel",
+ "email": "oliver@intervention.io",
+ "homepage": "https://intervention.io/"
+ }
+ ],
+ "require": {
+ "php": "^8.1",
+ "ext-mbstring": "*",
+ "intervention/gif": "^4.0.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0",
+ "mockery/mockery": "^1.6",
+ "phpstan/phpstan": "^1",
+ "squizlabs/php_codesniffer": "^3.8",
+ "slevomat/coding-standard": "~8.0"
+ },
+ "suggest": {
+ "ext-exif": "Recommended to be able to read EXIF data properly."
+ },
+ "autoload": {
+ "psr-4": {
+ "Intervention\\Image\\": "src"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Intervention\\Image\\Tests\\": "tests"
+ }
+ },
+ "config": {
+ "allow-plugins": {
+ "dealerdirect/phpcodesniffer-composer-installer": true
+ }
}
- ],
- "require": {
- "php": "^8.1",
- "ext-mbstring": "*",
- "intervention/gif": "^4.0.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^9",
- "mockery/mockery": "^1.6",
- "phpstan/phpstan": "^1",
- "squizlabs/php_codesniffer": "^3.8",
- "slevomat/coding-standard": "~8.0"
- },
- "suggest": {
- "ext-exif": "Recommended to be able to read EXIF data properly."
- },
- "autoload": {
- "psr-4": {
- "Intervention\\Image\\": "src"
- }
- },
- "autoload-dev": {
- "psr-4": {
- "Intervention\\Image\\Tests\\": "tests"
- }
- },
- "config": {
- "allow-plugins": {
- "dealerdirect/phpcodesniffer-composer-installer": true
- }
- }
}
diff --git a/docker-compose.yml b/docker-compose.yml
index fa749c11..f3850e17 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,7 +4,7 @@ services:
tests:
build: ./
working_dir: /project
- command: bash -c "composer install && ./vendor/bin/phpunit -vvv"
+ command: bash -c "composer install && ./vendor/bin/phpunit"
volumes:
- ./:/project
coverage:
diff --git a/phpunit.xml b/phpunit.xml
deleted file mode 100644
index 0fa3ad89..00000000
--- a/phpunit.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- ./tests/
-
-
-
-
-
- src
-
-
-
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 63454441..d13b0ce8 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -1,23 +1,13 @@
-
-
-
- ./tests/
-
-
-
-
-
- src
-
-
+
+
+
+ ./tests/Unit
+
+
+
+
+ src
+
+
diff --git a/tests/TestCase.php b/tests/BaseTestCase.php
similarity index 97%
rename from tests/TestCase.php
rename to tests/BaseTestCase.php
index 5bcdaddd..392da50a 100644
--- a/tests/TestCase.php
+++ b/tests/BaseTestCase.php
@@ -9,7 +9,7 @@ use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Interfaces\ColorInterface;
use Mockery\Adapter\Phpunit\MockeryTestCase;
-abstract class TestCase extends MockeryTestCase
+abstract class BaseTestCase extends MockeryTestCase
{
public function getTestImagePath($filename = 'test.jpg'): string
{
diff --git a/tests/Drivers/Gd/Analyzers/HeightAnalyzerTest.php b/tests/Drivers/Gd/Analyzers/HeightAnalyzerTest.php
deleted file mode 100644
index 3afa9660..00000000
--- a/tests/Drivers/Gd/Analyzers/HeightAnalyzerTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-readTestImage('tile.png');
- $analyzer = new HeightAnalyzer();
- $result = $analyzer->analyze($image);
- $this->assertEquals(16, $result);
- }
-}
diff --git a/tests/Drivers/Gd/Analyzers/WidthAnalyzerTest.php b/tests/Drivers/Gd/Analyzers/WidthAnalyzerTest.php
deleted file mode 100644
index 9ec6e482..00000000
--- a/tests/Drivers/Gd/Analyzers/WidthAnalyzerTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-readTestImage('tile.png');
- $analyzer = new WidthAnalyzer();
- $result = $analyzer->analyze($image);
- $this->assertEquals(16, $result);
- }
-}
diff --git a/tests/Drivers/Imagick/Analyzers/HeightAnalyzerTest.php b/tests/Drivers/Imagick/Analyzers/HeightAnalyzerTest.php
deleted file mode 100644
index 47e520c6..00000000
--- a/tests/Drivers/Imagick/Analyzers/HeightAnalyzerTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-readTestImage('tile.png');
- $analyzer = new HeightAnalyzer();
- $result = $analyzer->analyze($image);
- $this->assertEquals(16, $result);
- }
-}
diff --git a/tests/Drivers/Imagick/Analyzers/WidthAnalyzerTest.php b/tests/Drivers/Imagick/Analyzers/WidthAnalyzerTest.php
deleted file mode 100644
index a8187232..00000000
--- a/tests/Drivers/Imagick/Analyzers/WidthAnalyzerTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-readTestImage('tile.png');
- $analyzer = new WidthAnalyzer();
- $result = $analyzer->analyze($image);
- $this->assertEquals(16, $result);
- }
-}
diff --git a/tests/Analyzers/SpecializableAnalyzerTest.php b/tests/Unit/Analyzers/SpecializableAnalyzerTest.php
similarity index 76%
rename from tests/Analyzers/SpecializableAnalyzerTest.php
rename to tests/Unit/Analyzers/SpecializableAnalyzerTest.php
index 42ad2224..b109c16b 100644
--- a/tests/Analyzers/SpecializableAnalyzerTest.php
+++ b/tests/Unit/Analyzers/SpecializableAnalyzerTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Analyzers;
+namespace Intervention\Image\Tests\Unit\Analyzers;
use Intervention\Image\Analyzers\SpecializableAnalyzer;
use Intervention\Image\Interfaces\ImageInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-class SpecializableAnalyzerTest extends TestCase
+final class SpecializableAnalyzerTest extends BaseTestCase
{
public function testAnalyzer(): void
{
diff --git a/tests/CollectionTest.php b/tests/Unit/CollectionTest.php
similarity index 91%
rename from tests/CollectionTest.php
rename to tests/Unit/CollectionTest.php
index 9bff60b9..08eb581b 100644
--- a/tests/CollectionTest.php
+++ b/tests/Unit/CollectionTest.php
@@ -2,17 +2,17 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests;
+namespace Intervention\Image\Tests\Unit;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Collection;
use Intervention\Image\Exceptions\RuntimeException;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Collection
- */
-class CollectionTest extends TestCase
+#[CoversClass(\Intervention\Image\Collection::class)]
+final class CollectionTest extends BaseTestCase
{
- public function testConstructor()
+ public function testConstructor(): void
{
$collection = new Collection(['foo', 'bar', 'baz']);
$this->assertInstanceOf(Collection::class, $collection);
@@ -21,7 +21,7 @@ class CollectionTest extends TestCase
$this->assertInstanceOf(Collection::class, $collection);
}
- public function testIterator()
+ public function testIterator(): void
{
$collection = new Collection(['foo', 'bar', 'baz']);
foreach ($collection as $key => $item) {
@@ -41,14 +41,14 @@ class CollectionTest extends TestCase
}
}
- public function testCount()
+ public function testCount(): void
{
$collection = new Collection(['foo', 'bar', 'baz']);
$this->assertEquals(3, $collection->count());
$this->assertEquals(3, count($collection));
}
- public function testFilter()
+ public function testFilter(): void
{
$collection = new Collection(['foo', 'bar', 'baz']);
$this->assertEquals(3, $collection->count());
@@ -58,7 +58,7 @@ class CollectionTest extends TestCase
$this->assertEquals(2, $collection->count());
}
- public function testFirstLast()
+ public function testFirstLast(): void
{
$collection = new Collection(['foo', 'bar', 'baz']);
$this->assertEquals('foo', $collection->first());
@@ -69,7 +69,7 @@ class CollectionTest extends TestCase
$this->assertNull($collection->last());
}
- public function testPush()
+ public function testPush(): void
{
$collection = new Collection(['foo', 'bar', 'baz']);
$this->assertEquals(3, $collection->count());
@@ -78,7 +78,7 @@ class CollectionTest extends TestCase
$this->assertInstanceOf(Collection::class, $result);
}
- public function testToArray()
+ public function testToArray(): void
{
$collection = new Collection(['foo', 'bar', 'baz']);
$this->assertEquals(['foo', 'bar', 'baz'], $collection->toArray());
diff --git a/tests/Colors/Cmyk/ChannelTest.php b/tests/Unit/Colors/Cmyk/ChannelTest.php
similarity index 76%
rename from tests/Colors/Cmyk/ChannelTest.php
rename to tests/Unit/Colors/Cmyk/ChannelTest.php
index 038aa7f6..1f58747e 100644
--- a/tests/Colors/Cmyk/ChannelTest.php
+++ b/tests/Unit/Colors/Cmyk/ChannelTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Cmyk;
+namespace Intervention\Image\Tests\Unit\Colors\Cmyk;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Cmyk\Channels\Cyan as Channel;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Cmyk\Channels\Cyan
- * @covers \Intervention\Image\Colors\Cmyk\Channels\Magenta
- * @covers \Intervention\Image\Colors\Cmyk\Channels\Yellow
- * @covers \Intervention\Image\Colors\Cmyk\Channels\Key
- */
-class ChannelTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Cmyk\Channels\Cyan::class)]
+#[CoversClass(\Intervention\Image\Colors\Cmyk\Channels\Magenta::class)]
+#[CoversClass(\Intervention\Image\Colors\Cmyk\Channels\Yellow::class)]
+#[CoversClass(\Intervention\Image\Colors\Cmyk\Channels\Key::class)]
+final class ChannelTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Colors/Cmyk/ColorTest.php b/tests/Unit/Colors/Cmyk/ColorTest.php
similarity index 90%
rename from tests/Colors/Cmyk/ColorTest.php
rename to tests/Unit/Colors/Cmyk/ColorTest.php
index d6c6e67e..01a9003e 100644
--- a/tests/Colors/Cmyk/ColorTest.php
+++ b/tests/Unit/Colors/Cmyk/ColorTest.php
@@ -2,8 +2,10 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Cmyk;
+namespace Intervention\Image\Tests\Unit\Colors\Cmyk;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Cmyk\Channels\Cyan;
use Intervention\Image\Colors\Cmyk\Channels\Key;
use Intervention\Image\Colors\Cmyk\Channels\Magenta;
@@ -11,13 +13,11 @@ use Intervention\Image\Colors\Cmyk\Channels\Yellow;
use Intervention\Image\Colors\Cmyk\Color;
use Intervention\Image\Colors\Cmyk\Colorspace;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Cmyk\Color
- */
-class ColorTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Cmyk\Color::class)]
+final class ColorTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Colors/Cmyk/ColorspaceTest.php b/tests/Unit/Colors/Cmyk/ColorspaceTest.php
similarity index 93%
rename from tests/Colors/Cmyk/ColorspaceTest.php
rename to tests/Unit/Colors/Cmyk/ColorspaceTest.php
index 55717ff3..c70b19c7 100644
--- a/tests/Colors/Cmyk/ColorspaceTest.php
+++ b/tests/Unit/Colors/Cmyk/ColorspaceTest.php
@@ -2,8 +2,9 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Cmyk;
+namespace Intervention\Image\Tests\Unit\Colors\Cmyk;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Colors\Cmyk\Channels\Cyan;
use Intervention\Image\Colors\Cmyk\Channels\Key;
use Intervention\Image\Colors\Cmyk\Channels\Magenta;
@@ -13,12 +14,10 @@ use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Colors\Hsv\Color as HsvColor;
use Intervention\Image\Colors\Hsl\Color as HslColor;
use Intervention\Image\Colors\Cmyk\Colorspace;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Colors\Cmyk\Colorspace
- */
-class ColorspaceTest extends TestCase
+#[CoversClass(\Intervention\Image\Colors\Cmyk\Colorspace::class)]
+final class ColorspaceTest extends BaseTestCase
{
public function testColorFromNormalized(): void
{
diff --git a/tests/Colors/Cmyk/Decoders/StringColorDecoderTest.php b/tests/Unit/Colors/Cmyk/Decoders/StringColorDecoderTest.php
similarity index 76%
rename from tests/Colors/Cmyk/Decoders/StringColorDecoderTest.php
rename to tests/Unit/Colors/Cmyk/Decoders/StringColorDecoderTest.php
index 2dd30ed8..e24996b8 100644
--- a/tests/Colors/Cmyk/Decoders/StringColorDecoderTest.php
+++ b/tests/Unit/Colors/Cmyk/Decoders/StringColorDecoderTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Cmyk\Decoders;
+namespace Intervention\Image\Tests\Unit\Colors\Cmyk\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Cmyk\Color;
use Intervention\Image\Colors\Cmyk\Decoders\StringColorDecoder;
use Intervention\Image\Exceptions\DecoderException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Cmyk\Decoders\StringColorDecoder
- */
-class StringColorDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Cmyk\Decoders\StringColorDecoder::class)]
+final class StringColorDecoderTest extends BaseTestCase
{
public function testDecode(): void
{
diff --git a/tests/Colors/Hsl/ChannelTest.php b/tests/Unit/Colors/Hsl/ChannelTest.php
similarity index 85%
rename from tests/Colors/Hsl/ChannelTest.php
rename to tests/Unit/Colors/Hsl/ChannelTest.php
index b88f7985..11166f27 100644
--- a/tests/Colors/Hsl/ChannelTest.php
+++ b/tests/Unit/Colors/Hsl/ChannelTest.php
@@ -2,20 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsl;
+namespace Intervention\Image\Tests\Unit\Colors\Hsl;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Colors\Hsl\Channels\Hue;
use Intervention\Image\Colors\Hsl\Channels\Saturation;
use Intervention\Image\Colors\Hsl\Channels\Luminance;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Colors\Hsl\Channels\Hue
- * @covers \Intervention\Image\Colors\Hsl\Channels\Saturation
- * @covers \Intervention\Image\Colors\Hsl\Channels\Luminance
- */
-class ChannelTest extends TestCase
+#[CoversClass(\Intervention\Image\Colors\Hsl\Channels\Hue::class)]
+#[CoversClass(\Intervention\Image\Colors\Hsl\Channels\Saturation::class)]
+#[CoversClass(\Intervention\Image\Colors\Hsl\Channels\Luminance::class)]
+final class ChannelTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Colors/Hsl/Channels/SaturationTest.php b/tests/Unit/Colors/Hsl/Channels/SaturationTest.php
similarity index 65%
rename from tests/Colors/Hsl/Channels/SaturationTest.php
rename to tests/Unit/Colors/Hsl/Channels/SaturationTest.php
index 684cfeef..a97da881 100644
--- a/tests/Colors/Hsl/Channels/SaturationTest.php
+++ b/tests/Unit/Colors/Hsl/Channels/SaturationTest.php
@@ -2,12 +2,12 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsl\Channels;
+namespace Intervention\Image\Tests\Unit\Colors\Hsl\Channels;
use Intervention\Image\Colors\Hsl\Channels\Saturation;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class SaturationTest extends TestCase
+final class SaturationTest extends BaseTestCase
{
public function testMinMax(): void
{
diff --git a/tests/Colors/Hsl/ColorTest.php b/tests/Unit/Colors/Hsl/ColorTest.php
similarity index 92%
rename from tests/Colors/Hsl/ColorTest.php
rename to tests/Unit/Colors/Hsl/ColorTest.php
index 45743a1a..b926b2c2 100644
--- a/tests/Colors/Hsl/ColorTest.php
+++ b/tests/Unit/Colors/Hsl/ColorTest.php
@@ -2,20 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsl;
+namespace Intervention\Image\Tests\Unit\Colors\Hsl;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Colors\Hsl\Channels\Hue;
use Intervention\Image\Colors\Hsl\Channels\Luminance;
use Intervention\Image\Colors\Hsl\Channels\Saturation;
use Intervention\Image\Colors\Hsl\Color;
use Intervention\Image\Colors\Hsl\Colorspace;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Colors\Hsl\Color
- */
-class ColorTest extends TestCase
+#[CoversClass(\Intervention\Image\Colors\Hsl\Color::class)]
+final class ColorTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Colors/Hsl/ColorspaceTest.php b/tests/Unit/Colors/Hsl/ColorspaceTest.php
similarity index 93%
rename from tests/Colors/Hsl/ColorspaceTest.php
rename to tests/Unit/Colors/Hsl/ColorspaceTest.php
index 3a785aac..3a1e0bfb 100644
--- a/tests/Colors/Hsl/ColorspaceTest.php
+++ b/tests/Unit/Colors/Hsl/ColorspaceTest.php
@@ -2,8 +2,9 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsl;
+namespace Intervention\Image\Tests\Unit\Colors\Hsl;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Colors\Cmyk\Color as CmykColor;
use Intervention\Image\Colors\Hsl\Channels\Hue;
use Intervention\Image\Colors\Hsl\Channels\Luminance;
@@ -12,12 +13,10 @@ use Intervention\Image\Colors\Hsl\Color as HslColor;
use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Colors\Hsv\Color as HsvColor;
use Intervention\Image\Colors\Hsl\Colorspace;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Colors\Hsl\Colorspace
- */
-class ColorspaceTest extends TestCase
+#[CoversClass(\Intervention\Image\Colors\Hsl\Colorspace::class)]
+final class ColorspaceTest extends BaseTestCase
{
public function testColorFromNormalized(): void
{
diff --git a/tests/Colors/Hsl/Decoders/StringColorDecoderTest.php b/tests/Unit/Colors/Hsl/Decoders/StringColorDecoderTest.php
similarity index 71%
rename from tests/Colors/Hsl/Decoders/StringColorDecoderTest.php
rename to tests/Unit/Colors/Hsl/Decoders/StringColorDecoderTest.php
index 8c79364b..bff8a093 100644
--- a/tests/Colors/Hsl/Decoders/StringColorDecoderTest.php
+++ b/tests/Unit/Colors/Hsl/Decoders/StringColorDecoderTest.php
@@ -2,17 +2,17 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsl\Decoders;
+namespace Intervention\Image\Tests\Unit\Colors\Hsl\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Hsl\Color;
use Intervention\Image\Colors\Hsl\Decoders\StringColorDecoder;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Hsl\Decoders\StringColorDecoder
- */
-class StringColorDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Hsl\Decoders\StringColorDecoder::class)]
+final class StringColorDecoderTest extends BaseTestCase
{
public function testDecode(): void
{
diff --git a/tests/Colors/Hsv/ChannelTest.php b/tests/Unit/Colors/Hsv/ChannelTest.php
similarity index 82%
rename from tests/Colors/Hsv/ChannelTest.php
rename to tests/Unit/Colors/Hsv/ChannelTest.php
index bc3bf08d..e3aca085 100644
--- a/tests/Colors/Hsv/ChannelTest.php
+++ b/tests/Unit/Colors/Hsv/ChannelTest.php
@@ -2,21 +2,21 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsv;
+namespace Intervention\Image\Tests\Unit\Colors\Hsv;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Hsv\Channels\Hue;
use Intervention\Image\Colors\Hsv\Channels\Saturation;
use Intervention\Image\Colors\Hsv\Channels\Value;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Hsv\Channels\Hue
- * @covers \Intervention\Image\Colors\Hsv\Channels\Saturation
- * @covers \Intervention\Image\Colors\Hsv\Channels\Value
- */
-class ChannelTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Hsv\Channels\Hue::class)]
+#[CoversClass(\Intervention\Image\Colors\Hsv\Channels\Saturation::class)]
+#[CoversClass(\Intervention\Image\Colors\Hsv\Channels\Value::class)]
+final class ChannelTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Colors/Hsv/Channels/SaturationTest.php b/tests/Unit/Colors/Hsv/Channels/SaturationTest.php
similarity index 65%
rename from tests/Colors/Hsv/Channels/SaturationTest.php
rename to tests/Unit/Colors/Hsv/Channels/SaturationTest.php
index 04892b52..db273448 100644
--- a/tests/Colors/Hsv/Channels/SaturationTest.php
+++ b/tests/Unit/Colors/Hsv/Channels/SaturationTest.php
@@ -2,12 +2,12 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsv\Channels;
+namespace Intervention\Image\Tests\Unit\Colors\Hsv\Channels;
use Intervention\Image\Colors\Hsv\Channels\Saturation;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class SaturationTest extends TestCase
+final class SaturationTest extends BaseTestCase
{
public function testMinMax(): void
{
diff --git a/tests/Colors/Hsv/Channels/ValueTest.php b/tests/Unit/Colors/Hsv/Channels/ValueTest.php
similarity index 65%
rename from tests/Colors/Hsv/Channels/ValueTest.php
rename to tests/Unit/Colors/Hsv/Channels/ValueTest.php
index afe7cd12..7a49d592 100644
--- a/tests/Colors/Hsv/Channels/ValueTest.php
+++ b/tests/Unit/Colors/Hsv/Channels/ValueTest.php
@@ -2,12 +2,12 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsv\Channels;
+namespace Intervention\Image\Tests\Unit\Colors\Hsv\Channels;
use Intervention\Image\Colors\Hsv\Channels\Value;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class ValueTest extends TestCase
+final class ValueTest extends BaseTestCase
{
public function testMinMax(): void
{
diff --git a/tests/Colors/Hsv/ColorTest.php b/tests/Unit/Colors/Hsv/ColorTest.php
similarity index 92%
rename from tests/Colors/Hsv/ColorTest.php
rename to tests/Unit/Colors/Hsv/ColorTest.php
index fe602aa1..76d90e08 100644
--- a/tests/Colors/Hsv/ColorTest.php
+++ b/tests/Unit/Colors/Hsv/ColorTest.php
@@ -2,20 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsv;
+namespace Intervention\Image\Tests\Unit\Colors\Hsv;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Colors\Hsv\Channels\Hue;
use Intervention\Image\Colors\Hsv\Channels\Saturation;
use Intervention\Image\Colors\Hsv\Channels\Value;
use Intervention\Image\Colors\Hsv\Color;
use Intervention\Image\Colors\Hsv\Colorspace;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Colors\Hsv\Color
- */
-class ColorTest extends TestCase
+#[CoversClass(\Intervention\Image\Colors\Hsv\Color::class)]
+final class ColorTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Colors/Hsv/ColorspaceTest.php b/tests/Unit/Colors/Hsv/ColorspaceTest.php
similarity index 92%
rename from tests/Colors/Hsv/ColorspaceTest.php
rename to tests/Unit/Colors/Hsv/ColorspaceTest.php
index cc300471..1eb89459 100644
--- a/tests/Colors/Hsv/ColorspaceTest.php
+++ b/tests/Unit/Colors/Hsv/ColorspaceTest.php
@@ -2,8 +2,9 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsv;
+namespace Intervention\Image\Tests\Unit\Colors\Hsv;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Colors\Cmyk\Color as CmykColor;
use Intervention\Image\Colors\Hsv\Channels\Hue;
use Intervention\Image\Colors\Hsv\Channels\Saturation;
@@ -12,12 +13,10 @@ use Intervention\Image\Colors\Hsv\Color as HsvColor;
use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Colors\Hsl\Color as HslColor;
use Intervention\Image\Colors\Hsv\Colorspace;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Colors\Hsv\Colorspace
- */
-class ColorspaceTest extends TestCase
+#[CoversClass(\Intervention\Image\Colors\Hsv\Colorspace::class)]
+final class ColorspaceTest extends BaseTestCase
{
public function testColorFromNormalized(): void
{
diff --git a/tests/Colors/Hsv/Decoders/StringColorDecoderTest.php b/tests/Unit/Colors/Hsv/Decoders/StringColorDecoderTest.php
similarity index 82%
rename from tests/Colors/Hsv/Decoders/StringColorDecoderTest.php
rename to tests/Unit/Colors/Hsv/Decoders/StringColorDecoderTest.php
index 40a0c283..fa63c6ce 100644
--- a/tests/Colors/Hsv/Decoders/StringColorDecoderTest.php
+++ b/tests/Unit/Colors/Hsv/Decoders/StringColorDecoderTest.php
@@ -2,17 +2,17 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Hsv\Decoders;
+namespace Intervention\Image\Tests\Unit\Colors\Hsv\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Hsv\Color;
use Intervention\Image\Colors\Hsv\Decoders\StringColorDecoder;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Hsv\Decoders\StringColorDecoder
- */
-class StringColorDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Hsv\Decoders\StringColorDecoder::class)]
+final class StringColorDecoderTest extends BaseTestCase
{
public function testDecodeHsv(): void
{
diff --git a/tests/Colors/Rgb/ChannelTest.php b/tests/Unit/Colors/Rgb/ChannelTest.php
similarity index 79%
rename from tests/Colors/Rgb/ChannelTest.php
rename to tests/Unit/Colors/Rgb/ChannelTest.php
index 95da26b0..a61ef50d 100644
--- a/tests/Colors/Rgb/ChannelTest.php
+++ b/tests/Unit/Colors/Rgb/ChannelTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Rgb;
+namespace Intervention\Image\Tests\Unit\Colors\Rgb;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Rgb\Channels\Red as Channel;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Rgb\Channels\Red
- * @covers \Intervention\Image\Colors\Rgb\Channels\Green
- * @covers \Intervention\Image\Colors\Rgb\Channels\Blue
- */
-class ChannelTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Rgb\Channels\Red::class)]
+#[CoversClass(\Intervention\Image\Colors\Rgb\Channels\Green::class)]
+#[CoversClass(\Intervention\Image\Colors\Rgb\Channels\Blue::class)]
+final class ChannelTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Colors/Rgb/Channels/AlphaTest.php b/tests/Unit/Colors/Rgb/Channels/AlphaTest.php
similarity index 53%
rename from tests/Colors/Rgb/Channels/AlphaTest.php
rename to tests/Unit/Colors/Rgb/Channels/AlphaTest.php
index 1aed0fac..cc6432bc 100644
--- a/tests/Colors/Rgb/Channels/AlphaTest.php
+++ b/tests/Unit/Colors/Rgb/Channels/AlphaTest.php
@@ -2,15 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Rgb\Channels;
+namespace Intervention\Image\Tests\Unit\Colors\Rgb\Channels;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Colors\Rgb\Channels\Alpha;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Colors\Rgb\Channels\Alpha
- */
-class AlphaTest extends TestCase
+#[CoversClass(\Intervention\Image\Colors\Rgb\Channels\Alpha::class)]
+final class AlphaTest extends BaseTestCase
{
public function testToString(): void
{
diff --git a/tests/Colors/Rgb/ColorTest.php b/tests/Unit/Colors/Rgb/ColorTest.php
similarity index 93%
rename from tests/Colors/Rgb/ColorTest.php
rename to tests/Unit/Colors/Rgb/ColorTest.php
index d6eb9319..4163662a 100644
--- a/tests/Colors/Rgb/ColorTest.php
+++ b/tests/Unit/Colors/Rgb/ColorTest.php
@@ -2,8 +2,10 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Rgb;
+namespace Intervention\Image\Tests\Unit\Colors\Rgb;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Cmyk\Color as CmykColor;
use Intervention\Image\Colors\Cmyk\Colorspace as CmykColorspace;
use Intervention\Image\Colors\Rgb\Channels\Red;
@@ -12,13 +14,11 @@ use Intervention\Image\Colors\Rgb\Channels\Blue;
use Intervention\Image\Colors\Rgb\Color;
use Intervention\Image\Colors\Rgb\Colorspace as RgbColorspace;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Rgb\Color
- */
-class ColorTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Rgb\Color::class)]
+final class ColorTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Colors/Rgb/ColorspaceTest.php b/tests/Unit/Colors/Rgb/ColorspaceTest.php
similarity index 93%
rename from tests/Colors/Rgb/ColorspaceTest.php
rename to tests/Unit/Colors/Rgb/ColorspaceTest.php
index b4202000..5d4d5ec8 100644
--- a/tests/Colors/Rgb/ColorspaceTest.php
+++ b/tests/Unit/Colors/Rgb/ColorspaceTest.php
@@ -2,8 +2,9 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Rgb;
+namespace Intervention\Image\Tests\Unit\Colors\Rgb;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Colors\Cmyk\Color as CmykColor;
use Intervention\Image\Colors\Hsv\Color as HsvColor;
use Intervention\Image\Colors\Rgb\Channels\Blue;
@@ -13,12 +14,10 @@ use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Colors\Hsl\Color as HslColor;
use Intervention\Image\Colors\Rgb\Channels\Alpha;
use Intervention\Image\Colors\Rgb\Colorspace;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Colors\Rgb\Colorspace
- */
-class ColorspaceTest extends TestCase
+#[CoversClass(\Intervention\Image\Colors\Rgb\Colorspace::class)]
+final class ColorspaceTest extends BaseTestCase
{
public function testColorFromNormalized(): void
{
diff --git a/tests/Colors/Rgb/Decoders/HexColorDecoderTest.php b/tests/Unit/Colors/Rgb/Decoders/HexColorDecoderTest.php
similarity index 84%
rename from tests/Colors/Rgb/Decoders/HexColorDecoderTest.php
rename to tests/Unit/Colors/Rgb/Decoders/HexColorDecoderTest.php
index 1f82d3fb..1396b688 100644
--- a/tests/Colors/Rgb/Decoders/HexColorDecoderTest.php
+++ b/tests/Unit/Colors/Rgb/Decoders/HexColorDecoderTest.php
@@ -2,17 +2,17 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Rgb\Decoders;
+namespace Intervention\Image\Tests\Unit\Colors\Rgb\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Rgb\Color;
use Intervention\Image\Colors\Rgb\Decoders\HexColorDecoder;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Rgb\Decoders\HexColorDecoder
- */
-class HexColorDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Rgb\Decoders\HexColorDecoder::class)]
+final class HexColorDecoderTest extends BaseTestCase
{
public function testDecode(): void
{
diff --git a/tests/Colors/Rgb/Decoders/HtmlColornameDecoderTest.php b/tests/Unit/Colors/Rgb/Decoders/HtmlColornameDecoderTest.php
similarity index 67%
rename from tests/Colors/Rgb/Decoders/HtmlColornameDecoderTest.php
rename to tests/Unit/Colors/Rgb/Decoders/HtmlColornameDecoderTest.php
index 0b82fc9f..0ef15b37 100644
--- a/tests/Colors/Rgb/Decoders/HtmlColornameDecoderTest.php
+++ b/tests/Unit/Colors/Rgb/Decoders/HtmlColornameDecoderTest.php
@@ -2,17 +2,17 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Rgb\Decoders;
+namespace Intervention\Image\Tests\Unit\Colors\Rgb\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Rgb\Color;
use Intervention\Image\Colors\Rgb\Decoders\HtmlColornameDecoder;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Rgb\Decoders\HtmlColorNameDecoder
- */
-class HtmlColornameDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Rgb\Decoders\HtmlColorNameDecoder::class)]
+final class HtmlColornameDecoderTest extends BaseTestCase
{
public function testDecode(): void
{
diff --git a/tests/Colors/Rgb/Decoders/StringColorDecoderTest.php b/tests/Unit/Colors/Rgb/Decoders/StringColorDecoderTest.php
similarity index 82%
rename from tests/Colors/Rgb/Decoders/StringColorDecoderTest.php
rename to tests/Unit/Colors/Rgb/Decoders/StringColorDecoderTest.php
index d3c22ce1..75ba06ce 100644
--- a/tests/Colors/Rgb/Decoders/StringColorDecoderTest.php
+++ b/tests/Unit/Colors/Rgb/Decoders/StringColorDecoderTest.php
@@ -2,17 +2,17 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Colors\Rgb\Decoders;
+namespace Intervention\Image\Tests\Unit\Colors\Rgb\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Rgb\Color;
use Intervention\Image\Colors\Rgb\Decoders\StringColorDecoder;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Colors\Rgb\Decoders\StringColorDecoder
- */
-class StringColorDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Colors\Rgb\Decoders\StringColorDecoder::class)]
+final class StringColorDecoderTest extends BaseTestCase
{
public function testDecode(): void
{
diff --git a/tests/Decoders/SpecializableDecoderTest.php b/tests/Unit/Decoders/SpecializableDecoderTest.php
similarity index 71%
rename from tests/Decoders/SpecializableDecoderTest.php
rename to tests/Unit/Decoders/SpecializableDecoderTest.php
index e7b4637f..0c0a5a00 100644
--- a/tests/Decoders/SpecializableDecoderTest.php
+++ b/tests/Unit/Decoders/SpecializableDecoderTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Decoders;
+namespace Intervention\Image\Tests\Unit\Decoders;
use Intervention\Image\Decoders\SpecializableDecoder;
use Intervention\Image\Exceptions\DecoderException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-class SpecializableDecoderTest extends TestCase
+final class SpecializableDecoderTest extends BaseTestCase
{
public function testDecode(): void
{
diff --git a/tests/Drivers/AbstractDecoderTest.php b/tests/Unit/Drivers/AbstractDecoderTest.php
similarity index 94%
rename from tests/Drivers/AbstractDecoderTest.php
rename to tests/Unit/Drivers/AbstractDecoderTest.php
index cd999b0a..ef2ee2c5 100644
--- a/tests/Drivers/AbstractDecoderTest.php
+++ b/tests/Unit/Drivers/AbstractDecoderTest.php
@@ -2,21 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers;
+namespace Intervention\Image\Tests\Unit\Drivers;
+use PHPUnit\Framework\Attributes\CoversClass;
use Exception;
use Intervention\Image\Drivers\AbstractDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Interfaces\CollectionInterface;
use Intervention\Image\Interfaces\ColorInterface;
use Intervention\Image\Interfaces\ImageInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-/**
- * @covers \Intervention\Image\Drivers\AbstractDecoder
- */
-class AbstractDecoderTest extends TestCase
+#[CoversClass(\Intervention\Image\Drivers\AbstractDecoder::class)]
+final class AbstractDecoderTest extends BaseTestCase
{
public function testHandle(): void
{
diff --git a/tests/Drivers/AbstractInputHandlerTest.php b/tests/Unit/Drivers/AbstractInputHandlerTest.php
similarity index 83%
rename from tests/Drivers/AbstractInputHandlerTest.php
rename to tests/Unit/Drivers/AbstractInputHandlerTest.php
index 150d26ca..0e0e1929 100644
--- a/tests/Drivers/AbstractInputHandlerTest.php
+++ b/tests/Unit/Drivers/AbstractInputHandlerTest.php
@@ -2,19 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers;
+namespace Intervention\Image\Tests\Unit\Drivers;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Drivers\AbstractDecoder;
use Intervention\Image\Drivers\AbstractInputHandler;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Interfaces\ImageInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-/**
- * @covers \Intervention\Image\Drivers\AbstractInputHandler
- */
-final class AbstractInputHandlerTest extends TestCase
+#[CoversClass(\Intervention\Image\Drivers\AbstractInputHandler::class)]
+final class AbstractInputHandlerTest extends BaseTestCase
{
public function testHandle(): void
{
diff --git a/tests/Drivers/DriverSpecializedEncoderTest.php b/tests/Unit/Drivers/DriverSpecializedEncoderTest.php
similarity index 59%
rename from tests/Drivers/DriverSpecializedEncoderTest.php
rename to tests/Unit/Drivers/DriverSpecializedEncoderTest.php
index c2177de0..ed03ca74 100644
--- a/tests/Drivers/DriverSpecializedEncoderTest.php
+++ b/tests/Unit/Drivers/DriverSpecializedEncoderTest.php
@@ -2,18 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers;
+namespace Intervention\Image\Tests\Unit\Drivers;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Drivers\DriverSpecializedEncoder;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
/**
- * @covers \Intervention\Image\Drivers\DriverSpecializedEncoder
*
* @internal
*/
-class DriverSpecializedEncoderTest extends TestCase
+#[CoversClass(\Intervention\Image\Drivers\DriverSpecializedEncoder::class)]
+final class DriverSpecializedEncoderTest extends BaseTestCase
{
public function testGetBuffered(): void
{
diff --git a/tests/Drivers/DriverSpecializedTest.php b/tests/Unit/Drivers/DriverSpecializedTest.php
similarity index 76%
rename from tests/Drivers/DriverSpecializedTest.php
rename to tests/Unit/Drivers/DriverSpecializedTest.php
index 0d32aeb0..6df5358b 100644
--- a/tests/Drivers/DriverSpecializedTest.php
+++ b/tests/Unit/Drivers/DriverSpecializedTest.php
@@ -2,20 +2,21 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers;
+namespace Intervention\Image\Tests\Unit\Drivers;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Encoders\JpegEncoder;
use Intervention\Image\Interfaces\DriverInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Drivers\DriverSpecialized;
use Mockery;
/**
- * @covers \Intervention\Image\Drivers\DriverSpecialized
*
* @internal
*/
-class DriverSpecializedTest extends TestCase
+#[CoversClass(\Intervention\Image\Drivers\DriverSpecialized::class)]
+final class DriverSpecializedTest extends BaseTestCase
{
public function testBuildSpecialized(): void
{
diff --git a/tests/Drivers/Gd/Analyzers/ColorspaceAnalyzerTest.php b/tests/Unit/Drivers/Gd/Analyzers/ColorspaceAnalyzerTest.php
similarity index 52%
rename from tests/Drivers/Gd/Analyzers/ColorspaceAnalyzerTest.php
rename to tests/Unit/Drivers/Gd/Analyzers/ColorspaceAnalyzerTest.php
index 5cfb3d5d..aac7d3d6 100644
--- a/tests/Drivers/Gd/Analyzers/ColorspaceAnalyzerTest.php
+++ b/tests/Unit/Drivers/Gd/Analyzers/ColorspaceAnalyzerTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Analyzers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Analyzers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Analyzers\ColorspaceAnalyzer;
use Intervention\Image\Interfaces\ColorspaceInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Analyzers\ColorspaceAnalyzer
- * @covers \Intervention\Image\Drivers\Imagick\Analyzers\ColorspaceAnalyzer
- */
-class ColorspaceAnalyzerTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Analyzers\ColorspaceAnalyzer::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Analyzers\ColorspaceAnalyzer::class)]
+final class ColorspaceAnalyzerTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Unit/Drivers/Gd/Analyzers/HeightAnalyzerTest.php b/tests/Unit/Drivers/Gd/Analyzers/HeightAnalyzerTest.php
new file mode 100644
index 00000000..8601e45d
--- /dev/null
+++ b/tests/Unit/Drivers/Gd/Analyzers/HeightAnalyzerTest.php
@@ -0,0 +1,27 @@
+readTestImage('tile.png');
+ $analyzer = new HeightAnalyzer();
+ $result = $analyzer->analyze($image);
+ $this->assertEquals(16, $result);
+ }
+}
diff --git a/tests/Drivers/Gd/Analyzers/PixelColorAnalyzerTest.php b/tests/Unit/Drivers/Gd/Analyzers/PixelColorAnalyzerTest.php
similarity index 54%
rename from tests/Drivers/Gd/Analyzers/PixelColorAnalyzerTest.php
rename to tests/Unit/Drivers/Gd/Analyzers/PixelColorAnalyzerTest.php
index 8ec5421d..79027a13 100644
--- a/tests/Drivers/Gd/Analyzers/PixelColorAnalyzerTest.php
+++ b/tests/Unit/Drivers/Gd/Analyzers/PixelColorAnalyzerTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Analyzers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Analyzers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Analyzers\PixelColorAnalyzer;
use Intervention\Image\Interfaces\ColorInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Analyzers\PixelColorAnalyzer
- * @covers \Intervention\Image\Drivers\Imagick\Analyzers\PixelColorAnalyzer
- */
-class PixelColorAnalyzerTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Analyzers\PixelColorAnalyzer::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Analyzers\PixelColorAnalyzer::class)]
+final class PixelColorAnalyzerTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Analyzers/PixelColorsAnalyzerTest.php b/tests/Unit/Drivers/Gd/Analyzers/PixelColorsAnalyzerTest.php
similarity index 59%
rename from tests/Drivers/Gd/Analyzers/PixelColorsAnalyzerTest.php
rename to tests/Unit/Drivers/Gd/Analyzers/PixelColorsAnalyzerTest.php
index f3baef85..fb8ca4bd 100644
--- a/tests/Drivers/Gd/Analyzers/PixelColorsAnalyzerTest.php
+++ b/tests/Unit/Drivers/Gd/Analyzers/PixelColorsAnalyzerTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Analyzers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Analyzers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Analyzers\PixelColorsAnalyzer;
use Intervention\Image\Collection;
use Intervention\Image\Interfaces\ColorInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Analyzers\PixelColorsAnalyzer
- * @covers \Intervention\Image\Drivers\Imagick\Analyzers\PixelColorsAnalyzer
- */
-class PixelColorsAnalyzerTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Analyzers\PixelColorsAnalyzer::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Analyzers\PixelColorsAnalyzer::class)]
+final class PixelColorsAnalyzerTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Analyzers/ResolutionAnalyzerTest.php b/tests/Unit/Drivers/Gd/Analyzers/ResolutionAnalyzerTest.php
similarity index 51%
rename from tests/Drivers/Gd/Analyzers/ResolutionAnalyzerTest.php
rename to tests/Unit/Drivers/Gd/Analyzers/ResolutionAnalyzerTest.php
index 4b82c0f0..a7f41080 100644
--- a/tests/Drivers/Gd/Analyzers/ResolutionAnalyzerTest.php
+++ b/tests/Unit/Drivers/Gd/Analyzers/ResolutionAnalyzerTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Analyzers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Analyzers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Analyzers\ResolutionAnalyzer;
use Intervention\Image\Resolution;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Analyzers\ResolutionAnalyzer
- * @covers \Intervention\Image\Drivers\Imagick\Analyzers\ResolutionAnalyzer
- */
-class ResolutionAnalyzerTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Analyzers\ResolutionAnalyzer::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Analyzers\ResolutionAnalyzer::class)]
+final class ResolutionAnalyzerTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Unit/Drivers/Gd/Analyzers/WidthAnalyzerTest.php b/tests/Unit/Drivers/Gd/Analyzers/WidthAnalyzerTest.php
new file mode 100644
index 00000000..01e72494
--- /dev/null
+++ b/tests/Unit/Drivers/Gd/Analyzers/WidthAnalyzerTest.php
@@ -0,0 +1,27 @@
+readTestImage('tile.png');
+ $analyzer = new WidthAnalyzer();
+ $result = $analyzer->analyze($image);
+ $this->assertEquals(16, $result);
+ }
+}
diff --git a/tests/Drivers/Gd/ClonerTest.php b/tests/Unit/Drivers/Gd/ClonerTest.php
similarity index 94%
rename from tests/Drivers/Gd/ClonerTest.php
rename to tests/Unit/Drivers/Gd/ClonerTest.php
index fa4bbb00..f1aa3c73 100644
--- a/tests/Drivers/Gd/ClonerTest.php
+++ b/tests/Unit/Drivers/Gd/ClonerTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd;
use Intervention\Image\Colors\Rgb\Color;
use Intervention\Image\Drivers\Gd\Cloner;
use Intervention\Image\Geometry\Rectangle;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class ClonerTest extends TestCase
+final class ClonerTest extends BaseTestCase
{
public function testClone(): void
{
diff --git a/tests/Drivers/Gd/ColorProcessorTest.php b/tests/Unit/Drivers/Gd/ColorProcessorTest.php
similarity index 89%
rename from tests/Drivers/Gd/ColorProcessorTest.php
rename to tests/Unit/Drivers/Gd/ColorProcessorTest.php
index c33b71e2..8e214c93 100644
--- a/tests/Drivers/Gd/ColorProcessorTest.php
+++ b/tests/Unit/Drivers/Gd/ColorProcessorTest.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd;
use Intervention\Image\Colors\Rgb\Channels\Alpha;
use Intervention\Image\Colors\Rgb\Channels\Blue;
@@ -11,9 +11,9 @@ use Intervention\Image\Colors\Rgb\Channels\Red;
use Intervention\Image\Colors\Rgb\Color;
use Intervention\Image\Drivers\Gd\ColorProcessor;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class ColorProcessorTest extends TestCase
+final class ColorProcessorTest extends BaseTestCase
{
public function testColorToNative(): void
{
diff --git a/tests/Drivers/Gd/CoreTest.php b/tests/Unit/Drivers/Gd/CoreTest.php
similarity index 95%
rename from tests/Drivers/Gd/CoreTest.php
rename to tests/Unit/Drivers/Gd/CoreTest.php
index 802b05d3..c6cfb73a 100644
--- a/tests/Drivers/Gd/CoreTest.php
+++ b/tests/Unit/Drivers/Gd/CoreTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd;
use GdImage;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Exceptions\AnimationException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class CoreTest extends TestCase
+final class CoreTest extends BaseTestCase
{
protected Core $core;
- public function setUp(): void
+ protected function setUp(): void
{
$this->core = new Core([
new Frame(imagecreatetruecolor(3, 2)),
diff --git a/tests/Drivers/Gd/Decoders/AbstractDecoderTest.php b/tests/Unit/Drivers/Gd/Decoders/AbstractDecoderTest.php
similarity index 79%
rename from tests/Drivers/Gd/Decoders/AbstractDecoderTest.php
rename to tests/Unit/Drivers/Gd/Decoders/AbstractDecoderTest.php
index a77c3dd3..350c8b35 100644
--- a/tests/Drivers/Gd/Decoders/AbstractDecoderTest.php
+++ b/tests/Unit/Drivers/Gd/Decoders/AbstractDecoderTest.php
@@ -2,13 +2,13 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Decoders;
use Intervention\Image\Drivers\Gd\Decoders\AbstractDecoder;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-class AbstractDecoderTest extends TestCase
+final class AbstractDecoderTest extends BaseTestCase
{
public function testGetMediaTypeFromFilePath(): void
{
diff --git a/tests/Drivers/Gd/Decoders/Base64ImageDecoderTest.php b/tests/Unit/Drivers/Gd/Decoders/Base64ImageDecoderTest.php
similarity index 62%
rename from tests/Drivers/Gd/Decoders/Base64ImageDecoderTest.php
rename to tests/Unit/Drivers/Gd/Decoders/Base64ImageDecoderTest.php
index 643c84ac..a0643a3c 100644
--- a/tests/Drivers/Gd/Decoders/Base64ImageDecoderTest.php
+++ b/tests/Unit/Drivers/Gd/Decoders/Base64ImageDecoderTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Decoders\Base64ImageDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Drivers\Gd\Decoders\Base64ImageDecoder
- */
-class Base64ImageDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Decoders\Base64ImageDecoder::class)]
+final class Base64ImageDecoderTest extends BaseTestCase
{
protected Base64ImageDecoder $decoder;
- public function setUp(): void
+ protected function setUp(): void
{
$this->decoder = new Base64ImageDecoder();
}
diff --git a/tests/Drivers/Gd/Decoders/BinaryImageDecoderTest.php b/tests/Unit/Drivers/Gd/Decoders/BinaryImageDecoderTest.php
similarity index 82%
rename from tests/Drivers/Gd/Decoders/BinaryImageDecoderTest.php
rename to tests/Unit/Drivers/Gd/Decoders/BinaryImageDecoderTest.php
index fd443853..e19e7f74 100644
--- a/tests/Drivers/Gd/Decoders/BinaryImageDecoderTest.php
+++ b/tests/Unit/Drivers/Gd/Decoders/BinaryImageDecoderTest.php
@@ -2,17 +2,17 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Decoders\BinaryImageDecoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Drivers\Gd\Decoders\BinaryImageDecoder
- */
-class BinaryImageDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Decoders\BinaryImageDecoder::class)]
+final class BinaryImageDecoderTest extends BaseTestCase
{
public function testDecodePng(): void
{
diff --git a/tests/Drivers/Gd/Decoders/DataUriImageDecoderTest.php b/tests/Unit/Drivers/Gd/Decoders/DataUriImageDecoderTest.php
similarity index 72%
rename from tests/Drivers/Gd/Decoders/DataUriImageDecoderTest.php
rename to tests/Unit/Drivers/Gd/Decoders/DataUriImageDecoderTest.php
index 803cbd62..c0d1dc0e 100644
--- a/tests/Drivers/Gd/Decoders/DataUriImageDecoderTest.php
+++ b/tests/Unit/Drivers/Gd/Decoders/DataUriImageDecoderTest.php
@@ -2,23 +2,23 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Decoders\DataUriImageDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use stdClass;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Drivers\Gd\Decoders\DataUriImageDecoder
- */
-class DataUriImageDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Decoders\DataUriImageDecoder::class)]
+final class DataUriImageDecoderTest extends BaseTestCase
{
protected DataUriImageDecoder $decoder;
- public function setUp(): void
+ protected function setUp(): void
{
$this->decoder = new DataUriImageDecoder();
}
diff --git a/tests/Drivers/Gd/Decoders/FilePathImageDecoderTest.php b/tests/Unit/Drivers/Gd/Decoders/FilePathImageDecoderTest.php
similarity index 71%
rename from tests/Drivers/Gd/Decoders/FilePathImageDecoderTest.php
rename to tests/Unit/Drivers/Gd/Decoders/FilePathImageDecoderTest.php
index fa403387..83fb9943 100644
--- a/tests/Drivers/Gd/Decoders/FilePathImageDecoderTest.php
+++ b/tests/Unit/Drivers/Gd/Decoders/FilePathImageDecoderTest.php
@@ -2,23 +2,23 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Decoders\FilePathImageDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use stdClass;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Drivers\Gd\Decoders\FilePathImageDecoder
- */
-class FilePathImageDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Decoders\FilePathImageDecoder::class)]
+final class FilePathImageDecoderTest extends BaseTestCase
{
protected FilePathImageDecoder $decoder;
- public function setUp(): void
+ protected function setUp(): void
{
$this->decoder = new FilePathImageDecoder();
}
diff --git a/tests/Drivers/Gd/Decoders/FilePointerImageDecoderTest.php b/tests/Unit/Drivers/Gd/Decoders/FilePointerImageDecoderTest.php
similarity index 55%
rename from tests/Drivers/Gd/Decoders/FilePointerImageDecoderTest.php
rename to tests/Unit/Drivers/Gd/Decoders/FilePointerImageDecoderTest.php
index 7bcbd1d7..5969761e 100644
--- a/tests/Drivers/Gd/Decoders/FilePointerImageDecoderTest.php
+++ b/tests/Unit/Drivers/Gd/Decoders/FilePointerImageDecoderTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Decoders\FilePointerImageDecoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Drivers\Gd\Decoders\FilePointerImageDecoder
- */
-class FilePointerImageDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Decoders\FilePointerImageDecoder::class)]
+final class FilePointerImageDecoderTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Decoders/ImageObjectDecoderTest.php b/tests/Unit/Drivers/Gd/Decoders/ImageObjectDecoderTest.php
similarity index 54%
rename from tests/Drivers/Gd/Decoders/ImageObjectDecoderTest.php
rename to tests/Unit/Drivers/Gd/Decoders/ImageObjectDecoderTest.php
index 44210f0c..23d6e6c0 100644
--- a/tests/Drivers/Gd/Decoders/ImageObjectDecoderTest.php
+++ b/tests/Unit/Drivers/Gd/Decoders/ImageObjectDecoderTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Decoders\ImageObjectDecoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Drivers\Gd\Decoders\ImageObjectDecoder
- */
-class ImageObjectDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Decoders\ImageObjectDecoder::class)]
+final class ImageObjectDecoderTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Decoders/SplFileInfoImageDecoderTest.php b/tests/Unit/Drivers/Gd/Decoders/SplFileInfoImageDecoderTest.php
similarity index 52%
rename from tests/Drivers/Gd/Decoders/SplFileInfoImageDecoderTest.php
rename to tests/Unit/Drivers/Gd/Decoders/SplFileInfoImageDecoderTest.php
index bfe286d0..639d9b75 100644
--- a/tests/Drivers/Gd/Decoders/SplFileInfoImageDecoderTest.php
+++ b/tests/Unit/Drivers/Gd/Decoders/SplFileInfoImageDecoderTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Decoders\SplFileInfoImageDecoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use SplFileInfo;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Drivers\Gd\Decoders\SplFileInfoImageDecoder
- */
-class SplFileInfoImageDecoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Decoders\SplFileInfoImageDecoder::class)]
+final class SplFileInfoImageDecoderTest extends BaseTestCase
{
public function testDecode(): void
{
diff --git a/tests/Drivers/Gd/DriverTest.php b/tests/Unit/Drivers/Gd/DriverTest.php
similarity index 93%
rename from tests/Drivers/Gd/DriverTest.php
rename to tests/Unit/Drivers/Gd/DriverTest.php
index ff6fb3f0..14fb1967 100644
--- a/tests/Drivers/Gd/DriverTest.php
+++ b/tests/Unit/Drivers/Gd/DriverTest.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd;
use Intervention\Image\Colors\Rgb\Colorspace;
use Intervention\Image\Colors\Rgb\Decoders\HexColorDecoder;
@@ -10,13 +10,13 @@ use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Interfaces\ColorInterface;
use Intervention\Image\Interfaces\ColorProcessorInterface;
use Intervention\Image\Interfaces\ImageInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class DriverTest extends TestCase
+final class DriverTest extends BaseTestCase
{
protected Driver $driver;
- public function setUp(): void
+ protected function setUp(): void
{
$this->driver = new Driver();
}
diff --git a/tests/Drivers/Gd/Encoders/AvifEncoderTest.php b/tests/Unit/Drivers/Gd/Encoders/AvifEncoderTest.php
similarity index 61%
rename from tests/Drivers/Gd/Encoders/AvifEncoderTest.php
rename to tests/Unit/Drivers/Gd/Encoders/AvifEncoderTest.php
index 7f134be8..88f3d5e7 100644
--- a/tests/Drivers/Gd/Encoders/AvifEncoderTest.php
+++ b/tests/Unit/Drivers/Gd/Encoders/AvifEncoderTest.php
@@ -2,21 +2,21 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\AvifEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Encoders\AvifEncoder
- * @covers \Intervention\Image\Drivers\Gd\Encoders\AvifEncoder
- */
-class AvifEncoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Encoders\AvifEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\AvifEncoder::class)]
+final class AvifEncoderTest extends BaseTestCase
{
protected function getTestImage(): Image
{
diff --git a/tests/Drivers/Gd/Encoders/BmpEncoderTest.php b/tests/Unit/Drivers/Gd/Encoders/BmpEncoderTest.php
similarity index 62%
rename from tests/Drivers/Gd/Encoders/BmpEncoderTest.php
rename to tests/Unit/Drivers/Gd/Encoders/BmpEncoderTest.php
index af371e99..b3e64825 100644
--- a/tests/Drivers/Gd/Encoders/BmpEncoderTest.php
+++ b/tests/Unit/Drivers/Gd/Encoders/BmpEncoderTest.php
@@ -2,21 +2,21 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\BmpEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Encoders\BmpEncoder
- * @covers \Intervention\Image\Drivers\Gd\Encoders\BmpEncoder
- */
-class BmpEncoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Encoders\BmpEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\BmpEncoder::class)]
+final class BmpEncoderTest extends BaseTestCase
{
protected function getTestImage(): Image
{
diff --git a/tests/Drivers/Gd/Encoders/GifEncoderTest.php b/tests/Unit/Drivers/Gd/Encoders/GifEncoderTest.php
similarity index 75%
rename from tests/Drivers/Gd/Encoders/GifEncoderTest.php
rename to tests/Unit/Drivers/Gd/Encoders/GifEncoderTest.php
index 2ba7d2a4..4ccf758b 100644
--- a/tests/Drivers/Gd/Encoders/GifEncoderTest.php
+++ b/tests/Unit/Drivers/Gd/Encoders/GifEncoderTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\GifEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Encoders\GifEncoder
- * @covers \Intervention\Image\Drivers\Gd\Encoders\GifEncoder
- */
-class GifEncoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Encoders\GifEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\GifEncoder::class)]
+final class GifEncoderTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Encoders/JpegEncoderTest.php b/tests/Unit/Drivers/Gd/Encoders/JpegEncoderTest.php
similarity index 61%
rename from tests/Drivers/Gd/Encoders/JpegEncoderTest.php
rename to tests/Unit/Drivers/Gd/Encoders/JpegEncoderTest.php
index 96597be8..afb9e4ff 100644
--- a/tests/Drivers/Gd/Encoders/JpegEncoderTest.php
+++ b/tests/Unit/Drivers/Gd/Encoders/JpegEncoderTest.php
@@ -2,21 +2,21 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\JpegEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Encoders\JpegEncoder
- * @covers \Intervention\Image\Drivers\Gd\Encoders\JpegEncoder
- */
-class JpegEncoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Encoders\JpegEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\JpegEncoder::class)]
+final class JpegEncoderTest extends BaseTestCase
{
protected function getTestImage(): Image
{
diff --git a/tests/Drivers/Gd/Encoders/PngEncoderTest.php b/tests/Unit/Drivers/Gd/Encoders/PngEncoderTest.php
similarity index 64%
rename from tests/Drivers/Gd/Encoders/PngEncoderTest.php
rename to tests/Unit/Drivers/Gd/Encoders/PngEncoderTest.php
index cbd10d9d..39759f6d 100644
--- a/tests/Drivers/Gd/Encoders/PngEncoderTest.php
+++ b/tests/Unit/Drivers/Gd/Encoders/PngEncoderTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\PngEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Encoders\PngEncoder
- * @covers \Intervention\Image\Drivers\Gd\Encoders\PngEncoder
- */
-class PngEncoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Encoders\PngEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\PngEncoder::class)]
+final class PngEncoderTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Encoders/WebpEncoderTest.php b/tests/Unit/Drivers/Gd/Encoders/WebpEncoderTest.php
similarity index 61%
rename from tests/Drivers/Gd/Encoders/WebpEncoderTest.php
rename to tests/Unit/Drivers/Gd/Encoders/WebpEncoderTest.php
index 579ca831..43af2742 100644
--- a/tests/Drivers/Gd/Encoders/WebpEncoderTest.php
+++ b/tests/Unit/Drivers/Gd/Encoders/WebpEncoderTest.php
@@ -2,21 +2,21 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Core;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\WebpEncoder;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Encoders\WebpEncoder
- * @covers \Intervention\Image\Drivers\Gd\Encoders\WebpEncoder
- */
-final class WebpEncoderTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Encoders\WebpEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Encoders\WebpEncoder::class)]
+final class WebpEncoderTest extends BaseTestCase
{
protected function getTestImage(): Image
{
diff --git a/tests/Drivers/Gd/FontProcessorTest.php b/tests/Unit/Drivers/Gd/FontProcessorTest.php
similarity index 95%
rename from tests/Drivers/Gd/FontProcessorTest.php
rename to tests/Unit/Drivers/Gd/FontProcessorTest.php
index 73c0091a..a5bcaa47 100644
--- a/tests/Drivers/Gd/FontProcessorTest.php
+++ b/tests/Unit/Drivers/Gd/FontProcessorTest.php
@@ -2,16 +2,16 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd;
use Intervention\Image\Drivers\Gd\FontProcessor;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Interfaces\SizeInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Typography\Font;
use Intervention\Image\Typography\TextBlock;
-class FontProcessorTest extends TestCase
+final class FontProcessorTest extends BaseTestCase
{
public function testBoxSizeGdOne(): void
{
diff --git a/tests/Drivers/Gd/FrameTest.php b/tests/Unit/Drivers/Gd/FrameTest.php
similarity index 83%
rename from tests/Drivers/Gd/FrameTest.php
rename to tests/Unit/Drivers/Gd/FrameTest.php
index 08409a63..f7a33169 100644
--- a/tests/Drivers/Gd/FrameTest.php
+++ b/tests/Unit/Drivers/Gd/FrameTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use GdImage;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Drivers\Gd\Frame;
use Intervention\Image\Image;
use Intervention\Image\Geometry\Rectangle;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Drivers\Gd\Frame
- */
-class FrameTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Frame::class)]
+final class FrameTest extends BaseTestCase
{
protected function getTestFrame(): Frame
{
@@ -51,7 +51,7 @@ class FrameTest extends TestCase
$this->assertInstanceOf(Rectangle::class, $frame->size());
}
- public function testSetGetDelay()
+ public function testSetGetDelay(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(0, $frame->delay());
@@ -61,7 +61,7 @@ class FrameTest extends TestCase
$this->assertEquals(1.5, $frame->delay());
}
- public function testSetGetDispose()
+ public function testSetGetDispose(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(1, $frame->dispose());
@@ -71,7 +71,7 @@ class FrameTest extends TestCase
$this->assertEquals(100, $frame->dispose());
}
- public function testSetGetOffsetLeft()
+ public function testSetGetOffsetLeft(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(0, $frame->offsetLeft());
@@ -81,7 +81,7 @@ class FrameTest extends TestCase
$this->assertEquals(100, $frame->offsetLeft());
}
- public function testSetGetOffsetTop()
+ public function testSetGetOffsetTop(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(0, $frame->offsetTop());
@@ -91,7 +91,7 @@ class FrameTest extends TestCase
$this->assertEquals(100, $frame->offsetTop());
}
- public function testSetGetOffset()
+ public function testSetGetOffset(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(0, $frame->offsetTop());
diff --git a/tests/Drivers/Gd/ImageTest.php b/tests/Unit/Drivers/Gd/ImageTest.php
similarity index 98%
rename from tests/Drivers/Gd/ImageTest.php
rename to tests/Unit/Drivers/Gd/ImageTest.php
index 4fdd1106..e49bea12 100644
--- a/tests/Drivers/Gd/ImageTest.php
+++ b/tests/Unit/Drivers/Gd/ImageTest.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd;
use Intervention\Image\Analyzers\WidthAnalyzer;
use Intervention\Image\Collection;
@@ -22,17 +22,17 @@ use Intervention\Image\Interfaces\ImageInterface;
use Intervention\Image\Interfaces\ResolutionInterface;
use Intervention\Image\Interfaces\SizeInterface;
use Intervention\Image\Modifiers\GreyscaleModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
use Intervention\Image\Typography\Font;
-class ImageTest extends TestCase
+final class ImageTest extends BaseTestCase
{
use CanCreateGdTestImage;
protected Image $image;
- public function setUp(): void
+ protected function setUp(): void
{
$this->image = new Image(
new Driver(),
diff --git a/tests/Drivers/Gd/InputHandlerTest.php b/tests/Unit/Drivers/Gd/InputHandlerTest.php
similarity index 87%
rename from tests/Drivers/Gd/InputHandlerTest.php
rename to tests/Unit/Drivers/Gd/InputHandlerTest.php
index 6561ee54..7707c04f 100644
--- a/tests/Drivers/Gd/InputHandlerTest.php
+++ b/tests/Unit/Drivers/Gd/InputHandlerTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Cmyk\Color as CmykColor;
use Intervention\Image\Colors\Hsv\Color as HsvColor;
use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Image;
use Intervention\Image\Drivers\Gd\InputHandler;
use Intervention\Image\Exceptions\DecoderException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use SplFileInfo;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Drivers\Gd\InputHandler
- */
-class InputHandlerTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Drivers\Gd\InputHandler::class)]
+final class InputHandlerTest extends BaseTestCase
{
public function testHandleEmptyString(): void
{
@@ -29,7 +29,7 @@ class InputHandlerTest extends TestCase
public function testHandleBinaryImage(): void
{
$handler = new InputHandler();
- $input = file_get_contents(__DIR__ . '/../../images/animation.gif');
+ $input = file_get_contents($this->getTestImagePath('test.jpg'));
$result = $handler->handle($input);
$this->assertInstanceOf(Image::class, $result);
}
@@ -37,7 +37,7 @@ class InputHandlerTest extends TestCase
public function testHandleSplFileInfo(): void
{
$handler = new InputHandler();
- $input = new SplFileInfo(__DIR__ . '/../../images/test.jpg');
+ $input = new SplFileInfo($this->getTestImagePath('test.jpg'));
$result = $handler->handle($input);
$this->assertInstanceOf(Image::class, $result);
}
@@ -45,7 +45,7 @@ class InputHandlerTest extends TestCase
public function testHandleFilePathImage(): void
{
$handler = new InputHandler();
- $input = __DIR__ . '/../../images/animation.gif';
+ $input = $this->getTestImagePath('animation.gif');
$result = $handler->handle($input);
$this->assertInstanceOf(Image::class, $result);
}
@@ -53,7 +53,7 @@ class InputHandlerTest extends TestCase
public function testHandleBase64Image(): void
{
$handler = new InputHandler();
- $input = base64_encode(file_get_contents(__DIR__ . '/../../images/animation.gif'));
+ $input = base64_encode(file_get_contents($this->getTestImagePath('animation.gif')));
$result = $handler->handle($input);
$this->assertInstanceOf(Image::class, $result);
}
diff --git a/tests/Drivers/Gd/Modifiers/BlurModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/BlurModifierTest.php
similarity index 52%
rename from tests/Drivers/Gd/Modifiers/BlurModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/BlurModifierTest.php
index ea5d8ace..37205ff6 100644
--- a/tests/Drivers/Gd/Modifiers/BlurModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/BlurModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\BlurModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\BlurModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\BlurModifier
- */
-class BlurModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\BlurModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\BlurModifier::class)]
+final class BlurModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/BrightnessModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/BrightnessModifierTest.php
similarity index 51%
rename from tests/Drivers/Gd/Modifiers/BrightnessModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/BrightnessModifierTest.php
index 5a206175..17bc84d9 100644
--- a/tests/Drivers/Gd/Modifiers/BrightnessModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/BrightnessModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\BrightnessModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\BrightnessModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\BrightnessModifier
- */
-class BrightnessModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\BrightnessModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\BrightnessModifier::class)]
+final class BrightnessModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/ColorizeModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/ColorizeModifierTest.php
similarity index 52%
rename from tests/Drivers/Gd/Modifiers/ColorizeModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/ColorizeModifierTest.php
index b8ad31fc..26465647 100644
--- a/tests/Drivers/Gd/Modifiers/ColorizeModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/ColorizeModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ColorizeModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\ColorizeModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\ColorizeModifier
- */
-class ColorizeModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\ColorizeModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\ColorizeModifier::class)]
+final class ColorizeModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/ContainModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/ContainModifierTest.php
similarity index 63%
rename from tests/Drivers/Gd/Modifiers/ContainModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/ContainModifierTest.php
index 37866731..48574d4b 100644
--- a/tests/Drivers/Gd/Modifiers/ContainModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/ContainModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ContainModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\ContainModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\ContainModifier
- */
-class ContainModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\ContainModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\ContainModifier::class)]
+final class ContainModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/ContrastModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/ContrastModifierTest.php
similarity index 52%
rename from tests/Drivers/Gd/Modifiers/ContrastModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/ContrastModifierTest.php
index a87be687..a7e5a314 100644
--- a/tests/Drivers/Gd/Modifiers/ContrastModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/ContrastModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ContrastModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\ContrastModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\ContrastModifier
- */
-class ContrastModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\ContrastModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\ContrastModifier::class)]
+final class ContrastModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/CoverModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/CoverModifierTest.php
similarity index 65%
rename from tests/Drivers/Gd/Modifiers/CoverModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/CoverModifierTest.php
index a5d71564..8b887bdf 100644
--- a/tests/Drivers/Gd/Modifiers/CoverModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/CoverModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\CoverModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\CoverModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\CoverModifier
- */
-class CoverModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\CoverModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\CoverModifier::class)]
+final class CoverModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/CropModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/CropModifierTest.php
similarity index 74%
rename from tests/Drivers/Gd/Modifiers/CropModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/CropModifierTest.php
index b84ae67d..c6273818 100644
--- a/tests/Drivers/Gd/Modifiers/CropModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/CropModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\CropModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\CropModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\CropModifier
- */
-class CropModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\CropModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\CropModifier::class)]
+final class CropModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/DrawEllipseModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/DrawEllipseModifierTest.php
similarity index 60%
rename from tests/Drivers/Gd/Modifiers/DrawEllipseModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/DrawEllipseModifierTest.php
index de9d68e4..5e5d79a0 100644
--- a/tests/Drivers/Gd/Modifiers/DrawEllipseModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/DrawEllipseModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawEllipseModifier;
use Intervention\Image\Geometry\Ellipse;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\DrawEllipseModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\DrawEllipseModifier
- */
-class DrawEllipseModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawEllipseModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\DrawEllipseModifier::class)]
+final class DrawEllipseModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/DrawLineModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/DrawLineModifierTest.php
similarity index 60%
rename from tests/Drivers/Gd/Modifiers/DrawLineModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/DrawLineModifierTest.php
index 3757d489..369442e2 100644
--- a/tests/Drivers/Gd/Modifiers/DrawLineModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/DrawLineModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawLineModifier;
use Intervention\Image\Geometry\Line;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\DrawLineModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\DrawLineModifier
- */
-class DrawLineModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawLineModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\DrawLineModifier::class)]
+final class DrawLineModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/DrawPixelModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/DrawPixelModifierTest.php
similarity index 55%
rename from tests/Drivers/Gd/Modifiers/DrawPixelModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/DrawPixelModifierTest.php
index 43a67c89..6b9aebed 100644
--- a/tests/Drivers/Gd/Modifiers/DrawPixelModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/DrawPixelModifierTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawPixelModifier;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\DrawPixelModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\DrawPixelModifier
- */
-class DrawPixelModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawPixelModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\DrawPixelModifier::class)]
+final class DrawPixelModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/DrawPolygonModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/DrawPolygonModifierTest.php
similarity index 61%
rename from tests/Drivers/Gd/Modifiers/DrawPolygonModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/DrawPolygonModifierTest.php
index 76d7d77b..c41cbbf8 100644
--- a/tests/Drivers/Gd/Modifiers/DrawPolygonModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/DrawPolygonModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawPolygonModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Polygon;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\DrawPixelModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\DrawPixelModifier
- */
-class DrawPolygonModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawPixelModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\DrawPixelModifier::class)]
+final class DrawPolygonModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/DrawRectangleModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/DrawRectangleModifierTest.php
similarity index 60%
rename from tests/Drivers/Gd/Modifiers/DrawRectangleModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/DrawRectangleModifierTest.php
index 5f3a1dff..291643c3 100644
--- a/tests/Drivers/Gd/Modifiers/DrawRectangleModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/DrawRectangleModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawRectangleModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Rectangle;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\DrawRectangleModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\DrawRectangleModifier
- */
-class DrawRectangleModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawRectangleModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\DrawRectangleModifier::class)]
+final class DrawRectangleModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/FillModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/FillModifierTest.php
similarity index 74%
rename from tests/Drivers/Gd/Modifiers/FillModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/FillModifierTest.php
index f16f5de5..63f8aec2 100644
--- a/tests/Drivers/Gd/Modifiers/FillModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/FillModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Rgb\Color;
use Intervention\Image\Modifiers\FillModifier;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\FillModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\FillModifier
- */
-class FillModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\FillModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\FillModifier::class)]
+final class FillModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/FlipFlopModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/FlipFlopModifierTest.php
similarity index 64%
rename from tests/Drivers/Gd/Modifiers/FlipFlopModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/FlipFlopModifierTest.php
index 746ebcab..69a56f23 100644
--- a/tests/Drivers/Gd/Modifiers/FlipFlopModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/FlipFlopModifierTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\FlipModifier;
use Intervention\Image\Modifiers\FlopModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\FlipModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\FlipModifier
- */
-class FlipFlopModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\FlipModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\FlipModifier::class)]
+final class FlipFlopModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/GammaModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/GammaModifierTest.php
similarity index 52%
rename from tests/Drivers/Gd/Modifiers/GammaModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/GammaModifierTest.php
index 87c6b9be..1a18069a 100644
--- a/tests/Drivers/Gd/Modifiers/GammaModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/GammaModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\GammaModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\GammaModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\GammaModifier
- */
-class GammaModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\GammaModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\GammaModifier::class)]
+final class GammaModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/GreyscaleModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/GreyscaleModifierTest.php
similarity index 51%
rename from tests/Drivers/Gd/Modifiers/GreyscaleModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/GreyscaleModifierTest.php
index a9faa6bb..a31de139 100644
--- a/tests/Drivers/Gd/Modifiers/GreyscaleModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/GreyscaleModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\GreyscaleModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\GreyscaleModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\GreyscaleModifier
- */
-class GreyscaleModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\GreyscaleModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\GreyscaleModifier::class)]
+final class GreyscaleModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/InvertModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/InvertModifierTest.php
similarity index 58%
rename from tests/Drivers/Gd/Modifiers/InvertModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/InvertModifierTest.php
index 25eeced7..882d1a1f 100644
--- a/tests/Drivers/Gd/Modifiers/InvertModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/InvertModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\InvertModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\InvertModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\InvertModifier
- */
-class InvertModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\InvertModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\InvertModifier::class)]
+final class InvertModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/PixelateModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/PixelateModifierTest.php
similarity index 58%
rename from tests/Drivers/Gd/Modifiers/PixelateModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/PixelateModifierTest.php
index 4f45e07e..af89472c 100644
--- a/tests/Drivers/Gd/Modifiers/PixelateModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/PixelateModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\PixelateModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\PixelateModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\PixelateModifier
- */
-class PixelateModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\PixelateModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\PixelateModifier::class)]
+final class PixelateModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/PlaceModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/PlaceModifierTest.php
similarity index 52%
rename from tests/Drivers/Gd/Modifiers/PlaceModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/PlaceModifierTest.php
index cfe35d55..dc53fd01 100644
--- a/tests/Drivers/Gd/Modifiers/PlaceModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/PlaceModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\PlaceModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\PlaceModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\PlaceModifier
- */
-class PlaceModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\PlaceModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\PlaceModifier::class)]
+final class PlaceModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
@@ -21,7 +21,7 @@ class PlaceModifierTest extends TestCase
{
$image = $this->readTestImage('test.jpg');
$this->assertEquals('febc44', $image->pickColor(300, 25)->toHex());
- $image->modify(new PlaceModifier(__DIR__ . '/../../../images/circle.png', 'top-right', 0, 0));
+ $image->modify(new PlaceModifier($this->getTestImagePath('circle.png'), 'top-right', 0, 0));
$this->assertEquals('32250d', $image->pickColor(300, 25)->toHex());
}
@@ -29,7 +29,7 @@ class PlaceModifierTest extends TestCase
{
$image = $this->readTestImage('test.jpg');
$this->assertEquals('febc44', $image->pickColor(300, 25)->toHex());
- $image->modify(new PlaceModifier(__DIR__ . '/../../../images/circle.png', 'top-right', 0, 0, 50));
+ $image->modify(new PlaceModifier($this->getTestImagePath('circle.png'), 'top-right', 0, 0, 50));
$this->assertEquals('987028', $image->pickColor(300, 25)->toHex());
}
}
diff --git a/tests/Drivers/Gd/Modifiers/QuantizeColorsModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/QuantizeColorsModifierTest.php
similarity index 77%
rename from tests/Drivers/Gd/Modifiers/QuantizeColorsModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/QuantizeColorsModifierTest.php
index 8343b40d..8d40421f 100644
--- a/tests/Drivers/Gd/Modifiers/QuantizeColorsModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/QuantizeColorsModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Exceptions\InputException;
use Intervention\Image\Interfaces\ImageInterface;
use Intervention\Image\Modifiers\QuantizeColorsModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\QuantizeColorsModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\QuantizeColorsModifier
- */
-class QuantizeColorsModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\QuantizeColorsModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\QuantizeColorsModifier::class)]
+final class QuantizeColorsModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/RemoveAnimationModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/RemoveAnimationModifierTest.php
similarity index 70%
rename from tests/Drivers/Gd/Modifiers/RemoveAnimationModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/RemoveAnimationModifierTest.php
index ea190c6a..495be08c 100644
--- a/tests/Drivers/Gd/Modifiers/RemoveAnimationModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/RemoveAnimationModifierTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Exceptions\InputException;
use Intervention\Image\Modifiers\RemoveAnimationModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\RemoveAnimationModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\RemoveAnimationModifier
- */
-class RemoveAnimationModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\RemoveAnimationModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\RemoveAnimationModifier::class)]
+final class RemoveAnimationModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php
similarity index 81%
rename from tests/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php
index 68592094..9d573d80 100644
--- a/tests/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/ResizeCanvasModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ResizeCanvasModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\ResizeCanvasModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\ResizeCanvasModifier
- */
-class ResizeCanvasModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\ResizeCanvasModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\ResizeCanvasModifier::class)]
+final class ResizeCanvasModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php
similarity index 76%
rename from tests/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php
index e1306f55..d415d6d1 100644
--- a/tests/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/ResizeCanvasRelativeModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ResizeCanvasRelativeModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\ResizeCanvasRelativeModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\ResizeCanvasRelativeModifier
- */
-class ResizeCanvasRelativeModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\ResizeCanvasRelativeModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\ResizeCanvasRelativeModifier::class)]
+final class ResizeCanvasRelativeModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/ResizeModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/ResizeModifierTest.php
similarity index 65%
rename from tests/Drivers/Gd/Modifiers/ResizeModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/ResizeModifierTest.php
index dc75de07..a5f86d69 100644
--- a/tests/Drivers/Gd/Modifiers/ResizeModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/ResizeModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ResizeModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\ResizeModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\ResizeModifier
- */
-class ResizeModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\ResizeModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\ResizeModifier::class)]
+final class ResizeModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/ResolutionModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/ResolutionModifierTest.php
similarity index 57%
rename from tests/Drivers/Gd/Modifiers/ResolutionModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/ResolutionModifierTest.php
index 9cda784c..1813ca8a 100644
--- a/tests/Drivers/Gd/Modifiers/ResolutionModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/ResolutionModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ResolutionModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\ResolutionModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\ResolutionModifier
- */
-class ResolutionModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\ResolutionModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\ResolutionModifier::class)]
+final class ResolutionModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/RotateModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/RotateModifierTest.php
similarity index 55%
rename from tests/Drivers/Gd/Modifiers/RotateModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/RotateModifierTest.php
index 2f5070a6..d66d551f 100644
--- a/tests/Drivers/Gd/Modifiers/RotateModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/RotateModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\RotateModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\RotateModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\RotateModifier
- */
-class RotateModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\RotateModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\RotateModifier::class)]
+final class RotateModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Modifiers/SharpenModifierTest.php b/tests/Unit/Drivers/Gd/Modifiers/SharpenModifierTest.php
similarity index 52%
rename from tests/Drivers/Gd/Modifiers/SharpenModifierTest.php
rename to tests/Unit/Drivers/Gd/Modifiers/SharpenModifierTest.php
index ff4df9da..61a4e456 100644
--- a/tests/Drivers/Gd/Modifiers/SharpenModifierTest.php
+++ b/tests/Unit/Drivers/Gd/Modifiers/SharpenModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\SharpenModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateGdTestImage;
-/**
- * @requires extension gd
- * @covers \Intervention\Image\Modifiers\SharpenModifier
- * @covers \Intervention\Image\Drivers\Gd\Modifiers\SharpenModifier
- */
-class SharpenModifierTest extends TestCase
+#[RequiresPhpExtension('gd')]
+#[CoversClass(\Intervention\Image\Modifiers\SharpenModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Gd\Modifiers\SharpenModifier::class)]
+final class SharpenModifierTest extends BaseTestCase
{
use CanCreateGdTestImage;
diff --git a/tests/Drivers/Gd/Traits/CanDecodeGifTest.php b/tests/Unit/Drivers/Gd/Traits/CanDecodeGifTest.php
similarity index 91%
rename from tests/Drivers/Gd/Traits/CanDecodeGifTest.php
rename to tests/Unit/Drivers/Gd/Traits/CanDecodeGifTest.php
index 44d2299a..2fd09e17 100644
--- a/tests/Drivers/Gd/Traits/CanDecodeGifTest.php
+++ b/tests/Unit/Drivers/Gd/Traits/CanDecodeGifTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Gd\Traits;
+namespace Intervention\Image\Tests\Unit\Drivers\Gd\Traits;
use Intervention\Image\Drivers\Gd\Decoders\Traits\CanDecodeGif;
use Intervention\Image\Interfaces\ImageInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-class CanDecodeGifTest extends TestCase
+final class CanDecodeGifTest extends BaseTestCase
{
public function testDecodeGifFromBinaryAnimation(): void
{
diff --git a/tests/Drivers/Imagick/Analyzers/ColorspaceAnalyzerTest.php b/tests/Unit/Drivers/Imagick/Analyzers/ColorspaceAnalyzerTest.php
similarity index 52%
rename from tests/Drivers/Imagick/Analyzers/ColorspaceAnalyzerTest.php
rename to tests/Unit/Drivers/Imagick/Analyzers/ColorspaceAnalyzerTest.php
index cdf15633..975aa47a 100644
--- a/tests/Drivers/Imagick/Analyzers/ColorspaceAnalyzerTest.php
+++ b/tests/Unit/Drivers/Imagick/Analyzers/ColorspaceAnalyzerTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Analyzers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Analyzers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Analyzers\ColorspaceAnalyzer;
use Intervention\Image\Interfaces\ColorspaceInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Analyzers\ColorspaceAnalyzer
- * @covers \Intervention\Image\Drivers\Imagick\Analyzers\ColorspaceAnalyzer
- */
-class ColorspaceAnalyzerTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Analyzers\ColorspaceAnalyzer::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Analyzers\ColorspaceAnalyzer::class)]
+final class ColorspaceAnalyzerTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Unit/Drivers/Imagick/Analyzers/HeightAnalyzerTest.php b/tests/Unit/Drivers/Imagick/Analyzers/HeightAnalyzerTest.php
new file mode 100644
index 00000000..b4f46fe1
--- /dev/null
+++ b/tests/Unit/Drivers/Imagick/Analyzers/HeightAnalyzerTest.php
@@ -0,0 +1,27 @@
+readTestImage('tile.png');
+ $analyzer = new HeightAnalyzer();
+ $result = $analyzer->analyze($image);
+ $this->assertEquals(16, $result);
+ }
+}
diff --git a/tests/Drivers/Imagick/Analyzers/PixelColorAnalyzerTest.php b/tests/Unit/Drivers/Imagick/Analyzers/PixelColorAnalyzerTest.php
similarity index 54%
rename from tests/Drivers/Imagick/Analyzers/PixelColorAnalyzerTest.php
rename to tests/Unit/Drivers/Imagick/Analyzers/PixelColorAnalyzerTest.php
index 21396ab2..c4dbee2d 100644
--- a/tests/Drivers/Imagick/Analyzers/PixelColorAnalyzerTest.php
+++ b/tests/Unit/Drivers/Imagick/Analyzers/PixelColorAnalyzerTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Analyzers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Analyzers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Analyzers\PixelColorAnalyzer;
use Intervention\Image\Interfaces\ColorInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Analyzers\PixelColorAnalyzer
- * @covers \Intervention\Image\Drivers\Imagick\Analyzers\PixelColorAnalyzer
- */
-class PixelColorAnalyzerTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Analyzers\PixelColorAnalyzer::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Analyzers\PixelColorAnalyzer::class)]
+final class PixelColorAnalyzerTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Analyzers/PixelColorsAnalyzerTest.php b/tests/Unit/Drivers/Imagick/Analyzers/PixelColorsAnalyzerTest.php
similarity index 59%
rename from tests/Drivers/Imagick/Analyzers/PixelColorsAnalyzerTest.php
rename to tests/Unit/Drivers/Imagick/Analyzers/PixelColorsAnalyzerTest.php
index 13eb9baf..5f8e4ce3 100644
--- a/tests/Drivers/Imagick/Analyzers/PixelColorsAnalyzerTest.php
+++ b/tests/Unit/Drivers/Imagick/Analyzers/PixelColorsAnalyzerTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Analyzers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Analyzers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Analyzers\PixelColorsAnalyzer;
use Intervention\Image\Collection;
use Intervention\Image\Interfaces\ColorInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Analyzers\PixelColorsAnalyzer
- * @covers \Intervention\Image\Drivers\Imagick\Analyzers\PixelColorsAnalyzer
- */
-class PixelColorsAnalyzerTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Analyzers\PixelColorsAnalyzer::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Analyzers\PixelColorsAnalyzer::class)]
+final class PixelColorsAnalyzerTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Analyzers/ProfileAnalyzerTest.php b/tests/Unit/Drivers/Imagick/Analyzers/ProfileAnalyzerTest.php
similarity index 51%
rename from tests/Drivers/Imagick/Analyzers/ProfileAnalyzerTest.php
rename to tests/Unit/Drivers/Imagick/Analyzers/ProfileAnalyzerTest.php
index cb11bd7a..64bace9f 100644
--- a/tests/Drivers/Imagick/Analyzers/ProfileAnalyzerTest.php
+++ b/tests/Unit/Drivers/Imagick/Analyzers/ProfileAnalyzerTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Analyzers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Analyzers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Analyzers\ProfileAnalyzer;
use Intervention\Image\Exceptions\ColorException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Analyzers\ProfileAnalyzer
- * @covers \Intervention\Image\Drivers\Imagick\Analyzers\ProfileAnalyzer
- */
-class ProfileAnalyzerTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Analyzers\ProfileAnalyzer::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Analyzers\ProfileAnalyzer::class)]
+final class ProfileAnalyzerTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Analyzers/ResolutionAnalyzerTest.php b/tests/Unit/Drivers/Imagick/Analyzers/ResolutionAnalyzerTest.php
similarity index 51%
rename from tests/Drivers/Imagick/Analyzers/ResolutionAnalyzerTest.php
rename to tests/Unit/Drivers/Imagick/Analyzers/ResolutionAnalyzerTest.php
index 5275c729..4b5c0189 100644
--- a/tests/Drivers/Imagick/Analyzers/ResolutionAnalyzerTest.php
+++ b/tests/Unit/Drivers/Imagick/Analyzers/ResolutionAnalyzerTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Analyzers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Analyzers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Analyzers\ResolutionAnalyzer;
use Intervention\Image\Resolution;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Analyzers\ResolutionAnalyzer
- * @covers \Intervention\Image\Drivers\Imagick\Analyzers\ResolutionAnalyzer
- */
-class ResolutionAnalyzerTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Analyzers\ResolutionAnalyzer::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Analyzers\ResolutionAnalyzer::class)]
+final class ResolutionAnalyzerTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Unit/Drivers/Imagick/Analyzers/WidthAnalyzerTest.php b/tests/Unit/Drivers/Imagick/Analyzers/WidthAnalyzerTest.php
new file mode 100644
index 00000000..8e3e3ea9
--- /dev/null
+++ b/tests/Unit/Drivers/Imagick/Analyzers/WidthAnalyzerTest.php
@@ -0,0 +1,27 @@
+readTestImage('tile.png');
+ $analyzer = new WidthAnalyzer();
+ $result = $analyzer->analyze($image);
+ $this->assertEquals(16, $result);
+ }
+}
diff --git a/tests/Drivers/Imagick/ColorProcessorTest.php b/tests/Unit/Drivers/Imagick/ColorProcessorTest.php
similarity index 80%
rename from tests/Drivers/Imagick/ColorProcessorTest.php
rename to tests/Unit/Drivers/Imagick/ColorProcessorTest.php
index 2268d15d..55164ae9 100644
--- a/tests/Drivers/Imagick/ColorProcessorTest.php
+++ b/tests/Unit/Drivers/Imagick/ColorProcessorTest.php
@@ -2,15 +2,15 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick;
use ImagickPixel;
use Intervention\Image\Colors\Rgb\Color;
use Intervention\Image\Colors\Rgb\Colorspace;
use Intervention\Image\Drivers\Imagick\ColorProcessor;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class ColorProcessorTest extends TestCase
+final class ColorProcessorTest extends BaseTestCase
{
public function testColorToNative(): void
{
diff --git a/tests/Drivers/Imagick/CoreTest.php b/tests/Unit/Drivers/Imagick/CoreTest.php
similarity index 95%
rename from tests/Drivers/Imagick/CoreTest.php
rename to tests/Unit/Drivers/Imagick/CoreTest.php
index 902d18cd..1a6fa89a 100644
--- a/tests/Drivers/Imagick/CoreTest.php
+++ b/tests/Unit/Drivers/Imagick/CoreTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Frame;
use Intervention\Image\Exceptions\AnimationException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class CoreTest extends TestCase
+final class CoreTest extends BaseTestCase
{
protected Core $core;
- public function setUp(): void
+ protected function setUp(): void
{
$imagick = new Imagick();
diff --git a/tests/Drivers/Imagick/Decoders/Base64ImageDecoderTest.php b/tests/Unit/Drivers/Imagick/Decoders/Base64ImageDecoderTest.php
similarity index 61%
rename from tests/Drivers/Imagick/Decoders/Base64ImageDecoderTest.php
rename to tests/Unit/Drivers/Imagick/Decoders/Base64ImageDecoderTest.php
index dbf36a5f..a5c27f56 100644
--- a/tests/Drivers/Imagick/Decoders/Base64ImageDecoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Decoders/Base64ImageDecoderTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Imagick\Decoders\Base64ImageDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Drivers\Imagick\Decoders\Base64ImageDecoder
- */
-class Base64ImageDecoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Decoders\Base64ImageDecoder::class)]
+final class Base64ImageDecoderTest extends BaseTestCase
{
protected Base64ImageDecoder $decoder;
- public function setUp(): void
+ protected function setUp(): void
{
$this->decoder = new Base64ImageDecoder();
}
diff --git a/tests/Drivers/Imagick/Decoders/BinaryImageDecoderTest.php b/tests/Unit/Drivers/Imagick/Decoders/BinaryImageDecoderTest.php
similarity index 93%
rename from tests/Drivers/Imagick/Decoders/BinaryImageDecoderTest.php
rename to tests/Unit/Drivers/Imagick/Decoders/BinaryImageDecoderTest.php
index 3fe4713c..d087ae18 100644
--- a/tests/Drivers/Imagick/Decoders/BinaryImageDecoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Decoders/BinaryImageDecoderTest.php
@@ -2,17 +2,17 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Decoders;
use Intervention\Image\Colors\Cmyk\Colorspace as CmykColorspace;
use Intervention\Image\Colors\Rgb\Colorspace as RgbColorspace;
use Intervention\Image\Drivers\Imagick\Decoders\BinaryImageDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use stdClass;
-class BinaryImageDecoderTest extends TestCase
+final class BinaryImageDecoderTest extends BaseTestCase
{
public function testDecodePng(): void
{
diff --git a/tests/Drivers/Imagick/Decoders/DataUriImageDecoderTest.php b/tests/Unit/Drivers/Imagick/Decoders/DataUriImageDecoderTest.php
similarity index 71%
rename from tests/Drivers/Imagick/Decoders/DataUriImageDecoderTest.php
rename to tests/Unit/Drivers/Imagick/Decoders/DataUriImageDecoderTest.php
index a14ee580..e1ee4c63 100644
--- a/tests/Drivers/Imagick/Decoders/DataUriImageDecoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Decoders/DataUriImageDecoderTest.php
@@ -2,23 +2,23 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Imagick\Decoders\DataUriImageDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use stdClass;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Drivers\Imagick\Decoders\DataUriImageDecoder
- */
-class DataUriImageDecoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Decoders\DataUriImageDecoder::class)]
+final class DataUriImageDecoderTest extends BaseTestCase
{
protected DataUriImageDecoder $decoder;
- public function setUp(): void
+ protected function setUp(): void
{
$this->decoder = new DataUriImageDecoder();
}
diff --git a/tests/Drivers/Imagick/Decoders/FilePathImageDecoderTest.php b/tests/Unit/Drivers/Imagick/Decoders/FilePathImageDecoderTest.php
similarity index 70%
rename from tests/Drivers/Imagick/Decoders/FilePathImageDecoderTest.php
rename to tests/Unit/Drivers/Imagick/Decoders/FilePathImageDecoderTest.php
index ae470096..c199506f 100644
--- a/tests/Drivers/Imagick/Decoders/FilePathImageDecoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Decoders/FilePathImageDecoderTest.php
@@ -2,23 +2,23 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Imagick\Decoders\FilePathImageDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use stdClass;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Drivers\Imagick\Decoders\FilePathImageDecoder
- */
-class FilePathImageDecoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Decoders\FilePathImageDecoder::class)]
+final class FilePathImageDecoderTest extends BaseTestCase
{
protected FilePathImageDecoder $decoder;
- public function setUp(): void
+ protected function setUp(): void
{
$this->decoder = new FilePathImageDecoder();
}
diff --git a/tests/Drivers/Imagick/Decoders/FilePointerImageDecoderTest.php b/tests/Unit/Drivers/Imagick/Decoders/FilePointerImageDecoderTest.php
similarity index 55%
rename from tests/Drivers/Imagick/Decoders/FilePointerImageDecoderTest.php
rename to tests/Unit/Drivers/Imagick/Decoders/FilePointerImageDecoderTest.php
index 7b823897..b0cd97a9 100644
--- a/tests/Drivers/Imagick/Decoders/FilePointerImageDecoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Decoders/FilePointerImageDecoderTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Imagick\Decoders\FilePointerImageDecoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Drivers\Imagick\Decoders\FilePointerImageDecoder
- */
-class FilePointerImageDecoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Decoders\FilePointerImageDecoder::class)]
+final class FilePointerImageDecoderTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Decoders/ImageObjectDecoderTest.php b/tests/Unit/Drivers/Imagick/Decoders/ImageObjectDecoderTest.php
similarity index 54%
rename from tests/Drivers/Imagick/Decoders/ImageObjectDecoderTest.php
rename to tests/Unit/Drivers/Imagick/Decoders/ImageObjectDecoderTest.php
index 60857a29..1e4b6257 100644
--- a/tests/Drivers/Imagick/Decoders/ImageObjectDecoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Decoders/ImageObjectDecoderTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Imagick\Decoders\ImageObjectDecoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Drivers\Imagick\Decoders\ImageObjectDecoder
- */
-class ImageObjectDecoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Decoders\ImageObjectDecoder::class)]
+final class ImageObjectDecoderTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Decoders/SplFileInfoImageDecoderTest.php b/tests/Unit/Drivers/Imagick/Decoders/SplFileInfoImageDecoderTest.php
similarity index 51%
rename from tests/Drivers/Imagick/Decoders/SplFileInfoImageDecoderTest.php
rename to tests/Unit/Drivers/Imagick/Decoders/SplFileInfoImageDecoderTest.php
index 8f3c9378..ef2e4c92 100644
--- a/tests/Drivers/Imagick/Decoders/SplFileInfoImageDecoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Decoders/SplFileInfoImageDecoderTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Decoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Decoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Imagick\Decoders\SplFileInfoImageDecoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use SplFileInfo;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Drivers\Imagick\Decoders\SplFileInfoImageDecoder
- */
-class SplFileInfoImageDecoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Decoders\SplFileInfoImageDecoder::class)]
+final class SplFileInfoImageDecoderTest extends BaseTestCase
{
public function testDecode(): void
{
diff --git a/tests/Drivers/Imagick/DriverTest.php b/tests/Unit/Drivers/Imagick/DriverTest.php
similarity index 93%
rename from tests/Drivers/Imagick/DriverTest.php
rename to tests/Unit/Drivers/Imagick/DriverTest.php
index b497a4f0..c34f2da2 100644
--- a/tests/Drivers/Imagick/DriverTest.php
+++ b/tests/Unit/Drivers/Imagick/DriverTest.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick;
use Intervention\Image\Colors\Rgb\Colorspace;
use Intervention\Image\Colors\Rgb\Decoders\HexColorDecoder;
@@ -10,13 +10,13 @@ use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Interfaces\ColorInterface;
use Intervention\Image\Interfaces\ColorProcessorInterface;
use Intervention\Image\Interfaces\ImageInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class DriverTest extends TestCase
+final class DriverTest extends BaseTestCase
{
protected Driver $driver;
- public function setUp(): void
+ protected function setUp(): void
{
$this->driver = new Driver();
}
diff --git a/tests/Drivers/Imagick/Encoders/AvifEncoderTest.php b/tests/Unit/Drivers/Imagick/Encoders/AvifEncoderTest.php
similarity index 62%
rename from tests/Drivers/Imagick/Encoders/AvifEncoderTest.php
rename to tests/Unit/Drivers/Imagick/Encoders/AvifEncoderTest.php
index 69f7e43e..361b020b 100644
--- a/tests/Drivers/Imagick/Encoders/AvifEncoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Encoders/AvifEncoderTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\AvifEncoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Encoders\AvifEncoder
- * @covers \Intervention\Image\Drivers\Imagick\Encoders\AvifEncoder
- */
-class AvifEncoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Encoders\AvifEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\AvifEncoder::class)]
+final class AvifEncoderTest extends BaseTestCase
{
protected function getTestImage(): Image
{
diff --git a/tests/Drivers/Imagick/Encoders/BmpEncoderTest.php b/tests/Unit/Drivers/Imagick/Encoders/BmpEncoderTest.php
similarity index 65%
rename from tests/Drivers/Imagick/Encoders/BmpEncoderTest.php
rename to tests/Unit/Drivers/Imagick/Encoders/BmpEncoderTest.php
index a3080919..fead4565 100644
--- a/tests/Drivers/Imagick/Encoders/BmpEncoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Encoders/BmpEncoderTest.php
@@ -2,23 +2,23 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\BmpEncoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Encoders\BmpEncoder
- * @covers \Intervention\Image\Drivers\Imagick\Encoders\BmpEncoder
- */
-class BmpEncoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Encoders\BmpEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\BmpEncoder::class)]
+final class BmpEncoderTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Encoders/GifEncoderTest.php b/tests/Unit/Drivers/Imagick/Encoders/GifEncoderTest.php
similarity index 74%
rename from tests/Drivers/Imagick/Encoders/GifEncoderTest.php
rename to tests/Unit/Drivers/Imagick/Encoders/GifEncoderTest.php
index 3961dd98..79745c53 100644
--- a/tests/Drivers/Imagick/Encoders/GifEncoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Encoders/GifEncoderTest.php
@@ -2,23 +2,23 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\GifEncoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Encoders\GifEncoder
- * @covers \Intervention\Image\Drivers\Imagick\Encoders\GifEncoder
- */
-class GifEncoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Encoders\GifEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\GifEncoder::class)]
+final class GifEncoderTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Encoders/HeicEncoderTest.php b/tests/Unit/Drivers/Imagick/Encoders/HeicEncoderTest.php
similarity index 65%
rename from tests/Drivers/Imagick/Encoders/HeicEncoderTest.php
rename to tests/Unit/Drivers/Imagick/Encoders/HeicEncoderTest.php
index d4b171ad..c7ffd386 100644
--- a/tests/Drivers/Imagick/Encoders/HeicEncoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Encoders/HeicEncoderTest.php
@@ -2,23 +2,23 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\HeicEncoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Encoders\HeicEncoder
- * @covers \Intervention\Image\Drivers\Imagick\Encoders\HeicEncoder
- */
-final class HeicEncoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Encoders\HeicEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\HeicEncoder::class)]
+final class HeicEncoderTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Encoders/Jpeg2000EncoderTest.php b/tests/Unit/Drivers/Imagick/Encoders/Jpeg2000EncoderTest.php
similarity index 62%
rename from tests/Drivers/Imagick/Encoders/Jpeg2000EncoderTest.php
rename to tests/Unit/Drivers/Imagick/Encoders/Jpeg2000EncoderTest.php
index 0cca7ca8..e775e95b 100644
--- a/tests/Drivers/Imagick/Encoders/Jpeg2000EncoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Encoders/Jpeg2000EncoderTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\Jpeg2000Encoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Encoders\Jpeg2000Encoder
- * @covers \Intervention\Image\Drivers\Imagick\Encoders\Jpeg2000Encoder
- */
-class Jpeg2000EncoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Encoders\Jpeg2000Encoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\Jpeg2000Encoder::class)]
+final class Jpeg2000EncoderTest extends BaseTestCase
{
protected function getTestImage(): Image
{
diff --git a/tests/Drivers/Imagick/Encoders/JpegEncoderTest.php b/tests/Unit/Drivers/Imagick/Encoders/JpegEncoderTest.php
similarity index 62%
rename from tests/Drivers/Imagick/Encoders/JpegEncoderTest.php
rename to tests/Unit/Drivers/Imagick/Encoders/JpegEncoderTest.php
index 077d46be..ab6c7617 100644
--- a/tests/Drivers/Imagick/Encoders/JpegEncoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Encoders/JpegEncoderTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\JpegEncoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Encoders\JpegEncoder
- * @covers \Intervention\Image\Drivers\Imagick\Encoders\JpegEncoder
- */
-class JpegEncoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Encoders\JpegEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\JpegEncoder::class)]
+final class JpegEncoderTest extends BaseTestCase
{
protected function getTestImage(): Image
{
diff --git a/tests/Drivers/Imagick/Encoders/PngEncoderTest.php b/tests/Unit/Drivers/Imagick/Encoders/PngEncoderTest.php
similarity index 65%
rename from tests/Drivers/Imagick/Encoders/PngEncoderTest.php
rename to tests/Unit/Drivers/Imagick/Encoders/PngEncoderTest.php
index f58b38c7..c8c5a64e 100644
--- a/tests/Drivers/Imagick/Encoders/PngEncoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Encoders/PngEncoderTest.php
@@ -2,23 +2,23 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\PngEncoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Encoders\PngEncoder
- * @covers \Intervention\Image\Drivers\Imagick\Encoders\PngEncoder
- */
-final class PngEncoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Encoders\PngEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\PngEncoder::class)]
+final class PngEncoderTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Encoders/TiffEncoderTest.php b/tests/Unit/Drivers/Imagick/Encoders/TiffEncoderTest.php
similarity index 62%
rename from tests/Drivers/Imagick/Encoders/TiffEncoderTest.php
rename to tests/Unit/Drivers/Imagick/Encoders/TiffEncoderTest.php
index d03e8a40..d703c5fc 100644
--- a/tests/Drivers/Imagick/Encoders/TiffEncoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Encoders/TiffEncoderTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\TiffEncoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Encoders\TiffEncoder
- * @covers \Intervention\Image\Drivers\Imagick\Encoders\TiffEncoder
- */
-final class TiffEncoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Encoders\TiffEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\TiffEncoder::class)]
+final class TiffEncoderTest extends BaseTestCase
{
protected function getTestImage(): Image
{
diff --git a/tests/Drivers/Imagick/Encoders/WebpEncoderTest.php b/tests/Unit/Drivers/Imagick/Encoders/WebpEncoderTest.php
similarity index 62%
rename from tests/Drivers/Imagick/Encoders/WebpEncoderTest.php
rename to tests/Unit/Drivers/Imagick/Encoders/WebpEncoderTest.php
index 5a4991fc..a582483d 100644
--- a/tests/Drivers/Imagick/Encoders/WebpEncoderTest.php
+++ b/tests/Unit/Drivers/Imagick/Encoders/WebpEncoderTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Encoders;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Encoders;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Core;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Encoders\WebpEncoder;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Encoders\WebpEncoder
- * @covers \Intervention\Image\Drivers\Imagick\Encoders\WebpEncoder
- */
-final class WebpEncoderTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Encoders\WebpEncoder::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Encoders\WebpEncoder::class)]
+final class WebpEncoderTest extends BaseTestCase
{
protected function getTestImage(): Image
{
diff --git a/tests/Drivers/Imagick/FontProcessorTest.php b/tests/Unit/Drivers/Imagick/FontProcessorTest.php
similarity index 71%
rename from tests/Drivers/Imagick/FontProcessorTest.php
rename to tests/Unit/Drivers/Imagick/FontProcessorTest.php
index 8f5627e2..7feb5c90 100644
--- a/tests/Drivers/Imagick/FontProcessorTest.php
+++ b/tests/Unit/Drivers/Imagick/FontProcessorTest.php
@@ -2,13 +2,13 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick;
use Intervention\Image\Drivers\Imagick\FontProcessor;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Typography\Font;
-class FontProcessorTest extends TestCase
+final class FontProcessorTest extends BaseTestCase
{
public function testNativeFontSize(): void
{
diff --git a/tests/Drivers/Imagick/FrameTest.php b/tests/Unit/Drivers/Imagick/FrameTest.php
similarity index 81%
rename from tests/Drivers/Imagick/FrameTest.php
rename to tests/Unit/Drivers/Imagick/FrameTest.php
index c4ed6ac7..632dce40 100644
--- a/tests/Drivers/Imagick/FrameTest.php
+++ b/tests/Unit/Drivers/Imagick/FrameTest.php
@@ -2,21 +2,21 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Imagick;
use ImagickPixel;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Drivers\Imagick\Frame;
use Intervention\Image\Image;
use Intervention\Image\Geometry\Rectangle;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Drivers\Imagick\Frame
- */
-class FrameTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Frame::class)]
+final class FrameTest extends BaseTestCase
{
protected function getTestFrame(): Frame
{
@@ -41,7 +41,7 @@ class FrameTest extends TestCase
$this->assertInstanceOf(Rectangle::class, $frame->size());
}
- public function testSetGetDelay()
+ public function testSetGetDelay(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(1.25, $frame->delay());
@@ -52,7 +52,7 @@ class FrameTest extends TestCase
$this->assertEquals(250, $frame->native()->getImageDelay());
}
- public function testSetGetDispose()
+ public function testSetGetDispose(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(5, $frame->dispose());
@@ -62,7 +62,7 @@ class FrameTest extends TestCase
$this->assertEquals(100, $frame->dispose());
}
- public function testSetGetOffsetLeft()
+ public function testSetGetOffsetLeft(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(8, $frame->offsetLeft());
@@ -72,7 +72,7 @@ class FrameTest extends TestCase
$this->assertEquals(100, $frame->offsetLeft());
}
- public function testSetGetOffsetTop()
+ public function testSetGetOffsetTop(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(9, $frame->offsetTop());
@@ -82,7 +82,7 @@ class FrameTest extends TestCase
$this->assertEquals(100, $frame->offsetTop());
}
- public function testSetGetOffset()
+ public function testSetGetOffset(): void
{
$frame = $this->getTestFrame();
$this->assertEquals(8, $frame->offsetLeft());
diff --git a/tests/Drivers/Imagick/ImageTest.php b/tests/Unit/Drivers/Imagick/ImageTest.php
similarity index 98%
rename from tests/Drivers/Imagick/ImageTest.php
rename to tests/Unit/Drivers/Imagick/ImageTest.php
index 560ed608..927f195f 100644
--- a/tests/Drivers/Imagick/ImageTest.php
+++ b/tests/Unit/Drivers/Imagick/ImageTest.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick;
use Imagick;
use Intervention\Image\Analyzers\WidthAnalyzer;
@@ -24,19 +24,19 @@ use Intervention\Image\Interfaces\ImageInterface;
use Intervention\Image\Interfaces\ResolutionInterface;
use Intervention\Image\Interfaces\SizeInterface;
use Intervention\Image\Modifiers\GreyscaleModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-class ImageTest extends TestCase
+final class ImageTest extends BaseTestCase
{
use CanCreateImagickTestImage;
protected Image $image;
- public function setUp(): void
+ protected function setUp(): void
{
$imagick = new Imagick();
- $imagick->readImage(__DIR__ . '/../../images/animation.gif');
+ $imagick->readImage($this->getTestImagePath('animation.gif'));
$this->image = new Image(
new Driver(),
new Core($imagick),
diff --git a/tests/Drivers/Imagick/InputHandlerTest.php b/tests/Unit/Drivers/Imagick/InputHandlerTest.php
similarity index 87%
rename from tests/Drivers/Imagick/InputHandlerTest.php
rename to tests/Unit/Drivers/Imagick/InputHandlerTest.php
index 79e3de18..8131c0bb 100644
--- a/tests/Drivers/Imagick/InputHandlerTest.php
+++ b/tests/Unit/Drivers/Imagick/InputHandlerTest.php
@@ -2,22 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Cmyk\Color as CmykColor;
use Intervention\Image\Colors\Hsv\Color as HsvColor;
use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Drivers\Imagick\InputHandler;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Image;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use SplFileInfo;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Drivers\Imagick\InputHandler
- */
-class InputHandlerTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\InputHandler::class)]
+final class InputHandlerTest extends BaseTestCase
{
public function testHandleEmptyString(): void
{
@@ -29,7 +29,7 @@ class InputHandlerTest extends TestCase
public function testHandleBinaryImage(): void
{
$handler = new InputHandler();
- $input = file_get_contents(__DIR__ . '/../../images/animation.gif');
+ $input = file_get_contents($this->getTestImagePath('animation.gif'));
$result = $handler->handle($input);
$this->assertInstanceOf(Image::class, $result);
}
@@ -37,7 +37,7 @@ class InputHandlerTest extends TestCase
public function testHandleSplFileInfo(): void
{
$handler = new InputHandler();
- $input = new SplFileInfo(__DIR__ . '/../../images/test.jpg');
+ $input = new SplFileInfo($this->getTestImagePath('test.jpg'));
$result = $handler->handle($input);
$this->assertInstanceOf(Image::class, $result);
}
@@ -45,7 +45,7 @@ class InputHandlerTest extends TestCase
public function testHandleFilePathImage(): void
{
$handler = new InputHandler();
- $input = __DIR__ . '/../../images/animation.gif';
+ $input = $this->getTestImagePath('animation.gif');
$result = $handler->handle($input);
$this->assertInstanceOf(Image::class, $result);
}
@@ -53,7 +53,7 @@ class InputHandlerTest extends TestCase
public function testHandleBase64Image(): void
{
$handler = new InputHandler();
- $input = base64_encode(file_get_contents(__DIR__ . '/../../images/animation.gif'));
+ $input = base64_encode(file_get_contents($this->getTestImagePath('animation.gif')));
$result = $handler->handle($input);
$this->assertInstanceOf(Image::class, $result);
}
diff --git a/tests/Drivers/Imagick/Modifiers/BlurModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/BlurModifierTest.php
similarity index 52%
rename from tests/Drivers/Imagick/Modifiers/BlurModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/BlurModifierTest.php
index a2d3a6a8..99ff1213 100644
--- a/tests/Drivers/Imagick/Modifiers/BlurModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/BlurModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\BlurModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\BlurModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\BlurModifier
- */
-class BlurModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\BlurModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\BlurModifier::class)]
+final class BlurModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/BrightnessModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/BrightnessModifierTest.php
similarity index 51%
rename from tests/Drivers/Imagick/Modifiers/BrightnessModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/BrightnessModifierTest.php
index b5184ed2..b09afc8f 100644
--- a/tests/Drivers/Imagick/Modifiers/BrightnessModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/BrightnessModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\BrightnessModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\BrightnessModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\BrightnessModifier
- */
-class BrightnessModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\BrightnessModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\BrightnessModifier::class)]
+final class BrightnessModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/ColorizeModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/ColorizeModifierTest.php
similarity index 52%
rename from tests/Drivers/Imagick/Modifiers/ColorizeModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/ColorizeModifierTest.php
index 5426615e..27edba59 100644
--- a/tests/Drivers/Imagick/Modifiers/ColorizeModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/ColorizeModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ColorizeModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\ColorizeModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\ColorizeModifier
- */
-class ColorizeModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\ColorizeModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\ColorizeModifier::class)]
+final class ColorizeModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/ContainModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/ContainModifierTest.php
similarity index 70%
rename from tests/Drivers/Imagick/Modifiers/ContainModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/ContainModifierTest.php
index e7701644..164d80f9 100644
--- a/tests/Drivers/Imagick/Modifiers/ContainModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/ContainModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ContainModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\ContainModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\ContainModifier
- */
-class ContainModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\ContainModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\ContainModifier::class)]
+final class ContainModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/ContrastModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/ContrastModifierTest.php
similarity index 51%
rename from tests/Drivers/Imagick/Modifiers/ContrastModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/ContrastModifierTest.php
index b89472f0..fb14365a 100644
--- a/tests/Drivers/Imagick/Modifiers/ContrastModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/ContrastModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ContrastModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\ContrastModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\ContrastModifier
- */
-class ContrastModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\ContrastModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\ContrastModifier::class)]
+final class ContrastModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/CoverModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/CoverModifierTest.php
similarity index 65%
rename from tests/Drivers/Imagick/Modifiers/CoverModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/CoverModifierTest.php
index 46ce406e..15c70d6e 100644
--- a/tests/Drivers/Imagick/Modifiers/CoverModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/CoverModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\CoverModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\CoverModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\CoverModifier
- */
-class CoverModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\CoverModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\CoverModifier::class)]
+final class CoverModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/CropModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/CropModifierTest.php
similarity index 74%
rename from tests/Drivers/Imagick/Modifiers/CropModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/CropModifierTest.php
index 5dec1161..b6b89a5e 100644
--- a/tests/Drivers/Imagick/Modifiers/CropModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/CropModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\CropModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\CropModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\CropModifier
- */
-class CropModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\CropModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\CropModifier::class)]
+final class CropModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/DrawEllipseModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/DrawEllipseModifierTest.php
similarity index 59%
rename from tests/Drivers/Imagick/Modifiers/DrawEllipseModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/DrawEllipseModifierTest.php
index 76f790c4..bbe72ea5 100644
--- a/tests/Drivers/Imagick/Modifiers/DrawEllipseModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/DrawEllipseModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawEllipseModifier;
use Intervention\Image\Geometry\Ellipse;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\DrawEllipseModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\DrawEllipseModifier
- */
-class DrawEllipseModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawEllipseModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\DrawEllipseModifier::class)]
+final class DrawEllipseModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/DrawLineModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/DrawLineModifierTest.php
similarity index 59%
rename from tests/Drivers/Imagick/Modifiers/DrawLineModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/DrawLineModifierTest.php
index 5e9199e6..7f52e945 100644
--- a/tests/Drivers/Imagick/Modifiers/DrawLineModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/DrawLineModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawLineModifier;
use Intervention\Image\Geometry\Line;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\DrawLineModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\DrawLineModifier
- */
-class DrawLineModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawLineModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\DrawLineModifier::class)]
+final class DrawLineModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/DrawPixelModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/DrawPixelModifierTest.php
similarity index 54%
rename from tests/Drivers/Imagick/Modifiers/DrawPixelModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/DrawPixelModifierTest.php
index 962dccf2..a4a906eb 100644
--- a/tests/Drivers/Imagick/Modifiers/DrawPixelModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/DrawPixelModifierTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawPixelModifier;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\DrawPixelModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\DrawPixelModifier
- */
-class DrawPixelModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawPixelModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\DrawPixelModifier::class)]
+final class DrawPixelModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/DrawPolygonModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/DrawPolygonModifierTest.php
similarity index 60%
rename from tests/Drivers/Imagick/Modifiers/DrawPolygonModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/DrawPolygonModifierTest.php
index 2699ca0a..19da9a31 100644
--- a/tests/Drivers/Imagick/Modifiers/DrawPolygonModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/DrawPolygonModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawPolygonModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Polygon;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\DrawPolygonModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\DrawPolygonModifier
- */
-class DrawPolygonModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawPolygonModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\DrawPolygonModifier::class)]
+final class DrawPolygonModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/DrawRectangleModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/DrawRectangleModifierTest.php
similarity index 59%
rename from tests/Drivers/Imagick/Modifiers/DrawRectangleModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/DrawRectangleModifierTest.php
index 86f255f5..7a7627f4 100644
--- a/tests/Drivers/Imagick/Modifiers/DrawRectangleModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/DrawRectangleModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\DrawRectangleModifier;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Rectangle;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\DrawRectangleModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\DrawRectangleModifier
- */
-class DrawRectangleModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\DrawRectangleModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\DrawRectangleModifier::class)]
+final class DrawRectangleModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/FillModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/FillModifierTest.php
similarity index 73%
rename from tests/Drivers/Imagick/Modifiers/FillModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/FillModifierTest.php
index cfc9b73d..3d33cb2f 100644
--- a/tests/Drivers/Imagick/Modifiers/FillModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/FillModifierTest.php
@@ -2,20 +2,20 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Colors\Rgb\Color;
use Intervention\Image\Modifiers\FillModifier;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\FillModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\FillModifier
- */
-class FillModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\FillModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\FillModifier::class)]
+final class FillModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/FlipFlopModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/FlipFlopModifierTest.php
similarity index 58%
rename from tests/Drivers/Imagick/Modifiers/FlipFlopModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/FlipFlopModifierTest.php
index 7558f3fc..32c72f79 100644
--- a/tests/Drivers/Imagick/Modifiers/FlipFlopModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/FlipFlopModifierTest.php
@@ -2,21 +2,21 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\FlipModifier;
use Intervention\Image\Modifiers\FlopModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\FlipModifier
- * @covers \Intervention\Image\Modifiers\FlopModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\FlipModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\FlopModifier
- */
-class FlipFlopModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\FlipModifier::class)]
+#[CoversClass(\Intervention\Image\Modifiers\FlopModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\FlipModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\FlopModifier::class)]
+final class FlipFlopModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/GammaModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/GammaModifierTest.php
similarity index 51%
rename from tests/Drivers/Imagick/Modifiers/GammaModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/GammaModifierTest.php
index 99df34d3..675b7e9f 100644
--- a/tests/Drivers/Imagick/Modifiers/GammaModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/GammaModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\GammaModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\GammaModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\GammaModifier
- */
-class GammaModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\GammaModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\GammaModifier::class)]
+final class GammaModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/GreyscaleModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/GreyscaleModifierTest.php
similarity index 51%
rename from tests/Drivers/Imagick/Modifiers/GreyscaleModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/GreyscaleModifierTest.php
index 73c17be2..dca2a06e 100644
--- a/tests/Drivers/Imagick/Modifiers/GreyscaleModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/GreyscaleModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\GreyscaleModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\GreyscaleModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\GreyscaleModifier
- */
-class GreyscaleModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\GreyscaleModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\GreyscaleModifier::class)]
+final class GreyscaleModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/InvertModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/InvertModifierTest.php
similarity index 58%
rename from tests/Drivers/Imagick/Modifiers/InvertModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/InvertModifierTest.php
index 034a777c..8b77ff4a 100644
--- a/tests/Drivers/Imagick/Modifiers/InvertModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/InvertModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\InvertModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\InvertModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\InvertModifier
- */
-class InvertModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\InvertModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\InvertModifier::class)]
+final class InvertModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/PixelateModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/PixelateModifierTest.php
similarity index 64%
rename from tests/Drivers/Imagick/Modifiers/PixelateModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/PixelateModifierTest.php
index b7305e97..49f0ade8 100644
--- a/tests/Drivers/Imagick/Modifiers/PixelateModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/PixelateModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\PixelateModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\PixelateModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\PixelateModifier
- */
-class PixelateModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\PixelateModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\PixelateModifier::class)]
+final class PixelateModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/PlaceModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/PlaceModifierTest.php
similarity index 52%
rename from tests/Drivers/Imagick/Modifiers/PlaceModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/PlaceModifierTest.php
index 0bd415dd..42668aa5 100644
--- a/tests/Drivers/Imagick/Modifiers/PlaceModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/PlaceModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\PlaceModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\BlurModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\PlaceModifier
- */
-class PlaceModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\BlurModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\PlaceModifier::class)]
+final class PlaceModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
@@ -21,7 +21,7 @@ class PlaceModifierTest extends TestCase
{
$image = $this->readTestImage('test.jpg');
$this->assertEquals('febc44', $image->pickColor(300, 25)->toHex());
- $image->modify(new PlaceModifier(__DIR__ . '/../../../images/circle.png', 'top-right', 0, 0));
+ $image->modify(new PlaceModifier($this->getTestImagePath('circle.png'), 'top-right', 0, 0));
$this->assertEquals('33260e', $image->pickColor(300, 25)->toHex());
}
@@ -29,7 +29,7 @@ class PlaceModifierTest extends TestCase
{
$image = $this->readTestImage('test.jpg');
$this->assertEquals('febc44', $image->pickColor(300, 25)->toHex());
- $image->modify(new PlaceModifier(__DIR__ . '/../../../images/circle.png', 'top-right', 0, 0, 50));
+ $image->modify(new PlaceModifier($this->getTestImagePath('circle.png'), 'top-right', 0, 0, 50));
$this->assertEquals('987129', $image->pickColor(300, 25)->toHex());
}
}
diff --git a/tests/Drivers/Imagick/Modifiers/QuantizeColorsModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/QuantizeColorsModifierTest.php
similarity index 70%
rename from tests/Drivers/Imagick/Modifiers/QuantizeColorsModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/QuantizeColorsModifierTest.php
index 29bc62ef..fe7d9792 100644
--- a/tests/Drivers/Imagick/Modifiers/QuantizeColorsModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/QuantizeColorsModifierTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Exceptions\InputException;
use Intervention\Image\Modifiers\QuantizeColorsModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\QuantizeColorsModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\QuantizeColorsModifier
- */
-class QuantizeColorsModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\QuantizeColorsModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\QuantizeColorsModifier::class)]
+final class QuantizeColorsModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/RemoveAnimationModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/RemoveAnimationModifierTest.php
similarity index 70%
rename from tests/Drivers/Imagick/Modifiers/RemoveAnimationModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/RemoveAnimationModifierTest.php
index c12fb96e..4f73dd0f 100644
--- a/tests/Drivers/Imagick/Modifiers/RemoveAnimationModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/RemoveAnimationModifierTest.php
@@ -2,19 +2,19 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Exceptions\InputException;
use Intervention\Image\Modifiers\RemoveAnimationModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\RemoveAnimationModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\RemoveAnimationModifier
- */
-class RemoveAnimationModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\RemoveAnimationModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\RemoveAnimationModifier::class)]
+final class RemoveAnimationModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php
similarity index 81%
rename from tests/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php
index fa96f1f4..17d27df6 100644
--- a/tests/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/ResizeCanvasModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ResizeCanvasModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\ResizeCanvasModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\ResizeCanvasModifier
- */
-class ResizeCanvasModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\ResizeCanvasModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\ResizeCanvasModifier::class)]
+final class ResizeCanvasModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php
similarity index 75%
rename from tests/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php
index e52285f4..a68fb8d2 100644
--- a/tests/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/ResizeCanvasRelativeModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ResizeCanvasRelativeModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\ResizeCanvasRelativeModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\ResizeCanvasRelativeModifier
- */
-class ResizeCanvasRelativeModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\ResizeCanvasRelativeModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\ResizeCanvasRelativeModifier::class)]
+final class ResizeCanvasRelativeModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/ResizeModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/ResizeModifierTest.php
similarity index 58%
rename from tests/Drivers/Imagick/Modifiers/ResizeModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/ResizeModifierTest.php
index 76beb952..a38f4cd7 100644
--- a/tests/Drivers/Imagick/Modifiers/ResizeModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/ResizeModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ResizeModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\ResizeModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\ResizeModifier
- */
-class ResizeModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\ResizeModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\ResizeModifier::class)]
+final class ResizeModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/ResolutionModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/ResolutionModifierTest.php
similarity index 56%
rename from tests/Drivers/Imagick/Modifiers/ResolutionModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/ResolutionModifierTest.php
index 6aa74e65..769d90b6 100644
--- a/tests/Drivers/Imagick/Modifiers/ResolutionModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/ResolutionModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\ResolutionModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\ResolutionModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\ResolutionModifier
- */
-class ResolutionModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\ResolutionModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\ResolutionModifier::class)]
+final class ResolutionModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/RotateModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/RotateModifierTest.php
similarity index 55%
rename from tests/Drivers/Imagick/Modifiers/RotateModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/RotateModifierTest.php
index a4547b75..7e410ad7 100644
--- a/tests/Drivers/Imagick/Modifiers/RotateModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/RotateModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\RotateModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\RotateModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\RotateModifier
- */
-class RotateModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\RotateModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\RotateModifier::class)]
+final class RotateModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/Drivers/Imagick/Modifiers/SharpenModifierTest.php b/tests/Unit/Drivers/Imagick/Modifiers/SharpenModifierTest.php
similarity index 51%
rename from tests/Drivers/Imagick/Modifiers/SharpenModifierTest.php
rename to tests/Unit/Drivers/Imagick/Modifiers/SharpenModifierTest.php
index 06ff2f33..964c1467 100644
--- a/tests/Drivers/Imagick/Modifiers/SharpenModifierTest.php
+++ b/tests/Unit/Drivers/Imagick/Modifiers/SharpenModifierTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Drivers\Imagick\Modifiers;
+namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Modifiers;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Modifiers\SharpenModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Tests\Traits\CanCreateImagickTestImage;
-/**
- * @requires extension imagick
- * @covers \Intervention\Image\Modifiers\SharpenModifier
- * @covers \Intervention\Image\Drivers\Imagick\Modifiers\SharpenModifier
- */
-class SharpenModifierTest extends TestCase
+#[RequiresPhpExtension('imagick')]
+#[CoversClass(\Intervention\Image\Modifiers\SharpenModifier::class)]
+#[CoversClass(\Intervention\Image\Drivers\Imagick\Modifiers\SharpenModifier::class)]
+final class SharpenModifierTest extends BaseTestCase
{
use CanCreateImagickTestImage;
diff --git a/tests/EncodedImageTest.php b/tests/Unit/EncodedImageTest.php
similarity index 83%
rename from tests/EncodedImageTest.php
rename to tests/Unit/EncodedImageTest.php
index 5f5f9758..15bab41b 100644
--- a/tests/EncodedImageTest.php
+++ b/tests/Unit/EncodedImageTest.php
@@ -2,16 +2,16 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests;
+namespace Intervention\Image\Tests\Unit;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\EncodedImage;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\EncodedImage
- */
-class EncodedImageTest extends TestCase
+#[CoversClass(\Intervention\Image\EncodedImage::class)]
+final class EncodedImageTest extends BaseTestCase
{
- public function testConstructor()
+ public function testConstructor(): void
{
$image = new EncodedImage('foo', 'bar');
$this->assertInstanceOf(EncodedImage::class, $image);
diff --git a/tests/Encoders/FileExtensionEncoderTest.php b/tests/Unit/Encoders/FileExtensionEncoderTest.php
similarity index 93%
rename from tests/Encoders/FileExtensionEncoderTest.php
rename to tests/Unit/Encoders/FileExtensionEncoderTest.php
index e46ad337..01dfae23 100644
--- a/tests/Encoders/FileExtensionEncoderTest.php
+++ b/tests/Unit/Encoders/FileExtensionEncoderTest.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Encoders;
+namespace Intervention\Image\Tests\Unit\Encoders;
use Intervention\Image\Encoders\AvifEncoder;
use Intervention\Image\Encoders\BmpEncoder;
@@ -15,10 +15,10 @@ use Intervention\Image\Encoders\PngEncoder;
use Intervention\Image\Encoders\TiffEncoder;
use Intervention\Image\Encoders\WebpEncoder;
use Intervention\Image\Exceptions\EncoderException;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-class FileExtensionEncoderTest extends TestCase
+final class FileExtensionEncoderTest extends BaseTestCase
{
public function testEncoderByFileExtension(): void
{
diff --git a/tests/Encoders/SpecializableEncoderTest.php b/tests/Unit/Encoders/SpecializableEncoderTest.php
similarity index 88%
rename from tests/Encoders/SpecializableEncoderTest.php
rename to tests/Unit/Encoders/SpecializableEncoderTest.php
index a6eb7c91..f6a63f5a 100644
--- a/tests/Encoders/SpecializableEncoderTest.php
+++ b/tests/Unit/Encoders/SpecializableEncoderTest.php
@@ -2,15 +2,15 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Encoders;
+namespace Intervention\Image\Tests\Unit\Encoders;
use Intervention\Image\EncodedImage;
use Intervention\Image\Encoders\SpecializableEncoder;
use Intervention\Image\Interfaces\ImageInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-class SpecializableEncoderTest extends TestCase
+final class SpecializableEncoderTest extends BaseTestCase
{
public function testConstructorDefault(): void
{
diff --git a/tests/FileTest.php b/tests/Unit/FileTest.php
similarity index 81%
rename from tests/FileTest.php
rename to tests/Unit/FileTest.php
index 4428bd26..7d407907 100644
--- a/tests/FileTest.php
+++ b/tests/Unit/FileTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests;
+namespace Intervention\Image\Tests\Unit;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\File;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\File
- */
-class FileTest extends TestCase
+#[CoversClass(\Intervention\Image\File::class)]
+final class FileTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Geometry/CircleTest.php b/tests/Unit/Geometry/CircleTest.php
similarity index 90%
rename from tests/Geometry/CircleTest.php
rename to tests/Unit/Geometry/CircleTest.php
index 597a4539..15512025 100644
--- a/tests/Geometry/CircleTest.php
+++ b/tests/Unit/Geometry/CircleTest.php
@@ -2,13 +2,13 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry;
+namespace Intervention\Image\Tests\Unit\Geometry;
use Intervention\Image\Geometry\Circle;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class CircleTest extends TestCase
+final class CircleTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Geometry/EllipseTest.php b/tests/Unit/Geometry/EllipseTest.php
similarity index 93%
rename from tests/Geometry/EllipseTest.php
rename to tests/Unit/Geometry/EllipseTest.php
index 1cb2bf03..31e8c7bc 100644
--- a/tests/Geometry/EllipseTest.php
+++ b/tests/Unit/Geometry/EllipseTest.php
@@ -2,13 +2,13 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry;
+namespace Intervention\Image\Tests\Unit\Geometry;
use Intervention\Image\Geometry\Ellipse;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class EllipseTest extends TestCase
+final class EllipseTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Geometry/Factories/CircleFactoryTest.php b/tests/Unit/Geometry/Factories/CircleFactoryTest.php
similarity index 85%
rename from tests/Geometry/Factories/CircleFactoryTest.php
rename to tests/Unit/Geometry/Factories/CircleFactoryTest.php
index a9e4fa19..2dbc9524 100644
--- a/tests/Geometry/Factories/CircleFactoryTest.php
+++ b/tests/Unit/Geometry/Factories/CircleFactoryTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry\Factories;
+namespace Intervention\Image\Tests\Unit\Geometry\Factories;
use Intervention\Image\Geometry\Ellipse;
use Intervention\Image\Geometry\Factories\CircleFactory;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class CircleFactoryTest extends TestCase
+final class CircleFactoryTest extends BaseTestCase
{
public function testFactoryCallback(): void
{
diff --git a/tests/Geometry/Factories/EllipseFactoryTest.php b/tests/Unit/Geometry/Factories/EllipseFactoryTest.php
similarity index 86%
rename from tests/Geometry/Factories/EllipseFactoryTest.php
rename to tests/Unit/Geometry/Factories/EllipseFactoryTest.php
index 43cb04e6..e5e37c26 100644
--- a/tests/Geometry/Factories/EllipseFactoryTest.php
+++ b/tests/Unit/Geometry/Factories/EllipseFactoryTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry\Factories;
+namespace Intervention\Image\Tests\Unit\Geometry\Factories;
use Intervention\Image\Geometry\Ellipse;
use Intervention\Image\Geometry\Factories\EllipseFactory;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class EllipseFactoryTest extends TestCase
+final class EllipseFactoryTest extends BaseTestCase
{
public function testFactoryCallback(): void
{
diff --git a/tests/Geometry/Factories/LineFactoryTest.php b/tests/Unit/Geometry/Factories/LineFactoryTest.php
similarity index 85%
rename from tests/Geometry/Factories/LineFactoryTest.php
rename to tests/Unit/Geometry/Factories/LineFactoryTest.php
index 6874dbc4..6870fe2f 100644
--- a/tests/Geometry/Factories/LineFactoryTest.php
+++ b/tests/Unit/Geometry/Factories/LineFactoryTest.php
@@ -2,13 +2,13 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry\Factories;
+namespace Intervention\Image\Tests\Unit\Geometry\Factories;
use Intervention\Image\Geometry\Factories\LineFactory;
use Intervention\Image\Geometry\Line;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class LineFactoryTest extends TestCase
+final class LineFactoryTest extends BaseTestCase
{
public function testFactoryCallback(): void
{
diff --git a/tests/Geometry/Factories/PolygonFactoryTest.php b/tests/Unit/Geometry/Factories/PolygonFactoryTest.php
similarity index 84%
rename from tests/Geometry/Factories/PolygonFactoryTest.php
rename to tests/Unit/Geometry/Factories/PolygonFactoryTest.php
index 8e6a5ec1..ebc41f02 100644
--- a/tests/Geometry/Factories/PolygonFactoryTest.php
+++ b/tests/Unit/Geometry/Factories/PolygonFactoryTest.php
@@ -2,13 +2,13 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry\Factories;
+namespace Intervention\Image\Tests\Unit\Geometry\Factories;
use Intervention\Image\Geometry\Factories\PolygonFactory;
use Intervention\Image\Geometry\Polygon;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class PolygonFactoryTest extends TestCase
+final class PolygonFactoryTest extends BaseTestCase
{
public function testFactoryCallback(): void
{
diff --git a/tests/Geometry/Factories/RectangleFactoryTest.php b/tests/Unit/Geometry/Factories/RectangleFactoryTest.php
similarity index 86%
rename from tests/Geometry/Factories/RectangleFactoryTest.php
rename to tests/Unit/Geometry/Factories/RectangleFactoryTest.php
index 236d0a8a..79f86959 100644
--- a/tests/Geometry/Factories/RectangleFactoryTest.php
+++ b/tests/Unit/Geometry/Factories/RectangleFactoryTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry\Factories;
+namespace Intervention\Image\Tests\Unit\Geometry\Factories;
use Intervention\Image\Geometry\Factories\RectangleFactory;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Rectangle;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class RectangleFactoryTest extends TestCase
+final class RectangleFactoryTest extends BaseTestCase
{
public function testFactoryCallback(): void
{
diff --git a/tests/Geometry/LineTest.php b/tests/Unit/Geometry/LineTest.php
similarity index 94%
rename from tests/Geometry/LineTest.php
rename to tests/Unit/Geometry/LineTest.php
index 0e3488dc..c0153a98 100644
--- a/tests/Geometry/LineTest.php
+++ b/tests/Unit/Geometry/LineTest.php
@@ -2,13 +2,13 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry;
+namespace Intervention\Image\Tests\Unit\Geometry;
use Intervention\Image\Geometry\Line;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class LineTest extends TestCase
+final class LineTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Geometry/PixelTest.php b/tests/Unit/Geometry/PixelTest.php
similarity index 67%
rename from tests/Geometry/PixelTest.php
rename to tests/Unit/Geometry/PixelTest.php
index 3653e7cb..5115dde8 100644
--- a/tests/Geometry/PixelTest.php
+++ b/tests/Unit/Geometry/PixelTest.php
@@ -2,17 +2,16 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry;
+namespace Intervention\Image\Tests\Unit\Geometry;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Geometry\Pixel;
use Intervention\Image\Interfaces\ColorInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-/**
- * @covers \Intervention\Image\Geometry\Pixel
- */
-class PixelTest extends TestCase
+#[CoversClass(\Intervention\Image\Geometry\Pixel::class)]
+final class PixelTest extends BaseTestCase
{
public function testSetGetBackground(): void
{
diff --git a/tests/Geometry/PointTest.php b/tests/Unit/Geometry/PointTest.php
similarity index 77%
rename from tests/Geometry/PointTest.php
rename to tests/Unit/Geometry/PointTest.php
index f9655079..002ca0a6 100644
--- a/tests/Geometry/PointTest.php
+++ b/tests/Unit/Geometry/PointTest.php
@@ -2,17 +2,16 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry;
+namespace Intervention\Image\Tests\Unit\Geometry;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Geometry\Point
- */
-class PointTest extends TestCase
+#[CoversClass(\Intervention\Image\Geometry\Point::class)]
+final class PointTest extends BaseTestCase
{
- public function testConstructor()
+ public function testConstructor(): void
{
$point = new Point();
$this->assertInstanceOf(Point::class, $point);
@@ -20,7 +19,7 @@ class PointTest extends TestCase
$this->assertEquals(0, $point->y());
}
- public function testConstructorWithParameters()
+ public function testConstructorWithParameters(): void
{
$point = new Point(40, 50);
$this->assertInstanceOf(Point::class, $point);
@@ -28,7 +27,7 @@ class PointTest extends TestCase
$this->assertEquals(50, $point->y());
}
- public function testGetSetX()
+ public function testGetSetX(): void
{
$point = new Point(0, 0);
$point->setX(100);
@@ -36,7 +35,7 @@ class PointTest extends TestCase
$this->assertEquals(0, $point->y());
}
- public function testGetSetY()
+ public function testGetSetY(): void
{
$point = new Point(0, 0);
$point->setY(100);
@@ -44,7 +43,7 @@ class PointTest extends TestCase
$this->assertEquals(100, $point->y());
}
- public function testmoveX()
+ public function testmoveX(): void
{
$point = new Point(50, 50);
$point->moveX(100);
@@ -52,7 +51,7 @@ class PointTest extends TestCase
$this->assertEquals(50, $point->y());
}
- public function testmoveY()
+ public function testmoveY(): void
{
$point = new Point(50, 50);
$point->moveY(100);
@@ -60,7 +59,7 @@ class PointTest extends TestCase
$this->assertEquals(150, $point->y());
}
- public function testSetPosition()
+ public function testSetPosition(): void
{
$point = new Point(0, 0);
$point->setPosition(100, 200);
@@ -68,7 +67,7 @@ class PointTest extends TestCase
$this->assertEquals(200, $point->y());
}
- public function testRotate()
+ public function testRotate(): void
{
$point = new Point(30, 0);
$point->rotate(90, new Point(0, 0));
diff --git a/tests/Geometry/PolygonTest.php b/tests/Unit/Geometry/PolygonTest.php
similarity index 98%
rename from tests/Geometry/PolygonTest.php
rename to tests/Unit/Geometry/PolygonTest.php
index 6c3b6cab..73e5890b 100644
--- a/tests/Geometry/PolygonTest.php
+++ b/tests/Unit/Geometry/PolygonTest.php
@@ -2,16 +2,15 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry;
+namespace Intervention\Image\Tests\Unit\Geometry;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Polygon;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Geometry\Polygon
- */
-class PolygonTest extends TestCase
+#[CoversClass(\Intervention\Image\Geometry\Polygon::class)]
+final class PolygonTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Geometry/RectangleResizerTest.php b/tests/Unit/Geometry/RectangleResizerTest.php
similarity index 96%
rename from tests/Geometry/RectangleResizerTest.php
rename to tests/Unit/Geometry/RectangleResizerTest.php
index 6f54a9f8..f5046d1b 100644
--- a/tests/Geometry/RectangleResizerTest.php
+++ b/tests/Unit/Geometry/RectangleResizerTest.php
@@ -2,17 +2,17 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry;
+namespace Intervention\Image\Tests\Unit\Geometry;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\DataProvider;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Rectangle;
use Intervention\Image\Geometry\Tools\RectangleResizer;
use PHPUnit\Framework\TestCase;
-/**
- * @covers \Intervention\Image\Geometry\Tools\RectangleResizer
- */
-class RectangleResizerTest extends TestCase
+#[CoversClass(\Intervention\Image\Geometry\Tools\RectangleResizer::class)]
+final class RectangleResizerTest extends TestCase
{
public function testMake(): void
{
@@ -50,7 +50,7 @@ class RectangleResizerTest extends TestCase
$this->assertInstanceOf(RectangleResizer::class, $resizer);
}
- public function testResize()
+ public function testResize(): void
{
$size = new Rectangle(300, 200);
$resizer = new RectangleResizer();
@@ -80,7 +80,7 @@ class RectangleResizerTest extends TestCase
$this->assertEquals(10, $result->height());
}
- public function testResizeDown()
+ public function testResizeDown(): void
{
// 800x600 > 1000x2000 = 800x600
$size = new Rectangle(800, 600);
@@ -135,7 +135,7 @@ class RectangleResizerTest extends TestCase
$this->assertEquals(600, $result->height());
}
- public function testScale()
+ public function testScale(): void
{
// 800x600 > 1000x2000 = 1000x750
$size = new Rectangle(800, 600);
@@ -280,7 +280,7 @@ class RectangleResizerTest extends TestCase
$this->assertEquals(300, $result->height());
}
- public function testScaleDown()
+ public function testScaleDown(): void
{
$size = new Rectangle(800, 600);
$resizer = new RectangleResizer();
@@ -381,9 +381,7 @@ class RectangleResizerTest extends TestCase
$this->assertEquals(300, $result->height());
}
- /**
- * @dataProvider coverDataProvider
- */
+ #[DataProvider('coverDataProvider')]
public function testCover($origin, $target, $result): void
{
$resizer = new RectangleResizer();
@@ -393,7 +391,7 @@ class RectangleResizerTest extends TestCase
$this->assertEquals($result->height(), $resized->height());
}
- public function coverDataProvider(): array
+ public static function coverDataProvider(): array
{
return [
[new Rectangle(800, 600), new Rectangle(100, 100), new Rectangle(133, 100)],
@@ -408,9 +406,7 @@ class RectangleResizerTest extends TestCase
];
}
- /**
- * @dataProvider containDataProvider
- */
+ #[DataProvider('containDataProvider')]
public function testContain($origin, $target, $result): void
{
$resizer = new RectangleResizer();
@@ -420,7 +416,7 @@ class RectangleResizerTest extends TestCase
$this->assertEquals($result->height(), $resized->height());
}
- public function containDataProvider(): array
+ public static function containDataProvider(): array
{
return [
[new Rectangle(800, 600), new Rectangle(100, 100), new Rectangle(100, 75)],
@@ -435,9 +431,7 @@ class RectangleResizerTest extends TestCase
];
}
- /**
- * @dataProvider cropDataProvider
- */
+ #[DataProvider('cropDataProvider')]
public function testCrop($origin, $target, $position, $result): void
{
$resizer = new RectangleResizer();
@@ -449,7 +443,7 @@ class RectangleResizerTest extends TestCase
$this->assertEquals($result->pivot()->y(), $resized->pivot()->y());
}
- public function cropDataProvider(): array
+ public static function cropDataProvider(): array
{
return [
[new Rectangle(800, 600), new Rectangle(100, 100), 'center', new Rectangle(100, 100, new Point(350, 250))],
diff --git a/tests/Geometry/RectangleTest.php b/tests/Unit/Geometry/RectangleTest.php
similarity index 97%
rename from tests/Geometry/RectangleTest.php
rename to tests/Unit/Geometry/RectangleTest.php
index 832fe9d8..ff61fdfe 100644
--- a/tests/Geometry/RectangleTest.php
+++ b/tests/Unit/Geometry/RectangleTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry;
+namespace Intervention\Image\Tests\Unit\Geometry;
use Intervention\Image\Geometry\Point;
use Intervention\Image\Geometry\Rectangle;
use Intervention\Image\Interfaces\PointInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class RectangleTest extends TestCase
+final class RectangleTest extends BaseTestCase
{
public function testConstructor(): void
{
@@ -50,7 +50,7 @@ class RectangleTest extends TestCase
$this->assertEquals(800, $rectangle->height());
}
- public function testGetAspectRatio()
+ public function testGetAspectRatio(): void
{
$size = new Rectangle(800, 600);
$this->assertEquals(1.333, round($size->aspectRatio(), 3));
@@ -62,7 +62,7 @@ class RectangleTest extends TestCase
$this->assertEquals(1.778, round($size->aspectRatio(), 3));
}
- public function testFitsInto()
+ public function testFitsInto(): void
{
$box = new Rectangle(800, 600);
$fits = $box->fitsInto(new Rectangle(100, 100));
@@ -93,7 +93,7 @@ class RectangleTest extends TestCase
$this->assertFalse($fits);
}
- public function testIsLandscape()
+ public function testIsLandscape(): void
{
$box = new Rectangle(100, 100);
$this->assertFalse($box->isLandscape());
@@ -105,7 +105,7 @@ class RectangleTest extends TestCase
$this->assertTrue($box->isLandscape());
}
- public function testIsPortrait()
+ public function testIsPortrait(): void
{
$box = new Rectangle(100, 100);
$this->assertFalse($box->isPortrait());
diff --git a/tests/Geometry/Traits/HasBackgroundColorTest.php b/tests/Unit/Geometry/Traits/HasBackgroundColorTest.php
similarity index 79%
rename from tests/Geometry/Traits/HasBackgroundColorTest.php
rename to tests/Unit/Geometry/Traits/HasBackgroundColorTest.php
index 316ea705..dea09bd1 100644
--- a/tests/Geometry/Traits/HasBackgroundColorTest.php
+++ b/tests/Unit/Geometry/Traits/HasBackgroundColorTest.php
@@ -2,12 +2,12 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry\Traits;
+namespace Intervention\Image\Tests\Unit\Geometry\Traits;
use Intervention\Image\Geometry\Traits\HasBackgroundColor;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class HasBackgroundColorTest extends TestCase
+final class HasBackgroundColorTest extends BaseTestCase
{
public function getTestObject(): object
{
diff --git a/tests/Geometry/Traits/HasBorderTest.php b/tests/Unit/Geometry/Traits/HasBorderTest.php
similarity index 91%
rename from tests/Geometry/Traits/HasBorderTest.php
rename to tests/Unit/Geometry/Traits/HasBorderTest.php
index 7218f1a6..2d311612 100644
--- a/tests/Geometry/Traits/HasBorderTest.php
+++ b/tests/Unit/Geometry/Traits/HasBorderTest.php
@@ -2,12 +2,12 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Geometry\Traits;
+namespace Intervention\Image\Tests\Unit\Geometry\Traits;
use Intervention\Image\Geometry\Traits\HasBorder;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class HasBorderTest extends TestCase
+final class HasBorderTest extends BaseTestCase
{
public function getTestObject(): object
{
diff --git a/tests/ImageManagerTest.php b/tests/Unit/ImageManagerTest.php
similarity index 65%
rename from tests/ImageManagerTest.php
rename to tests/Unit/ImageManagerTest.php
index 1a1d2680..920b5ba9 100644
--- a/tests/ImageManagerTest.php
+++ b/tests/Unit/ImageManagerTest.php
@@ -2,21 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests;
+namespace Intervention\Image\Tests\Unit;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Decoders\BinaryImageDecoder;
use Intervention\Image\Decoders\FilePathImageDecoder;
use Intervention\Image\Drivers\Gd\Driver as GdDriver;
use Intervention\Image\Drivers\Imagick\Driver as ImagickDriver;
use Intervention\Image\ImageManager;
use Intervention\Image\Interfaces\ImageInterface;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\ImageManager
- */
-class ImageManagerTest extends TestCase
+#[CoversClass(\Intervention\Image\ImageManager::class)]
+final class ImageManagerTest extends BaseTestCase
{
- public function testConstructor()
+ public function testConstructor(): void
{
$manager = new ImageManager(new GdDriver());
$this->assertInstanceOf(ImageManager::class, $manager);
@@ -43,15 +44,15 @@ class ImageManagerTest extends TestCase
$this->assertInstanceOf(ImageManager::class, $manager);
}
- /** @requires extension gd */
- public function testCreateGd()
+ #[RequiresPhpExtension('gd')]
+ public function testCreateGd(): void
{
$manager = new ImageManager(GdDriver::class);
$image = $manager->create(5, 4);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension gd */
+ #[RequiresPhpExtension('gd')]
public function testAnimateGd(): void
{
$manager = new ImageManager(GdDriver::class);
@@ -61,71 +62,74 @@ class ImageManagerTest extends TestCase
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension gd */
- public function testReadGd()
+ #[RequiresPhpExtension('gd')]
+ public function testReadGd(): void
{
$manager = new ImageManager(GdDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif');
+ $image = $manager->read($this->getTestImagePath('red.gif'));
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension gd */
+ #[RequiresPhpExtension('gd')]
public function testReadGdWithDecoderClassname(): void
{
$manager = new ImageManager(GdDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', FilePathImageDecoder::class);
+ $image = $manager->read($this->getTestImagePath('red.gif'), FilePathImageDecoder::class);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension gd */
+ #[RequiresPhpExtension('gd')]
public function testReadGdWithDecoderInstance(): void
{
$manager = new ImageManager(GdDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', new FilePathImageDecoder());
+ $image = $manager->read($this->getTestImagePath('red.gif'), new FilePathImageDecoder());
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension gd */
+ #[RequiresPhpExtension('gd')]
public function testReadGdWithDecoderClassnameArray(): void
{
$manager = new ImageManager(GdDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', [FilePathImageDecoder::class]);
+ $image = $manager->read($this->getTestImagePath('red.gif'), [FilePathImageDecoder::class]);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension gd */
+ #[RequiresPhpExtension('gd')]
public function testReadGdWithDecoderInstanceArray(): void
{
$manager = new ImageManager(GdDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', [new FilePathImageDecoder()]);
+ $image = $manager->read($this->getTestImagePath('red.gif'), [new FilePathImageDecoder()]);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension gd */
+ #[RequiresPhpExtension('gd')]
public function testReadGdWithDecoderInstanceArrayMultiple(): void
{
$manager = new ImageManager(GdDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', [new BinaryImageDecoder(), new FilePathImageDecoder()]);
+ $image = $manager->read($this->getTestImagePath('red.gif'), [
+ new BinaryImageDecoder(),
+ new FilePathImageDecoder(),
+ ]);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension gd */
+ #[RequiresPhpExtension('gd')]
public function testReadGdWithRotationAdjustment(): void
{
$manager = new ImageManager(GdDriver::class);
- $image = $manager->read(__DIR__ . '/images/orientation.jpg');
+ $image = $manager->read($this->getTestImagePath('orientation.jpg'));
$this->assertColor(255, 255, 255, 255, $image->pickColor(0, 24));
}
- /** @requires extension imagick */
- public function testCreateImagick()
+ #[RequiresPhpExtension('imagick')]
+ public function testCreateImagick(): void
{
$manager = new ImageManager(ImagickDriver::class);
$image = $manager->create(5, 4);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension imagick */
+ #[RequiresPhpExtension('imagick')]
public function testAnimateImagick(): void
{
$manager = new ImageManager(ImagickDriver::class);
@@ -135,59 +139,62 @@ class ImageManagerTest extends TestCase
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension imagick */
- public function testReadImagick()
+ #[RequiresPhpExtension('imagick')]
+ public function testReadImagick(): void
{
$manager = new ImageManager(ImagickDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif');
+ $image = $manager->read($this->getTestImagePath('red.gif'));
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension imagick */
+ #[RequiresPhpExtension('imagick')]
public function testReadImagickWithDecoderClassname(): void
{
$manager = new ImageManager(ImagickDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', FilePathImageDecoder::class);
+ $image = $manager->read($this->getTestImagePath('red.gif'), FilePathImageDecoder::class);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension imagick */
+ #[RequiresPhpExtension('imagick')]
public function testReadImagickWithDecoderInstance(): void
{
$manager = new ImageManager(ImagickDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', new FilePathImageDecoder());
+ $image = $manager->read($this->getTestImagePath('red.gif'), new FilePathImageDecoder());
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension imagick */
+ #[RequiresPhpExtension('imagick')]
public function testReadImagickWithDecoderClassnameArray(): void
{
$manager = new ImageManager(ImagickDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', [FilePathImageDecoder::class]);
+ $image = $manager->read($this->getTestImagePath('red.gif'), [FilePathImageDecoder::class]);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension imagick */
+ #[RequiresPhpExtension('imagick')]
public function testReadImagickWithDecoderInstanceArray(): void
{
$manager = new ImageManager(ImagickDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', [new FilePathImageDecoder()]);
+ $image = $manager->read($this->getTestImagePath('red.gif'), [new FilePathImageDecoder()]);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension imagick */
+ #[RequiresPhpExtension('imagick')]
public function testReadImagickWithDecoderInstanceArrayMultiple(): void
{
$manager = new ImageManager(ImagickDriver::class);
- $image = $manager->read(__DIR__ . '/images/red.gif', [new BinaryImageDecoder(), new FilePathImageDecoder()]);
+ $image = $manager->read($this->getTestImagePath('red.gif'), [
+ new BinaryImageDecoder(),
+ new FilePathImageDecoder(),
+ ]);
$this->assertInstanceOf(ImageInterface::class, $image);
}
- /** @requires extension imagick */
+ #[RequiresPhpExtension('imagick')]
public function testReadImagickWithRotationAdjustment(): void
{
$manager = new ImageManager(ImagickDriver::class);
- $image = $manager->read(__DIR__ . '/images/orientation.jpg');
+ $image = $manager->read($this->getTestImagePath('orientation.jpg'));
$this->assertColor(255, 255, 255, 255, $image->pickColor(0, 24));
}
}
diff --git a/tests/ModifierStackTest.php b/tests/Unit/ModifierStackTest.php
similarity index 83%
rename from tests/ModifierStackTest.php
rename to tests/Unit/ModifierStackTest.php
index 6acb2336..8d63f423 100644
--- a/tests/ModifierStackTest.php
+++ b/tests/Unit/ModifierStackTest.php
@@ -2,18 +2,18 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests;
+namespace Intervention\Image\Tests\Unit;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Modifiers\GreyscaleModifier;
use Intervention\Image\Interfaces\ImageInterface;
use Intervention\Image\Interfaces\ModifierInterface;
use Intervention\Image\ModifierStack;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-/**
- * @covers \Intervention\Image\ModifierStack
- */
-class ModifierStackTest extends TestCase
+#[CoversClass(\Intervention\Image\ModifierStack::class)]
+final class ModifierStackTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Modifiers/ColorspaceModifierTest.php b/tests/Unit/Modifiers/ColorspaceModifierTest.php
similarity index 85%
rename from tests/Modifiers/ColorspaceModifierTest.php
rename to tests/Unit/Modifiers/ColorspaceModifierTest.php
index c57bdf11..d5cfc12e 100644
--- a/tests/Modifiers/ColorspaceModifierTest.php
+++ b/tests/Unit/Modifiers/ColorspaceModifierTest.php
@@ -2,15 +2,15 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Modifiers;
+namespace Intervention\Image\Tests\Unit\Modifiers;
use Intervention\Image\Colors\Rgb\Colorspace;
use Intervention\Image\Exceptions\NotSupportedException;
use Intervention\Image\Interfaces\ColorspaceInterface;
use Intervention\Image\Modifiers\ColorspaceModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
-class ColorspaceModifierTest extends TestCase
+final class ColorspaceModifierTest extends BaseTestCase
{
public function testTargetColorspace(): void
{
diff --git a/tests/Modifiers/PadModifierTest.php b/tests/Unit/Modifiers/PadModifierTest.php
similarity index 80%
rename from tests/Modifiers/PadModifierTest.php
rename to tests/Unit/Modifiers/PadModifierTest.php
index 36c01ceb..777c7752 100644
--- a/tests/Modifiers/PadModifierTest.php
+++ b/tests/Unit/Modifiers/PadModifierTest.php
@@ -2,16 +2,16 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Modifiers;
+namespace Intervention\Image\Tests\Unit\Modifiers;
use Intervention\Image\Geometry\Rectangle;
use Intervention\Image\Interfaces\ImageInterface;
use Intervention\Image\Interfaces\SizeInterface;
use Intervention\Image\Modifiers\PadModifier;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-class PadModifierTest extends TestCase
+final class PadModifierTest extends BaseTestCase
{
public function testGetCropSize(): void
{
diff --git a/tests/Modifiers/SpecializableModifierTest.php b/tests/Unit/Modifiers/SpecializableModifierTest.php
similarity index 77%
rename from tests/Modifiers/SpecializableModifierTest.php
rename to tests/Unit/Modifiers/SpecializableModifierTest.php
index 075b44fc..603cbd26 100644
--- a/tests/Modifiers/SpecializableModifierTest.php
+++ b/tests/Unit/Modifiers/SpecializableModifierTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Modifiers;
+namespace Intervention\Image\Tests\Unit\Modifiers;
use Intervention\Image\Modifiers\SpecializableModifier;
use Intervention\Image\Interfaces\ImageInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Mockery;
-class SpecializableModifierTest extends TestCase
+final class SpecializableModifierTest extends BaseTestCase
{
public function testApply(): void
{
diff --git a/tests/OriginTest.php b/tests/Unit/OriginTest.php
similarity index 69%
rename from tests/OriginTest.php
rename to tests/Unit/OriginTest.php
index 88ec9673..b3eec4d2 100644
--- a/tests/OriginTest.php
+++ b/tests/Unit/OriginTest.php
@@ -2,21 +2,22 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests;
+namespace Intervention\Image\Tests\Unit;
use Intervention\Image\Origin;
+use Intervention\Image\Tests\BaseTestCase;
-class OriginTest extends TestCase
+final class OriginTest extends BaseTestCase
{
public function testFilePath(): void
{
- $origin = new Origin('image/jpeg', __DIR__ . '/tests/images/example.jpg');
- $this->assertEquals(__DIR__ . '/tests/images/example.jpg', $origin->filePath());
+ $origin = new Origin('image/jpeg', $this->getTestImagePath('example.jpg'));
+ $this->assertEquals($this->getTestImagePath('example.jpg'), $origin->filePath());
}
public function testFileExtension(): void
{
- $origin = new Origin('image/jpeg', __DIR__ . '/tests/images/example.jpg');
+ $origin = new Origin('image/jpeg', $this->getTestImagePath('example.jpg'));
$this->assertEquals('jpg', $origin->fileExtension());
$origin = new Origin('image/jpeg');
diff --git a/tests/ResolutionTest.php b/tests/Unit/ResolutionTest.php
similarity index 86%
rename from tests/ResolutionTest.php
rename to tests/Unit/ResolutionTest.php
index 4f8ae2f0..e0e4c844 100644
--- a/tests/ResolutionTest.php
+++ b/tests/Unit/ResolutionTest.php
@@ -2,16 +2,16 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests;
+namespace Intervention\Image\Tests\Unit;
+use PHPUnit\Framework\Attributes\CoversClass;
use Intervention\Image\Resolution;
+use Intervention\Image\Tests\BaseTestCase;
-/**
- * @covers \Intervention\Image\Resolution
- */
-class ResolutionTest extends TestCase
+#[CoversClass(\Intervention\Image\Resolution::class)]
+final class ResolutionTest extends BaseTestCase
{
- public function testConstructor()
+ public function testConstructor(): void
{
$resolution = new Resolution(1, 2);
$this->assertInstanceOf(Resolution::class, $resolution);
diff --git a/tests/Typography/FontFactoryTest.php b/tests/Unit/Typography/FontFactoryTest.php
similarity index 90%
rename from tests/Typography/FontFactoryTest.php
rename to tests/Unit/Typography/FontFactoryTest.php
index af98747c..3c614af3 100644
--- a/tests/Typography/FontFactoryTest.php
+++ b/tests/Unit/Typography/FontFactoryTest.php
@@ -2,14 +2,14 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Typography;
+namespace Intervention\Image\Tests\Unit\Typography;
use Intervention\Image\Interfaces\FontInterface;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Typography\Font;
use Intervention\Image\Typography\FontFactory;
-class FontFactoryTest extends TestCase
+final class FontFactoryTest extends BaseTestCase
{
public function testBuildWithFont(): void
{
diff --git a/tests/Typography/FontTest.php b/tests/Unit/Typography/FontTest.php
similarity index 94%
rename from tests/Typography/FontTest.php
rename to tests/Unit/Typography/FontTest.php
index e45f372d..3ef55418 100644
--- a/tests/Typography/FontTest.php
+++ b/tests/Unit/Typography/FontTest.php
@@ -2,12 +2,12 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Typography;
+namespace Intervention\Image\Tests\Unit\Typography;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Typography\Font;
-class FontTest extends TestCase
+final class FontTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Typography/LineTest.php b/tests/Unit/Typography/LineTest.php
similarity index 91%
rename from tests/Typography/LineTest.php
rename to tests/Unit/Typography/LineTest.php
index 69b7413f..80a91b4d 100644
--- a/tests/Typography/LineTest.php
+++ b/tests/Unit/Typography/LineTest.php
@@ -2,13 +2,13 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Typography;
+namespace Intervention\Image\Tests\Unit\Typography;
use Intervention\Image\Geometry\Point;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Typography\Line;
-class LineTest extends TestCase
+final class LineTest extends BaseTestCase
{
public function testConstructor(): void
{
diff --git a/tests/Typography/TextBlockTest.php b/tests/Unit/Typography/TextBlockTest.php
similarity index 83%
rename from tests/Typography/TextBlockTest.php
rename to tests/Unit/Typography/TextBlockTest.php
index c4245f1a..2ed9329a 100644
--- a/tests/Typography/TextBlockTest.php
+++ b/tests/Unit/Typography/TextBlockTest.php
@@ -2,16 +2,16 @@
declare(strict_types=1);
-namespace Intervention\Image\Tests\Typography;
+namespace Intervention\Image\Tests\Unit\Typography;
-use Intervention\Image\Tests\TestCase;
+use Intervention\Image\Tests\BaseTestCase;
use Intervention\Image\Typography\TextBlock;
-class TextBlockTest extends TestCase
+final class TextBlockTest extends BaseTestCase
{
protected TextBlock $block;
- public function setUp(): void
+ protected function setUp(): void
{
$this->block = new TextBlock(<<