wiki.techinc.nl/tests/phpunit/maintenance/PatchSqlTest.php
Dreamy Jazz 9335784571 Test patchSql.php
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
2024-10-14 11:29:49 +00:00

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' ] );
}
}