1<?php 2 3namespace MediaWiki\Tests\User; 4 5use FactoryArgTestTrait; 6use MediaWiki\User\UserGroupManager; 7use MediaWiki\User\UserGroupManagerFactory; 8use MediaWikiUnitTestCase; 9use ReflectionParameter; 10use Wikimedia\Rdbms\ILBFactory; 11use Wikimedia\Rdbms\ILoadBalancer; 12 13/** 14 * @covers \MediaWiki\User\UserGroupManagerFactory 15 */ 16class UserGroupManagerFactoryTest extends MediaWikiUnitTestCase { 17 use FactoryArgTestTrait; 18 19 protected static function getFactoryClass() { 20 return UserGroupManagerFactory::class; 21 } 22 23 protected static function getInstanceClass() { 24 return UserGroupManager::class; 25 } 26 27 protected static function getExtraClassArgCount() { 28 return 1; 29 } 30 31 protected function getFactoryMethodName() { 32 return 'getUserGroupManager'; 33 } 34 35 protected function getIgnoredParamNames() { 36 return [ 'hookContainer', 'configuredReadOnlyMode' ]; 37 } 38 39 protected function getOverriddenMockValueForParam( ReflectionParameter $param ) { 40 if ( $param->getType() && $param->getType()->getName() === ILBFactory::class ) { 41 $mock = $this->createNoOpMock( ILBFactory::class, [ 'getMainLB' ] ); 42 $mock->method( 'getMainLB' ) 43 ->willReturn( $this->createNoOpMock( ILoadBalancer::class ) ); 44 return [ $mock ]; 45 } 46 return []; 47 } 48} 49