1
0
mirror of https://github.com/Intervention/image.git synced 2025-08-26 15:24:37 +02:00

Refactor RemoveAnimationModifier::class, Add tests

This commit is contained in:
Oliver Vogel
2024-12-28 10:52:08 +01:00
parent ca067a8fbb
commit 5a1b6f55f8
4 changed files with 68 additions and 7 deletions

View File

@@ -0,0 +1,44 @@
<?php
declare(strict_types=1);
namespace Intervention\Image\Tests\Unit\Modifiers;
use Generator;
use Intervention\Image\Interfaces\ImageInterface;
use Intervention\Image\Modifiers\RemoveAnimationModifier;
use Intervention\Image\Tests\BaseTestCase;
use Mockery;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
#[CoversClass(RemoveAnimationModifier::class)]
final class RemoveAnimationModifierTest extends BaseTestCase
{
#[DataProvider('normalizePositionProvider')]
public function testNormalizePosition(int|string $position, int $frames, int $normalized): void
{
$modifier = new class ($position) extends RemoveAnimationModifier
{
public function testResult(int $frames): int
{
$image = Mockery::mock(ImageInterface::class)->makePartial();
$image->shouldReceive('count')->andReturn($frames);
return $this->normalizePosition($image);
}
};
$this->assertEquals($normalized, $modifier->testResult($frames));
}
public static function normalizePositionProvider(): Generator
{
yield [0, 100, 0];
yield [10, 100, 10];
yield ['10', 100, 10];
yield ['0%', 100, 0];
yield ['50%', 100, 50];
yield ['100%', 100, 99];
}
}