wiki.techinc.nl/tests/phpunit/unit/includes/Storage/PageUpdaterFactoryTest.php
DannyS712 9d0d489412 Cleanup to PageUpdaterFactory and tests
Use one line instead of three to document variable types.

Make ContentHandlerFactory final again, no need to make
non-final.

Use MockServiceDependenciesTrait to simplify creation
of PageUpdaterFactory in unit tests.

Use Wikimedia\Rdbms\LoadBalancer instead of deprecated
alias \LoadBalancer.

Follow-up: I2a060bfa8ac098edf24fc4d51212eeb7ddf3942d
Change-Id: I63b18f71cb6e40c971511e71e8475d49ef530d71
2021-07-20 09:11:13 +00:00

87 lines
2.5 KiB
PHP

<?php
namespace MediaWiki\Tests\Unit\Storage;
use MediaWiki\Config\ServiceOptions;
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 = [
'ArticleCountMethod' => null,
'RCWatchCategoryMembership' => null,
'PageCreationLog' => null,
'AjaxEditStash' => null,
'UseAutomaticEditSummaries' => null,
'ManualRevertSearchRadius' => null,
'UseRCPatrol' => null,
];
$lb = $this->createNoOpMock( LoadBalancer::class );
$lbFactory = $this->createNoOpMock( LBFactory::class, [ 'getMainLB' ] );
$lbFactory->method( 'getMainLB' )->willReturn( $lb );
return $this->newServiceInstance(
PageUpdaterFactory::class,
[
'loadbalancerFactory' => $lbFactory,
'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 );
}
}