createMock( LoadBalancer::class ); $lbFactory = $this->createMock( LBFactory::class ); $lbFactory ->method( 'getMainLB' ) ->with( $domain ) ->willReturn( $lb ); $blockRestrictionStore = $this->createMock( BlockRestrictionStore::class ); $blockRestrictionStoreFactory = $this->createMock( BlockRestrictionStoreFactory::class ); $blockRestrictionStoreFactory ->method( 'getBlockRestrictionStore' ) ->with( $domain ) ->willReturn( $blockRestrictionStore ); $factory = new DatabaseBlockStoreFactory( $this->createMock( ServiceOptions::class ), $this->createMock( LoggerInterface::class ), $this->createMock( ActorStoreFactory::class ), $blockRestrictionStoreFactory, $this->createMock( CommentStore::class ), $this->createMock( HookContainer::class ), $lbFactory, $this->createMock( ConfiguredReadOnlyMode::class ), $this->createMock( UserFactory::class ) ); $databaseBlockStore = $factory->getDatabaseBlockStore( $domain ); $this->assertInstanceOf( DatabaseBlockStore::class, $databaseBlockStore ); } public function provideDomains() { yield 'local wiki' => [ WikiAwareEntity::LOCAL ]; yield 'foreign wiki' => [ 'meta' ]; } }