wiki.techinc.nl/tests/phpunit/includes/libs/rdbms/database/DoctrineSchemaChangeBuilderTest.php
Amir Sarabadani 1125167b8d Start generateSchemaChangeSql.php
Creating schema changes from abstract schema and even abstracting a
schema change.

Bug: T230420
Change-Id: If626e866642af820dd70c5f9b0fe7c6a951e0a25
2020-11-01 21:14:53 +01:00

47 lines
1.3 KiB
PHP

<?php
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Platforms\MySqlPlatform;
use Doctrine\DBAL\Platforms\SqlitePlatform;
use Wikimedia\Rdbms\DoctrineSchemaChangeBuilder;
use Wikimedia\Rdbms\MWPostgreSqlPlatform;
class DoctrineSchemaChangeBuilderTest extends \PHPUnit\Framework\TestCase {
/**
* @dataProvider provideTestGetResultAllTables
* @covers \Wikimedia\Rdbms\DoctrineSchemaBuilder
*
* @param AbstractPlatform $platform
* @param string $expectedFile path fragment
*/
public function testGetResultAllTables( $platform, $expectedFile ) {
$basePath = dirname( __DIR__, 4 );
$builder = new DoctrineSchemaChangeBuilder( $platform );
$json = file_get_contents( $basePath . '/data/db/patch-drop-ct_tag.json' );
$schemaChange = json_decode( $json, true );
$actual = implode( ";\n", $builder->getSchemaChangeSql( $schemaChange ) ) . ";\n";
$expected = file_get_contents( $basePath . $expectedFile );
$this->assertSame( $expected, $actual );
}
public function provideTestGetResultAllTables() {
yield 'MySQL schema tables' => [
new MySqlPlatform,
'/data/db/mysql/patch-drop-ct_tag.sql',
];
yield 'PostgreSQL schema tables' => [
new MWPostgreSqlPlatform,
'/data/db/postgres/patch-drop-ct_tag.sql'
];
yield 'SQLite schema tables' => [
new SqlitePlatform,
'/data/db/sqlite/patch-drop-ct_tag.sql'
];
}
}