/** * @see EntityLookup::hasEntity */ public function hasEntity(EntityId $entityId) { $revision = $this->revisionGetter->getFromId($entityId); if (!$revision) { return false; } return true; }
/** * @dataProvider provideIds */ public function testGetFromId($id) { $api = $this->getMockApi(); $api->expects($this->once())->method('getRequest')->with($this->equalTo(new SimpleRequest('wbgetentities', array('ids' => 'Q1'))))->will($this->returnValue(array('entities' => array('Q123' => array('pageid' => '111', 'lastrevid' => '222', 'modified' => 'TIMESTAMP'))))); $deserializer = $this->getMockDeserializer(); $deserializer->expects($this->once())->method('deserialize')->with($this->equalTo(array('pageid' => '111', 'lastrevid' => '222', 'modified' => 'TIMESTAMP')))->will($this->returnValue(new Item())); $service = new RevisionGetter($api, $deserializer); $result = $service->getFromId($id); $this->assertInstanceOf('Mediawiki\\DataModel\\Revision', $result); $this->assertInstanceOf('Wikibase\\DataModel\\ItemContent', $result->getContent()); $this->assertInstanceOf('Wikibase\\DataModel\\Entity\\Item', $result->getContent()->getData()); $this->assertEquals(111, $result->getPageIdentifier()->getId()); $this->assertEquals('TIMESTAMP', $result->getTimestamp()); }