packages/sql-fixture/tests/Unit/Platform/PostgreSql/Value/TemporalGeneratorTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Platform\PostgreSql\Value;
6
7use Faker\Factory;
8use PHPUnit\Framework\Attributes\CoversClass;
9use PHPUnit\Framework\TestCase;
10use SqlFixture\Platform\PostgreSql\Value\TemporalGenerator as Subject;
11use SqlFixture\Schema\ColumnDefinition;
12
13#[CoversClass(Subject::class)]
14#[\PHPUnit\Framework\Attributes\UsesClass(\SqlFixture\Platform\PostgreSql\Value\StructuredGenerator::class)]
15#[\PHPUnit\Framework\Attributes\UsesClass(ColumnDefinition::class)]
16final class TemporalGeneratorTest extends TestCase
17{
18    public function testGenerateDateUsesDatabaseFormat(): void
19    {
20        self::assertMatchesRegularExpression('/^\d{4}-\d{2}-\d{2}$/', (new Subject())->generate(Factory::create(), new ColumnDefinition('created', 'DATE')));
21    }
22
23    public function testGenerateTimeUsesDatabaseFormat(): void
24    {
25        self::assertMatchesRegularExpression('/^\d{2}:\d{2}:\d{2}$/', (new Subject())->generate(Factory::create(), new ColumnDefinition('created', 'TIME')));
26    }
27
28    public function testGenerateTimestampUsesDatabaseFormat(): void
29    {
30        self::assertMatchesRegularExpression('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', (new Subject())->generate(Factory::create(), new ColumnDefinition('created', 'TIMESTAMP')));
31    }
32}
33