1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
<?php
namespace MediaWiki\Tests\Unit\Storage;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\MainConfigNames;
use MediaWiki\Page\WikiPageFactory;
use MediaWiki\Storage\DerivedPageDataUpdater;
use MediaWiki\Storage\PageUpdater;
use MediaWiki\Storage\PageUpdaterFactory;
use MediaWiki\Tests\Unit\MockServiceDependenciesTrait;
use MediaWiki\User\UserIdentityValue;
use MediaWikiUnitTestCase;
use Wikimedia\Rdbms\LBFactory;
use Wikimedia\Rdbms\LoadBalancer;
use WikiPage;
/**
* @covers \MediaWiki\Storage\PageUpdaterFactory
*/
class PageUpdaterFactoryTest extends MediaWikiUnitTestCase {
use MockServiceDependenciesTrait;
private function getPageUpdaterFactory() {
$config = [
MainConfigNames::ArticleCountMethod => null,
MainConfigNames::RCWatchCategoryMembership => null,
MainConfigNames::PageCreationLog => null,
MainConfigNames::UseAutomaticEditSummaries => null,
MainConfigNames::ManualRevertSearchRadius => null,
MainConfigNames::UseRCPatrol => null,
MainConfigNames::ParsoidCacheConfig => [
'WarmParsoidParserCache' => false
],
];
$lb = $this->createNoOpMock( LoadBalancer::class );
$lbFactory = $this->createNoOpMock( LBFactory::class, [ 'getMainLB' ] );
$lbFactory->method( 'getMainLB' )->willReturn( $lb );
$wikiPageFactory = $this->createNoOpMock( WikiPageFactory::class, [ 'newFromTitle' ] );
$wikiPageFactory->method( 'newFromTitle' )->willReturnArgument( 0 );
return $this->newServiceInstance(
PageUpdaterFactory::class,
[
'loadbalancerFactory' => $lbFactory,
'wikiPageFactory' => $wikiPageFactory,
'options' => new ServiceOptions(
PageUpdaterFactory::CONSTRUCTOR_OPTIONS,
$config
),
'softwareTags' => [],
]
);
}
public function testNewDerivedPageDataUpdater() {
$page = $this->createNoOpMock( WikiPage::class );
$factory = $this->getPageUpdaterFactory();
$derivedPageDataUpdater = $factory->newDerivedPageDataUpdater( $page );
$this->assertInstanceOf( DerivedPageDataUpdater::class, $derivedPageDataUpdater );
}
public function testNewPageUpdater() {
$page = $this->createNoOpMock( WikiPage::class, [ 'canExist' ] );
$page->method( 'canExist' )->willReturn( true );
$user = new UserIdentityValue( 0, 'Dummy' );
$factory = $this->getPageUpdaterFactory();
$pageUpdater = $factory->newPageUpdater( $page, $user );
$this->assertInstanceOf( PageUpdater::class, $pageUpdater );
}
public function testNewPageUpdaterForDerivedPageDataUpdater() {
$page = $this->createNoOpMock( WikiPage::class, [ 'canExist' ] );
$page->method( 'canExist' )->willReturn( true );
$user = new UserIdentityValue( 0, 'Dummy' );
$factory = $this->getPageUpdaterFactory();
$derivedPageDataUpdater = $factory->newDerivedPageDataUpdater( $page );
$pageUpdater = $factory->newPageUpdaterForDerivedPageDataUpdater(
$page,
$user,
$derivedPageDataUpdater
);
$this->assertInstanceOf( PageUpdater::class, $pageUpdater );
}
}
|