private function assertThatSemanticDataIsIndeedEmpty(SemanticData $semanticData) { $property = new DIProperty('_SKEY'); foreach ($semanticData->getPropertyValues($property) as $dataItem) { $semanticData->removePropertyObjectValue($property, $dataItem); } return $semanticData->isEmpty(); }
public function testClear() { $title = Title::newFromText(__METHOD__); $instance = new SemanticData(DIWikiPage::newFromTitle($title)); $instance->addPropertyObjectValue(new DIProperty('_MDAT'), DITime::newFromTimestamp(1272508903)); $this->assertFalse($instance->isEmpty()); $instance->clear(); $this->assertTrue($instance->isEmpty()); }
/** * Ensure that the SemanticData container is really empty and not filled * with a single "pseudo" property that obscures from re-reading the data * * MW's internal Parser does iterate the ParserOuput object several times * which can leave a '_SKEY' property while in fact the the container is * empty. * * @since 1.9 * * @param SemanticData $semanticData * * @return boolean */ protected function isEmpty(SemanticData $semanticData) { $property = new DIProperty('_SKEY'); foreach ($semanticData->getPropertyValues($property) as $dataItem) { $semanticData->removePropertyObjectValue($property, $dataItem); } return $semanticData->isEmpty(); }