Why: * patchSql.php is currently untested, but ensuring that it works as intended will avoid problematic writes to the DB What: * Create PatchSqlTest.php which tests that an insert query in an SQL file works as intended. Bug: T371167 Change-Id: I7b3a90a2a34fddb1e127d353238ef81f8b2d16c0
34 lines
928 B
PHP
34 lines
928 B
PHP
<?php
|
|
|
|
namespace MediaWiki\Tests\Maintenance;
|
|
|
|
use PatchSql;
|
|
|
|
/**
|
|
* @covers \PatchSql
|
|
* @group Database
|
|
* @author Dreamy Jazz
|
|
*/
|
|
class PatchSqlTest extends MaintenanceBaseTestCase {
|
|
|
|
protected function getMaintenanceClass() {
|
|
return PatchSql::class;
|
|
}
|
|
|
|
public function testExecute() {
|
|
// Create a SQL file with an insert query
|
|
$testFilename = $this->getNewTempFile();
|
|
$testFile = fopen( $testFilename, 'w' );
|
|
fwrite( $testFile, "INSERT INTO /*_*/updatelog (ul_key, ul_value) VALUES ('testing1234', 'testing');\n" );
|
|
fclose( $testFile );
|
|
// Pass the file to the maintenance script and run it
|
|
$this->maintenance->setArg( 'patch-name', $testFilename );
|
|
$this->maintenance->execute();
|
|
// Check that the insert query worked
|
|
$this->newSelectQueryBuilder()
|
|
->select( [ 'ul_key', 'ul_value' ] )
|
|
->from( 'updatelog' )
|
|
->caller( __METHOD__ )
|
|
->assertRowValue( [ 'testing1234', 'testing' ] );
|
|
}
|
|
}
|