packages/sql-fixture/tests/Unit/TypeMapper/TypeMapperInterfaceTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\TypeMapper;
6
7use Faker\Factory;
8use PHPUnit\Framework\Attributes\CoversClass;
9use PHPUnit\Framework\TestCase;
10use SqlFixture\Schema\ColumnDefinition;
11use SqlFixture\TypeMapper\TypeMapperInterface as Subject;
12
13#[CoversClass(Subject::class)]
14#[\PHPUnit\Framework\Attributes\UsesClass(\SqlFixture\Platform\Sqlite\SqliteTypeMapper::class)]
15#[\PHPUnit\Framework\Attributes\UsesClass(ColumnDefinition::class)]
16#[\PHPUnit\Framework\Attributes\UsesClass(\SqlFixture\Platform\Sqlite\Value\ColumnGenerator::class)]
17#[\PHPUnit\Framework\Attributes\UsesClass(\SqlFixture\Platform\Sqlite\Value\TypeAffinity::class)]
18#[\PHPUnit\Framework\Attributes\UsesClass(\SqlFixture\TypeMapper\ParagraphGenerator::class)]
19#[\PHPUnit\Framework\Attributes\UsesClass(\SqlFixture\TypeMapper\IntegerRange::class)]
20#[\PHPUnit\Framework\Attributes\UsesClass(\SqlFixture\TypeMapper\IntegerWidth::class)]
21#[\PHPUnit\Framework\Attributes\UsesClass(\SqlFixture\TypeMapper\DecimalRange::class)]
22final class TypeMapperInterfaceTest extends TestCase
23{
24 public function testGenerateReturnsAValueForTheColumn(): void
25 {
26 $mapper = new \SqlFixture\Platform\Sqlite\SqliteTypeMapper();
27 $value = $mapper->generate(Factory::create(), new ColumnDefinition('code', 'VARCHAR', length: 8, nullable: false));
28 self::assertIsString($value);
29 self::assertLessThanOrEqual(8, strlen($value));
30 }
31}
32