/** * @dataProvider referencesProvider */ public function testReferenceSerializationRoundtrips(ReferenceList $references) { $serializerFactory = new SerializerFactory(new DataValueSerializer()); $deserializerFactory = new DeserializerFactory(new DataValueDeserializer(), new BasicEntityIdParser()); $serialization = $serializerFactory->newReferencesSerializer()->serialize($references); $newReferences = $deserializerFactory->newReferencesDeserializer()->deserialize($serialization); $this->assertReferenceListEquals($references, $newReferences); }
/** * @dataProvider entityProvider */ public function testEntitySerializationRoundtrips(Entity $entity) { $serializerFactory = new SerializerFactory(new DataValueSerializer()); $deserializerFactory = new DeserializerFactory(new DataValueDeserializer(), new BasicEntityIdParser()); $serialization = $serializerFactory->newEntitySerializer()->serialize($entity); $newEntity = $deserializerFactory->newEntityDeserializer()->deserialize($serialization); $this->assertTrue($entity->equals($newEntity)); }
/** * @dataProvider siteLinkProvider */ public function testSiteLinkSerializationRoundtrips(SiteLink $siteLink) { $serializerFactory = new SerializerFactory(new DataValueSerializer()); $deserializerFactory = new DeserializerFactory(new DataValueDeserializer(), new BasicEntityIdParser()); $serialization = $serializerFactory->newSiteLinkSerializer()->serialize($siteLink); $newSiteLink = $deserializerFactory->newSiteLinkDeserializer()->deserialize($serialization); $this->assertEquals($siteLink, $newSiteLink); }
/** * @dataProvider snakListProvider */ public function testSnakSerializationRoundtrips(SnakList $snaks) { $serializerFactory = new SerializerFactory(new DataValueSerializer()); $deserializerFactory = new DeserializerFactory(new DataValueDeserializer(), new BasicEntityIdParser()); $serialization = $serializerFactory->newSnakListSerializer()->serialize($snaks); $newSnaks = $deserializerFactory->newSnakListDeserializer()->deserialize($serialization); $this->assertEquals($snaks, $newSnaks); }
/** * @dataProvider snaksProvider */ public function testSnakSerializationRoundtrips(Statement $statement) { $serializerFactory = new SerializerFactory(new DataValueSerializer()); $deserializerFactory = new DeserializerFactory(new DataValueDeserializer(), new BasicEntityIdParser()); $serialization = $serializerFactory->newStatementSerializer()->serialize($statement); $newStatement = $deserializerFactory->newStatementDeserializer()->deserialize($serialization); $this->assertEquals($statement->getHash(), $newStatement->getHash()); }
/** * @dataProvider referenceProvider */ public function testSnakSerializationRoundtrips(Reference $reference) { $serializerFactory = new SerializerFactory(new DataValueSerializer()); $deserializerFactory = new DeserializerFactory(new DataValueDeserializer(), new BasicEntityIdParser()); $serialization = $serializerFactory->newReferenceSerializer()->serialize($reference); $newReference = $deserializerFactory->newReferenceDeserializer()->deserialize($serialization); $this->assertTrue($reference->equals($newReference)); }
/** * Unserializes a serialized Reference object (if not unserialized already). * * @param array|Reference $reference * @return Reference Reference */ protected function unserializeReference($reference) { if (is_array($reference)) { $reference = $this->deserializerFactory->newReferenceDeserializer()->deserialize($reference); } return $reference; }
protected function assertEntitySerialization(EntityId $id, $data) { $expectedEntity = $this->makeEntity($id); if (!$expectedEntity) { return; } $deserializer = $this->deserializerFactory->newEntityDeserializer(); $actualEntity = $deserializer->deserialize($data); $this->assertTrue($expectedEntity->equals($actualEntity), 'Round trip failed for ' . $id->getSerialization()); }
/** * @see ApiBase::execute * * @since 0.3 */ public function execute() { $params = $this->extractRequestParams(); $this->validateParameters($params); $entityId = $this->guidParser->parse($params['statement'])->getEntityId(); if (isset($params['baserevid'])) { $entityRevision = $this->loadEntityRevision($entityId, (int) $params['baserevid']); } else { $entityRevision = $this->loadEntityRevision($entityId); } $entity = $entityRevision->getEntity(); $summary = $this->modificationHelper->createSummary($params, $this); $claim = $this->modificationHelper->getStatementFromEntity($params['statement'], $entity); if (isset($params['reference'])) { $this->validateReferenceHash($claim, $params['reference']); } if (isset($params['snaks-order'])) { $snaksOrder = $this->getArrayFromParam($params['snaks-order']); } else { $snaksOrder = array(); } $deserializer = $this->deserializerFactory->newSnakListDeserializer(); /** @var SnakList $snakList */ try { $snakList = $deserializer->deserialize($this->getArrayFromParam($params['snaks'])); } catch (DeserializationException $e) { $this->errorReporter->dieError('Failed to get reference from reference Serialization ' . $e->getMessage(), 'snak-instantiation-failure'); } $snakList->orderByProperty($snaksOrder); $newReference = new Reference($snakList); $changeOp = $this->getChangeOp($newReference); $this->modificationHelper->applyChangeOp($changeOp, $entity, $summary); $status = $this->saveChanges($entity, $summary); $resultBuilder = $this->getResultBuilder(); $resultBuilder->addRevisionIdFromStatusToResult($status, 'pageinfo'); $resultBuilder->markSuccess(); $resultBuilder->addReference($newReference); }
/** * @return Deserializer */ public function newEntityDeserializer() { $factory = new DeserializerFactory($this->newDataValueDeserializer(), new BasicEntityIdParser()); return $factory->newEntityDeserializer(); }
private function getSnakDeserializer(array $dataValueClasses = array()) { $factory = new DeserializerFactory(new DataValueDeserializer($dataValueClasses), new BasicEntityIdParser()); return $factory->newSnakDeserializer(); }
private function newEntityDeserializer() { $wikibaseRepo = WikibaseRepo::getDefaultInstance(); $deserializerFactory = new DeserializerFactory($wikibaseRepo->getDataValueDeserializer(), $wikibaseRepo->getEntityIdParser()); return $deserializerFactory->newEntityDeserializer(); }
public function getEntityDeserializer() : Deserializer { $factory = new DeserializerFactory($this->newDataValueDeserializer(), $this->newEntityIdParser()); return $factory->newEntityDeserializer(); }
protected function setUp() { $deserializerFactory = new DeserializerFactory(new DataValueDeserializer(array('boolean' => 'DataValues\\BooleanValue', 'number' => 'DataValues\\NumberValue', 'string' => 'DataValues\\StringValue', 'unknown' => 'DataValues\\UnknownValue', 'globecoordinate' => 'DataValues\\GlobeCoordinateValue', 'monolingualtext' => 'DataValues\\MonolingualTextValue', 'multilingualtext' => 'DataValues\\MultilingualTextValue', 'quantity' => 'DataValues\\QuantityValue', 'time' => 'DataValues\\TimeValue', 'wikibase-entityid' => 'Wikibase\\DataModel\\Entity\\EntityIdValue')), new BasicEntityIdParser()); $this->deserializer = $deserializerFactory->newEntityDeserializer(); }