getWikibaseConnector(); $this->assertEquals( self::EXAMPLE_URL . 'wiki/Special:EntityPage/Q42', $mathWikibase->buildURL( 'Q42' ) ); } public function testFetchInvalidLanguage() { $mathWikibase = $this->getWikibaseConnector(); $this->expectException( 'InvalidArgumentException' ); $this->expectErrorMessage( 'Invalid language code specified.' ); $mathWikibase->fetchWikibaseFromId( 'Q1', '&' ); } public function testFetchNonExistingId() { $mathWikibase = $this->getWikibaseConnector(); $this->expectException( 'InvalidArgumentException' ); $this->expectErrorMessage( 'Non-existing Wikibase ID.' ); $mathWikibase->fetchWikibaseFromId( 'Q1', 'en' ); } private function newConnector(): RepoLinker { return new RepoLinker( new EntitySourceDefinitions( [ new DatabaseEntitySource( 'test', 'testdb', [ 'item' => [ 'namespaceId' => 123, 'slot' => 'main' ] ], self::EXAMPLE_URL . 'entity', '', '', '' ) ], new SubEntityTypesMapper( [] ) ), self::EXAMPLE_URL, '/wiki/$1', '' ); } /** * @return MathWikibaseConnector */ public function getWikibaseConnector(): MathWikibaseConnector { return new MathWikibaseConnector( new MathWikibaseConfig( WikibaseClient::getEntityIdParser(), WikibaseClient::getStore()->getEntityRevisionLookup(), WikibaseClient::getFallbackLabelDescriptionLookupFactory(), WikibaseClient::getSite() ), $this->newConnector(), new TestLogger() ); } }