callbackContainerFactory = new CallbackContainerFactory(); $this->servicesFileDir = $GLOBALS['smwgServicesFileDir']; } /** * @dataProvider servicesProvider */ public function testCanConstruct( $service, $parameters, $expected ) { array_unshift( $parameters, $service ); $containerBuilder = $this->callbackContainerFactory->newCallbackContainerBuilder(); $containerBuilder->registerFromFile( $this->servicesFileDir . '/' . 'mediawiki.php' ); $this->assertInstanceOf( $expected, call_user_func_array( [ $containerBuilder, 'create' ], $parameters ) ); } public function servicesProvider() { $title = $this->getMockBuilder( '\MediaWiki\Title\Title' ) ->disableOriginalConstructor() ->getMock(); $title->expects( $this->any() ) ->method( 'canExist' ) ->willReturn( true ); $provider[] = [ 'WikiPage', [ $title ], '\WikiPage' ]; $provider[] = [ 'DBLoadBalancer', [], ILoadBalancer::class ]; /* $database = $this->getMockBuilder( '\DatabaeBase' ) ->disableOriginalConstructor() ->getMock(); $provider[] = array( 'DefaultSearchEngineTypeForDB', array( $database ), '\SearchEngine' ); */ $provider[] = [ 'MediaWikiLogger', [], '\Psr\Log\LoggerInterface' ]; $provider[] = [ 'JobQueueGroup', [], '\JobQueueGroup' ]; $provider[] = [ 'SearchEngineConfig', [], '\SearchEngineConfig' ]; return $provider; } }