/** * @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'); }