+ /**
+ * @covers \Wikimedia\Rdbms\DatabaseSqlite::selectDB
+ * @covers \Wikimedia\Rdbms\DatabasePostgres::selectDB
+ * @expectedException \Wikimedia\Rdbms\DBConnectionError
+ */
+ public function testInvalidSelectDBIndependant2() {
+ $dbname = 'unittest-domain'; // explodes if DB is selected
+ $factory = $this->newLBFactoryMulti(
+ [ 'localDomain' => ( new DatabaseDomain( $dbname, null, '' ) )->getId() ],
+ [
+ 'dbname' => 'do_not_select_me' // explodes if DB is selected
+ ]
+ );
+ $lb = $factory->getMainLB();
+
+ if ( !wfGetDB( DB_MASTER )->databasesAreIndependent() ) {
+ $this->markTestSkipped( "Not applicable per databasesAreIndependent()" );
+ }
+
+ $db = $lb->getConnection( DB_MASTER );
+ \Wikimedia\suppressWarnings();
+ $db->selectDB( 'garbage-db' );
+ \Wikimedia\restoreWarnings();
+ }
+
+ /**
+ * @covers \Wikimedia\Rdbms\LoadBalancer::getConnection
+ * @covers \Wikimedia\Rdbms\LoadBalancer::redefineLocalDomain
+ * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::selectDB
+ * @covers \Wikimedia\Rdbms\DatabaseMssql::selectDB
+ * @covers DatabaseOracle::selectDB
+ */