getMockBuilder( IDatabase::class ) ->disableOriginalConstructor() ->getMock(); $config = [ 'class' => $deprecated, 'connection' => $mockDB, # Various other parameters required: 'sectionsByDB' => [], 'sectionLoads' => [], 'serverTemplate' => [], ]; $this->hideDeprecated( '$wgLBFactoryConf must be updated. See RELEASE-NOTES for details' ); $result = MWLBFactory::getLBFactoryClass( $config ); $this->assertEquals( $expected, $result ); } public function getLBFactoryClassProvider() { return [ # Format: new class, old class [ 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' ], ]; } /** * @covers MWLBFactory::setDomainAliases() * @dataProvider setDomainAliasesProvider */ public function testDomainAliases( $dbname, $prefix, $expectedDomain ) { $servers = [ [ 'type' => 'sqlite', 'dbname' => 'defaultdb', 'tablePrefix' => 'defaultprefix_', 'dbDirectory' => '~/sqldatadir/', 'load' => 0, ] ]; $lbFactory = new LBFactorySimple( [ 'servers' => $servers, 'localDomain' => new DatabaseDomain( $dbname, null, $prefix ) ] ); MWLBFactory::setDomainAliases( $lbFactory ); $rawDomain = rtrim( "$dbname-$prefix", '-' ); $this->assertEquals( $expectedDomain, $lbFactory->resolveDomainID( $rawDomain ), 'Domain aliases set' ); } public function setDomainAliasesProvider() { return [ [ 'enwiki', '', 'enwiki' ], [ 'wikipedia', 'fr_', 'wikipedia-fr_' ], [ 'wikipedia', 'zh', 'wikipedia-zh' ], [ 'wiki-pedia', '', 'wiki?hpedia' ], [ 'wiki-pedia', 'es_', 'wiki?hpedia-es_' ], [ 'wiki-pedia', 'ru', 'wiki?hpedia-ru' ] ]; } }