/**
  * @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);
 }
 /**
  * Adds fake serialization to show a sitelink has been removed
  *
  * @since 0.5
  *
  * @param SiteLinkList $siteLinkList
  * @param array|string $path where the data is located
  */
 public function addRemovedSiteLinks(SiteLinkList $siteLinkList, $path)
 {
     $serializer = $this->serializerFactory->newSiteLinkSerializer();
     $values = array();
     foreach ($siteLinkList->toArray() as $siteLink) {
         $value = $serializer->serialize($siteLink);
         $value['removed'] = '';
         $values[$siteLink->getSiteId()] = $value;
     }
     if ($this->addMetaData) {
         $values = $this->modifier->modifyUsingCallback($values, null, $this->callbackFactory->getCallbackToSetArrayType('kvp', 'site'));
         $values[ApiResult::META_KVP_MERGE] = true;
     }
     $this->setList($path, 'sitelinks', $values, 'sitelink');
 }