/** * @param EntityId|Item|Property $target * * @throws UnexpectedValueException * @return EntityId|SiteLink * * @todo Fix duplicated code */ private function getEntityIdentifierFromTarget($target) { if ($target instanceof Item || $target instanceof Property) { return $target->getId(); } else { return $target; } }
/** * @param Property $property * * @return array[] */ private function toDiffArray(Property $property) { $array = array(); $array['aliases'] = $property->getFingerprint()->getAliasGroups()->toTextArray(); $array['label'] = $property->getFingerprint()->getLabels()->toTextArray(); $array['description'] = $property->getFingerprint()->getDescriptions()->toTextArray(); return $array; }
/** * @see PropertyInfoTable::setPropertyInfo * * @param Property $property * * @return array Information to be stored in the "pi_info" column of the "wb_property_info" * table. Must be an array and can contain anything that can be encoded by json_encode. */ public function buildPropertyInfo(Property $property) { $info = array(PropertyInfoStore::KEY_DATA_TYPE => $property->getDataTypeId()); $formatterUrl = $this->getFormatterUrl($property->getStatements()); if ($formatterUrl !== null) { $info[PropertyInfoStore::KEY_FORMATTER_URL] = $formatterUrl; } return $info; }
public function testGivenKnownPropertyId_propertyLabelIsReturned() { $property = new Property(new PropertyId('P1337'), null, 'string'); $property->getFingerprint()->setLabel('en', 'postal code'); $this->testEnvironment->insertProperty($property); $client = $this->createClient(); $client->request('GET', '/properties/P1337/label'); $this->assertSuccessResponse('postal code', $client->getResponse()); }
public function testGivenKnownPropertyId_propertyDescriptionIsReturned() { $property = new Property(new PropertyId('P1337'), null, 'string'); $property->getFingerprint()->setDescription('en', 'foo bar baz'); $this->testEnvironment->insertProperty($property); $client = $this->createClient(); $client->request('GET', '/properties/P1337/description'); $this->assertSuccessResponse('foo bar baz', $client->getResponse()); }
public function testGivenKnownPropertyId_propertyLabelIsReturned() { $property = new Property(new PropertyId('P1337'), null, 'string'); $property->getFingerprint()->setAliasGroup('en', ['foo', 'bar', 'baz']); $this->testEnvironment->insertProperty($property); $client = $this->createClient(); $client->request('GET', '/properties/P1337/aliases'); $this->assertSuccessResponse(['foo', 'bar', 'baz'], $client->getResponse()); }
private function newCountryProperty() { $fingerprint = new Fingerprint(); $fingerprint->setLabel('en', 'country'); $fingerprint->setLabel('nl', 'land'); $fingerprint->setDescription('en', 'sovereign state of this item'); $countryProperty = new Property(new PropertyId('P17'), $fingerprint, 'wikibase-item'); $countryProperty->getStatements()->addNewStatement(new PropertyValueSnak(42, new StringValue('foobar'))); return $countryProperty; }
/** * @param PropertyId $id * @param string $dataTypeId * @param string $label * * @return Property */ private function getTestProperty(PropertyId $id, $dataTypeId, $label) { $property = Property::newFromType($dataTypeId); $property->setId($id); $property->setLabel('de', $label); return $property; }
public function testValidConstruction() { $property = Property::newFromType('string'); $content = new PropertyContent($property); $this->assertEquals($property, $content->getData()); $this->assertInternalType('string', $content->getHash()); }
private function newProperty() { $property = Property::newFromType('kittens'); $property->setId(1337); $property->setFingerprint($this->newFingerprint()); return $property; }
public function entityProvider() { $empty = new Item(new ItemId('Q1')); $simple = new Item(new ItemId('Q1')); $simple->setLabel('en', 'Test'); return array('Property' => array(Property::newFromType('string'), null), 'empty' => array($empty, null), 'empty json' => array($empty, CONTENT_FORMAT_JSON), 'simple' => array($simple, null), 'simple json' => array($simple, CONTENT_FORMAT_JSON), 'simple php' => array($simple, CONTENT_FORMAT_SERIALIZED)); }
public function setup() { parent::setup(); if (!isset(self::$hasSetup)) { $wikibaseRepo = WikibaseRepo::getDefaultInstance(); $store = $wikibaseRepo->getEntityStore(); $prop = Property::newFromType('string'); $store->saveEntity($prop, 'EditEntityTestP56', $GLOBALS['wgUser'], EDIT_NEW); self::$idMap['%P56%'] = $prop->getId()->getSerialization(); self::$idMap['%StringProp%'] = $prop->getId()->getSerialization(); $prop = Property::newFromType('string'); $store->saveEntity($prop, 'EditEntityTestP72', $GLOBALS['wgUser'], EDIT_NEW); self::$idMap['%P72%'] = $prop->getId()->getSerialization(); $this->initTestEntities(array('Berlin'), self::$idMap); self::$idMap['%Berlin%'] = EntityTestHelper::getId('Berlin'); $p56 = self::$idMap['%P56%']; $berlinData = EntityTestHelper::getEntityOutput('Berlin'); self::$idMap['%BerlinP56%'] = $berlinData['claims'][$p56][0]['id']; $badge = new Item(); $store->saveEntity($badge, 'EditEntityTestQ42', $GLOBALS['wgUser'], EDIT_NEW); self::$idMap['%Q42%'] = $badge->getId()->getSerialization(); $badge = new Item(); $store->saveEntity($badge, 'EditEntityTestQ149', $GLOBALS['wgUser'], EDIT_NEW); self::$idMap['%Q149%'] = $badge->getId()->getSerialization(); $badge = new Item(); $store->saveEntity($badge, 'EditEntityTestQ32', $GLOBALS['wgUser'], EDIT_NEW); self::$idMap['%Q32%'] = $badge->getId()->getSerialization(); $wikibaseRepo->getSettings()->setSetting('badgeItems', array(self::$idMap['%Q42%'] => '', self::$idMap['%Q149%'] => '', 'Q99999' => '')); } self::$hasSetup = true; }
public function testIsStub_nonStubProperty() { $Property = Property::newFromType('foo'); $Property->getStatements()->addNewStatement(new PropertyNoValueSnak(42)); $content = PropertyContent::newFromProperty($Property); $this->assertFalse($content->isStub()); }
public function getDataTypeForPropertyProvider() { $argLists = array(); $emptyInfoStore = new MockPropertyInfoStore(); $mockInfoStore = new MockPropertyInfoStore(); $entityLookup = new MockRepository(); $propertyDataTypeLookup = new EntityRetrievingDataTypeLookup($entityLookup); foreach ($this->propertiesAndTypes as $propertyId => $dataTypeId) { $id = new PropertyId($propertyId); // register property info $mockInfoStore->setPropertyInfo($id, array(PropertyInfoStore::KEY_DATA_TYPE => $dataTypeId)); // register property as an entity, for the fallback $property = Property::newFromType($dataTypeId); $property->setId($id); $entityLookup->putEntity($property); // try with a working info store $argLists[] = array($mockInfoStore, null, $id, $dataTypeId); // try with via fallback $argLists[] = array($emptyInfoStore, $propertyDataTypeLookup, $id, $dataTypeId); } // try unknown property $id = new PropertyId('P23'); // try with a working info store $argLists[] = array($mockInfoStore, null, $id, false); // try with via fallback $argLists[] = array($emptyInfoStore, $propertyDataTypeLookup, $id, false); return $argLists; }
/** * @return EntityDocument[] */ protected function getKnownEntities() { $q1 = new Item(new ItemId('Q1')); $q1->setLabel('en', 'label:Q1/en'); $q1->setLabel('de', 'label:Q1/de'); $q1->setDescription('en', 'description:Q1/en'); $q1->setDescription('de', 'description:Q1/de'); $q1->setAliases('en', array('alias:Q1/en#1')); $q1->setAliases('de', array('alias:Q1/de#1', 'alias:Q1/de#2')); $q2 = new Item(new ItemId('Q2')); $q2->setLabel('en', 'label:Q2/en'); $q2->setLabel('de', 'label:Q2/de'); $q2->setAliases('en', array('alias:Q2/en#1')); $q2->setAliases('de', array('alias:Q2/de#1', 'alias:Q2/de#2')); $p2 = Property::newFromType('string'); $p2->setId(new PropertyId('P2')); $p2->setLabel('en', 'label:P2/en'); $p2->setLabel('de', 'label:P2/de'); $p2->setDescription('en', 'description:P2/en'); $p2->setDescription('de', 'description:P2/de'); $p2->setAliases('en', array('alias:P2/en#1')); $p2->setAliases('de', array('alias:P2/de#1', 'alias:P2/de#2')); $p3 = Property::newFromType('string'); $p3->setId(new PropertyId('P3')); $p3->setLabel('en', 'label:P3/en'); $p3->setLabel('de', 'label:P3/de'); $p3->setDescription('en', 'description:P3/en'); $p3->setDescription('de', 'description:P3/de'); return array($q1, $q2, $p2, $p3); }
protected function storeNewProperty() { global $wgUser; $store = WikibaseRepo::getDefaultInstance()->getEntityStore(); $property = Property::newFromType('string'); $entityRevision = $store->saveEntity($property, 'testing', $wgUser, EDIT_NEW); $this->lastPropertyId = $entityRevision->getEntity()->getId(); }
/** * @param EntityId $id * @param Statement[] $statements * * @return Entity */ protected function makeEntity(EntityId $id, array $statements = array()) { $property = Property::newFromType('string'); $property->setId($id); $property->setLabel('en', "label:{$id}"); $property->setDescription('en', "description:{$id}"); $property->setStatements(new StatementList($statements)); return $property; }
protected static function getNewItemAndProperty() { $store = WikibaseRepo::getDefaultInstance()->getEntityStore(); $item = new Item(); $store->saveEntity($item, 'test', $GLOBALS['wgUser'], EDIT_NEW); $property = Property::newFromType('commonsMedia'); $store->saveEntity($property, 'test', $GLOBALS['wgUser'], EDIT_NEW); return array($item, $property); }
protected function newEntity(EntityId $id = null) { if (!$id) { $id = new PropertyId('P7'); } $property = Property::newFromType('string'); $property->setId($id); return $property; }
public function testClaimsAreDiffed() { $firstProperty = Property::newFromType('kittens'); $secondProperty = Property::newFromType('kittens'); $secondProperty->getStatements()->addNewStatement(new PropertySomeValueSnak(42), null, null, 'guid'); $differ = new PropertyDiffer(); $diff = $differ->diffProperties($firstProperty, $secondProperty); $this->assertCount(1, $diff->getClaimsDiff()->getAdditions()); }
/** * @return EntityDocument[] */ private function getNewEntities() { $property = Property::newFromType('string'); $this->save($property); $propertyId = $property->getId(); $item = new Item(); $this->addStatements($item, $propertyId); $this->save($item); return array($property, $item); }
private function getMockRepository() { $propertyId = new PropertyId('P1337'); $property = Property::newFromType('string'); $property->setId($propertyId); $property->setLabel('en', 'a kitten!'); $mockRepository = new MockRepository(); $mockRepository->putEntity($property); return $mockRepository; }
/** * @return EntityLookup */ private function getEntityLookup() { $q8 = new Item(new ItemId('Q8')); $p8 = Property::newFromType('string'); $p8->setId(8); $entityLookup = new MockRepository(); $entityLookup->putEntity($q8); $entityLookup->putEntity($p8); return $entityLookup; }
public function provideBuildPropertyInfo() { $cases = array(); $cases[] = array(Property::newFromType('foo'), array('type' => 'foo')); $property = Property::newFromType('foo'); $snak = new PropertyValueSnak(new PropertyId('P42'), new StringValue('test')); $property->getStatements()->addNewStatement($snak); $cases[] = array($property, array('type' => 'foo', 'formatterURL' => 'test')); return $cases; }
/** * @return EntityLookup */ private function newEntityLookup() { $lookup = new InMemoryEntityLookup(); foreach ($this->propertiesAndTypes as $propertyId => $dataTypeId) { $property = Property::newFromType($dataTypeId); $property->setId(new PropertyId($propertyId)); $lookup->addEntity($property); } return $lookup; }
private function getSimpleEntities() { $item = new Item(); $item->setLabel('en', 'Item'); $item->setDescription('en', 'Item description'); $property = Property::newFromType('string'); $property->setLabel('en', 'Property'); $property->setDescription('en', 'Property description'); return array($item, $property); }
/** * Returns a MockRepository. The following entities are defined: * * - Items Q23 * - Item Q42 * - Redirect Q2233 -> Q23 * - Redirect Q222333 -> Q23 * - Property P5 (item reference) * * @return MockRepository */ private function getMockRepository() { $mockRepo = new MockRepository(); $p5 = new Property(new PropertyId('P5'), null, 'wikibase-item'); $p5->getFingerprint()->setLabel('en', 'Label5'); $mockRepo->putEntity($p5); $q23 = new Item(new ItemId('Q23')); $q23->getFingerprint()->setLabel('en', 'Label23'); $mockRepo->putEntity($q23); $q2233 = new EntityRedirect(new ItemId('Q2233'), new ItemId('Q23')); $mockRepo->putRedirect($q2233); $q222333 = new EntityRedirect(new ItemId('Q222333'), new ItemId('Q23')); $mockRepo->putRedirect($q222333); $q42 = new Item(new ItemId('Q42')); $q42->getFingerprint()->setLabel('en', 'Label42'); $snak = new PropertyValueSnak($p5->getId(), new EntityIdValue($q2233->getEntityId())); $q42->getStatements()->addNewStatement($snak, null, null, 'Q42$DEADBEEF'); $mockRepo->putEntity($q42); return $mockRepo; }
private static function newEntity($entityType) { switch ($entityType) { case Item::ENTITY_TYPE: return new Item(); case Property::ENTITY_TYPE: return Property::newFromType('string'); default: throw new \RuntimeException("unknown entity type: {$entityType}"); } }
/** * @param EntityId $id * * @throws InvalidArgumentException * @return Item|Property */ protected function makeEntity(EntityId $id) { if ($id instanceof ItemId) { $entity = new Item($id); $entity->getSiteLinkList()->addNewSiteLink('test', 'Foo'); } elseif ($id instanceof PropertyId) { $entity = new Property($id, null, 'wibblywobbly'); } else { throw new InvalidArgumentException('Unsupported entity type ' . $id->getEntityType()); } $entity->setLabel('en', 'label:' . $id->getSerialization()); return $entity; }
/** * @return EntityRevision[] */ protected function getTestRevisions() { $entities = array(); $item = new Item(new ItemId('Q42')); $entities[11] = new EntityRevision($item, 11, '20130101001100'); $item = new Item(new ItemId('Q42')); $item->setLabel('en', "Foo"); $entities[12] = new EntityRevision($item, 12, '20130101001200'); $prop = Property::newFromType("string"); $prop->setId(753); $entities[13] = new EntityRevision($prop, 13, '20130101001300'); return $entities; }