packages/sql-fixture/tests/Unit/Platform/MySql/Value/GeometryGeneratorTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Platform\MySql\Value;
6
7use Faker\Factory;
8use PHPUnit\Framework\Attributes\CoversClass;
9use PHPUnit\Framework\TestCase;
10use SqlFixture\Platform\MySql\Value\GeometryGenerator as Subject;
11use SqlFixture\Schema\ColumnDefinition;
12
13#[CoversClass(Subject::class)]
14#[\PHPUnit\Framework\Attributes\UsesClass(\SqlFixture\Platform\MySql\Value\SpatialGenerator::class)]
15#[\PHPUnit\Framework\Attributes\UsesClass(ColumnDefinition::class)]
16final class GeometryGeneratorTest extends TestCase
17{
18 public function testGeneratePointUsesRequestedWktType(): void
19 {
20 self::assertStringStartsWith('POINT(', (new Subject())->generate(Factory::create(), new ColumnDefinition('shape', 'POINT')));
21 }
22
23 public function testGeneratePolygonUsesRequestedWktType(): void
24 {
25 self::assertStringStartsWith('POLYGON(', (new Subject())->generate(Factory::create(), new ColumnDefinition('shape', 'POLYGON')));
26 }
27
28 public function testGenerateMultipointUsesRequestedWktType(): void
29 {
30 self::assertStringStartsWith('MULTIPOINT(', (new Subject())->generate(Factory::create(), new ColumnDefinition('shape', 'MULTIPOINT')));
31 }
32
33 public function testGenerateGeometrycollectionUsesRequestedWktType(): void
34 {
35 self::assertStringStartsWith('GEOMETRYCOLLECTION(', (new Subject())->generate(Factory::create(), new ColumnDefinition('shape', 'GEOMETRYCOLLECTION')));
36 }
37}
38