Skip to content

Commit 4355eb2

Browse files
committed
tests added
1 parent aa3814f commit 4355eb2

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
namespace Service\Parser;
4+
5+
use Illuminate\Database\Connection;
6+
use N3XT0R\MigrationGenerator\Service\Parser\Drivers\MSSQLSchemaParser;
7+
use N3XT0R\MigrationGenerator\Service\Parser\Drivers\MySQLSchemaParser;
8+
use N3XT0R\MigrationGenerator\Service\Parser\Drivers\PostgresSchemaParser;
9+
use N3XT0R\MigrationGenerator\Service\Parser\SchemaParserFactory;
10+
use PHPUnit\Framework\Attributes\DataProvider;
11+
use Tests\TestCase;
12+
13+
class SchemaParserFactoryTest extends TestCase
14+
{
15+
public static function connectionDriverDataProvider(): array
16+
{
17+
return [
18+
['mysql', MySQLSchemaParser::class],
19+
['pgsql', PostgresSchemaParser::class],
20+
['sqlsrv', MSSQLSchemaParser::class],
21+
];
22+
}
23+
24+
#[DataProvider('connectionDriverDataProvider')]
25+
public function testFactoryWorks(string $dbType, string $expectedType): void
26+
{
27+
$connection = $this->getMockBuilder(Connection::class)
28+
->disableOriginalConstructor()
29+
->onlyMethods(['getDriverName'])->getMock();
30+
$connection->method('getDriverName')->willReturn($dbType);
31+
32+
$factory = new SchemaParserFactory();
33+
self::assertInstanceOf($expectedType, $factory->create($connection));
34+
}
35+
36+
public function testFactoryThrowsException(): void
37+
{
38+
$dbType = uniqid('dbType', true);
39+
$connection = $this->getMockBuilder(Connection::class)
40+
->disableOriginalConstructor()
41+
->onlyMethods(['getDriverName'])->getMock();
42+
$connection->method('getDriverName')->willReturn($dbType);
43+
$this->expectException(\InvalidArgumentException::class);
44+
(new SchemaParserFactory())->create($connection);
45+
}
46+
}

0 commit comments

Comments
 (0)