/**
  * @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));
 }
 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());
 }
 /**
  * @return Deserializer
  */
 public function newEntityDeserializer()
 {
     $factory = new DeserializerFactory($this->newDataValueDeserializer(), new BasicEntityIdParser());
     return $factory->newEntityDeserializer();
 }
 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();
 }