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
This commit is contained in:
DannyS712 2021-07-20 09:02:45 +00:00
parent edd6ed7c5e
commit 9d0d489412
3 changed files with 30 additions and 81 deletions

View file

@ -64,74 +64,46 @@ class PageUpdaterFactory {
'UseRCPatrol', 'UseRCPatrol',
]; ];
/** /** @var RevisionStore */
* @var RevisionStore
*/
private $revisionStore; private $revisionStore;
/** /** @var RevisionRenderer */
* @var RevisionRenderer
*/
private $revisionRenderer; private $revisionRenderer;
/** /** @var SlotRoleRegistry */
* @var SlotRoleRegistry
*/
private $slotRoleRegistry; private $slotRoleRegistry;
/** /** @var ParserCache */
* @var ParserCache
*/
private $parserCache; private $parserCache;
/** /** @var JobQueueGroup */
* @var JobQueueGroup
*/
private $jobQueueGroup; private $jobQueueGroup;
/** /** @var MessageCache */
* @var MessageCache
*/
private $messageCache; private $messageCache;
/** /** @var Language */
* @var Language
*/
private $contLang; private $contLang;
/** /** @var ILBFactory */
* @var ILBFactory
*/
private $loadbalancerFactory; private $loadbalancerFactory;
/** /** @var IContentHandlerFactory */
* @var IContentHandlerFactory
*/
private $contentHandlerFactory; private $contentHandlerFactory;
/** /** @var HookContainer */
* @var HookContainer
*/
private $hookContainer; private $hookContainer;
/** /** @var EditResultCache */
* @var EditResultCache
*/
private $editResultCache; private $editResultCache;
/** /** @var UserNameUtils */
* @var UserNameUtils
*/
private $userNameUtils; private $userNameUtils;
/** /** @var LoggerInterface */
* @var LoggerInterface
*/
private $logger; private $logger;
/** /** @var ServiceOptions */
* @var ServiceOptions
*/
private $options; private $options;
/** @var UserEditTracker */ /** @var UserEditTracker */

View file

@ -41,7 +41,7 @@ use Wikimedia\ObjectFactory;
* @ingroup Content * @ingroup Content
* @since 1.35 * @since 1.35
*/ */
class ContentHandlerFactory implements IContentHandlerFactory { final class ContentHandlerFactory implements IContentHandlerFactory {
/** /**
* @var string[]|callable[] * @var string[]|callable[]

View file

@ -1,36 +1,24 @@
<?php <?php
namespace MediaWiki\Tests\Storage; namespace MediaWiki\Tests\Unit\Storage;
use JobQueueGroup;
use Language;
use LoadBalancer;
use MediaWiki\Config\ServiceOptions; use MediaWiki\Config\ServiceOptions;
use MediaWiki\Content\ContentHandlerFactory;
use MediaWiki\HookContainer\HookContainer;
use MediaWiki\Revision\RevisionRenderer;
use MediaWiki\Revision\RevisionStore;
use MediaWiki\Revision\SlotRoleRegistry;
use MediaWiki\Storage\DerivedPageDataUpdater; use MediaWiki\Storage\DerivedPageDataUpdater;
use MediaWiki\Storage\EditResultCache;
use MediaWiki\Storage\PageUpdater; use MediaWiki\Storage\PageUpdater;
use MediaWiki\Storage\PageUpdaterFactory; use MediaWiki\Storage\PageUpdaterFactory;
use MediaWiki\User\UserEditTracker; use MediaWiki\Tests\Unit\MockServiceDependenciesTrait;
use MediaWiki\User\UserGroupManager;
use MediaWiki\User\UserIdentityValue; use MediaWiki\User\UserIdentityValue;
use MediaWiki\User\UserNameUtils;
use MediaWikiUnitTestCase; use MediaWikiUnitTestCase;
use MessageCache;
use ParserCache;
use Psr\Log\LoggerInterface;
use Wikimedia\Rdbms\LBFactory; use Wikimedia\Rdbms\LBFactory;
use Wikimedia\Rdbms\LoadBalancer;
use WikiPage; use WikiPage;
/** /**
* @covers MediaWiki\Storage\PageUpdaterFactory * @covers MediaWiki\Storage\PageUpdaterFactory
* @group Database
*/ */
class PageUpdaterFactoryTest extends MediaWikiUnitTestCase { class PageUpdaterFactoryTest extends MediaWikiUnitTestCase {
use MockServiceDependenciesTrait;
private function getPageUpdaterFactory() { private function getPageUpdaterFactory() {
$config = [ $config = [
'ArticleCountMethod' => null, 'ArticleCountMethod' => null,
@ -46,27 +34,16 @@ class PageUpdaterFactoryTest extends MediaWikiUnitTestCase {
$lbFactory = $this->createNoOpMock( LBFactory::class, [ 'getMainLB' ] ); $lbFactory = $this->createNoOpMock( LBFactory::class, [ 'getMainLB' ] );
$lbFactory->method( 'getMainLB' )->willReturn( $lb ); $lbFactory->method( 'getMainLB' )->willReturn( $lb );
return new PageUpdaterFactory( return $this->newServiceInstance(
$this->createNoOpMock( RevisionStore::class ), PageUpdaterFactory::class,
$this->createNoOpMock( RevisionRenderer::class ), [
$this->createNoOpMock( SlotRoleRegistry::class ), 'loadbalancerFactory' => $lbFactory,
$this->createNoOpMock( ParserCache::class ), 'options' => new ServiceOptions(
$this->createNoOpMock( JobQueueGroup::class ), PageUpdaterFactory::CONSTRUCTOR_OPTIONS,
$this->createNoOpMock( MessageCache::class ), $config
$this->createNoOpMock( Language::class ), ),
$lbFactory, 'softwareTags' => [],
$this->createNoOpMock( ContentHandlerFactory::class ), ]
$this->createNoOpMock( HookContainer::class ),
$this->createNoOpMock( EditResultCache::class ),
$this->createNoOpMock( UserNameUtils::class ),
$this->createNoOpMock( LoggerInterface::class ),
new ServiceOptions(
PageUpdaterFactory::CONSTRUCTOR_OPTIONS,
$config
),
$this->createNoOpMock( UserEditTracker::class ),
$this->createNoOpMock( UserGroupManager::class ),
[]
); );
} }