wiki.techinc.nl/tests/phpunit/unit/includes/cache/LinkBatchFactoryTest.php
Umherirrender d79fd02d4b Use injection for LinksMigration on LinkBatch, action, api, special page
Even the service does not long stay in that classes,
it should be injected to avoid global state

Bug: T304780
Change-Id: Ib488037f5a6966ab61042ed3cd889ddc50f1ba8e
2022-05-10 20:19:58 +00:00

56 lines
1.4 KiB
PHP

<?php
use MediaWiki\Cache\LinkBatchFactory;
use MediaWiki\Linker\LinksMigration;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\Page\PageReference;
use MediaWiki\Page\PageReferenceValue;
use Wikimedia\Rdbms\ILoadBalancer;
/**
* @group Cache
* @covers \MediaWiki\Cache\LinkBatchFactory
*/
class LinkBatchFactoryTest extends MediaWikiUnitTestCase {
use FactoryArgTestTrait;
protected static function getFactoryClass() {
return LinkBatchFactory::class;
}
protected static function getInstanceClass() {
return LinkBatch::class;
}
protected static function getExtraClassArgCount() {
// $arr
return 1;
}
protected function getOverriddenMockValueForParam( ReflectionParameter $param ) {
if ( $param->getName() === 'initialItems' ) {
return [ [] ];
}
return [];
}
public function testNewLinkBatch() {
$factory = new LinkBatchFactory(
$this->createMock( LinkCache::class ),
$this->createMock( TitleFormatter::class ),
$this->createMock( Language::class ),
$this->createMock( GenderCache::class ),
$this->createMock( ILoadBalancer::class ),
$this->createMock( LinksMigration::class ),
LoggerFactory::getInstance( 'LinkBatch' )
);
$linkBatch = $factory->newLinkBatch( [
new TitleValue( NS_MAIN, 'Foo' ),
new PageReferenceValue( NS_TALK, 'Bar', PageReference::LOCAL ),
] );
$this->assertFalse( $linkBatch->isEmpty() );
$this->assertSame( 2, $linkBatch->getSize() );
}
}