<?php
+use Wikimedia\Rdbms\LBFactorySimple;
+use Wikimedia\Rdbms\LBFactoryMulti;
use Wikimedia\Rdbms\ChronologyProtector;
+use Wikimedia\Rdbms\MySQLMasterPos;
/**
* Holds tests for LBFactory abstract MediaWiki class.
public function getLBFactoryClassProvider() {
return [
# Format: new class, old class
- [ 'LBFactorySimple', 'LBFactory_Simple' ],
- [ 'LBFactorySingle', 'LBFactory_Single' ],
- [ 'LBFactoryMulti', 'LBFactory_Multi' ],
+ [ Wikimedia\Rdbms\LBFactorySimple::class, 'LBFactory_Simple' ],
+ [ Wikimedia\Rdbms\LBFactorySingle::class, 'LBFactory_Single' ],
+ [ Wikimedia\Rdbms\LBFactoryMulti::class, 'LBFactory_Multi' ],
+ [ Wikimedia\Rdbms\LBFactorySimple::class, 'LBFactorySimple' ],
+ [ Wikimedia\Rdbms\LBFactorySingle::class, 'LBFactorySingle' ],
+ [ Wikimedia\Rdbms\LBFactoryMulti::class, 'LBFactoryMulti' ],
];
}
$dbw = $lb->getConnection( DB_MASTER );
$this->assertTrue( $dbw->getLBInfo( 'master' ), 'master shows as master' );
- $dbr = $lb->getConnection( DB_SLAVE );
- $this->assertTrue( $dbr->getLBInfo( 'master' ), 'DB_SLAVE also gets the master' );
+ $dbr = $lb->getConnection( DB_REPLICA );
+ $this->assertTrue( $dbr->getLBInfo( 'master' ), 'DB_REPLICA also gets the master' );
$factory->shutdown();
$lb->closeAll();
$dbw->getLBInfo( 'clusterMasterHost' ),
'cluster master set' );
- $dbr = $lb->getConnection( DB_SLAVE );
+ $dbr = $lb->getConnection( DB_REPLICA );
$this->assertTrue( $dbr->getLBInfo( 'replica' ), 'slave shows as slave' );
$this->assertEquals(
( $wgDBserver != '' ) ? $wgDBserver : 'localhost',
],
],
'serverTemplate' => [
- 'dbname' => $wgDBname,
- 'user' => $wgDBuser,
- 'password' => $wgDBpassword,
- 'type' => $wgDBtype,
+ 'dbname' => $wgDBname,
+ 'user' => $wgDBuser,
+ 'password' => $wgDBpassword,
+ 'type' => $wgDBtype,
'dbDirectory' => $wgSQLiteDataDir,
- 'flags' => DBO_DEFAULT
+ 'flags' => DBO_DEFAULT
],
'hostsByName' => [
'test-db1' => $wgDBserver,
$dbw = $lb->getConnection( DB_MASTER );
$this->assertTrue( $dbw->getLBInfo( 'master' ), 'master shows as master' );
- $dbr = $lb->getConnection( DB_SLAVE );
+ $dbr = $lb->getConnection( DB_REPLICA );
$this->assertTrue( $dbr->getLBInfo( 'replica' ), 'slave shows as slave' );
$factory->shutdown();
"Correct full table name"
);
- \MediaWiki\suppressWarnings();
- $this->assertFalse( $db->selectDB( 'garbage-db' ) );
- \MediaWiki\restoreWarnings();
-
$this->assertEquals(
$this->quoteTable( $db, 'garbage-db' ) . '.' . $this->quoteTable( $db, 'page' ),
$db->tableName( 'garbage-db.page' ),
"Correct full table name"
);
+ if ( $db->databasesAreIndependent() ) {
+ try {
+ $e = null;
+ $db->selectDB( 'garbage-db' );
+ } catch ( \Wikimedia\Rdbms\DBConnectionError $e ) {
+ // expected
+ }
+ $this->assertInstanceOf( '\Wikimedia\Rdbms\DBConnectionError', $e );
+ $this->assertFalse( $db->isOpen() );
+ } else {
+ \MediaWiki\suppressWarnings();
+ $this->assertFalse( $db->selectDB( 'garbage-db' ) );
+ \MediaWiki\restoreWarnings();
+ }
+
$factory->closeAll();
$factory->destroy();
}