public function semanticDataProvider() { // Is a dataprovider therefore can't use the setUp $this->semanticDataFactory = UtilityFactory::getInstance()->newSemanticDataFactory(); $this->dataValueFactory = DataValueFactory::getInstance(); $title = Title::newFromText('Foo'); #0 Empty container $foo = $this->semanticDataFactory->setSubject(DIWikiPage::newFromTitle($title))->newEmptySemanticData(); $provider[] = array($foo); #1 Single entry $foo = $this->semanticDataFactory->setSubject(DIWikiPage::newFromTitle($title))->newEmptySemanticData(); $foo->addDataValue($this->dataValueFactory->newPropertyValue('Has fooQuex', 'Bar')); $provider[] = array($foo); // #2 Single + single subobject entry $foo = $this->semanticDataFactory->setSubject(DIWikiPage::newFromTitle($title))->newEmptySemanticData(); $foo->addDataValue($this->dataValueFactory->newPropertyValue('Has fooQuex', 'Bar')); $subobject = new Subobject($title); $subobject->setSemanticData('Foo'); $subobject->addDataValue($this->dataValueFactory->newPropertyValue('Has subobjects', 'Bam')); $foo->addPropertyObjectValue($subobject->getProperty(), $subobject->getContainer()); $provider[] = array($foo); #3 Multiple entries $foo = $this->semanticDataFactory->setSubject(DIWikiPage::newFromTitle($title))->newEmptySemanticData(); $foo->addDataValue($this->dataValueFactory->newPropertyValue('Has fooQuex', 'Bar')); $foo->addDataValue($this->dataValueFactory->newPropertyValue('Has queez', 'Xeey')); $subobject = new Subobject($title); $subobject->setSemanticData('Foo'); $subobject->addDataValue($this->dataValueFactory->newPropertyValue('Has subobjects', 'Bam')); $subobject->addDataValue($this->dataValueFactory->newPropertyValue('Has fooQuex', 'Fuz')); $subobject->setSemanticData('Bar'); $subobject->addDataValue($this->dataValueFactory->newPropertyValue('Has fooQuex', 'Fuz')); $foo->addPropertyObjectValue($subobject->getProperty(), $subobject->getContainer()); $provider[] = array($foo); return $provider; }
protected function processExifData($rawExif) { $this->subobject = new Subobject($this->getSemanticData()->getSubject()->getTitle()); $this->subobject->setSemanticData('_EXIFDATA'); $this->addPropertyValuesFromExifData($rawExif); if ($this->subobject->getSemanticData()->isEmpty()) { return true; } $this->getSemanticData()->addPropertyObjectValue(new DIProperty(PropertyRegistry::getInstance()->getPropertyId('_EXIFDATA')), $this->subobject->getContainer()); return true; }
public function testSetSemanticWithInvalidIdThrowsException() { $instance = new Subobject(Title::newFromText(__METHOD__)); $this->setExpectedException('InvalidArgumentException'); $instance->setSemanticData(''); }
/** * @return array */ public function typeChangeSemanticDataProvider() { $provider = array(); $title = \Title::newFromText(__METHOD__); // #0 Single entry $foo = new SemanticData(DIWikiPage::newFromTitle($title)); $foo->addDataValue(DataValueFactory::getInstance()->newPropertyValue('Has fooQuex', 'Bar')); $provider[] = array($foo, 'Has_fooQuex'); // #1 Single subobject entry $foo = new SemanticData(DIWikiPage::newFromTitle($title)); $subobject = new Subobject($title); $subobject->setSemanticData('Foo'); $subobject->addDataValue(DataValueFactory::getInstance()->newPropertyValue('Has fomQuex', 'Bam')); $foo->addPropertyObjectValue($subobject->getProperty(), $subobject->getContainer()); $provider[] = array($foo, 'Has_fomQuex'); // #2 Combined $foo = new SemanticData(DIWikiPage::newFromTitle($title)); $foo->addDataValue(DataValueFactory::getInstance()->newPropertyValue('Has fooQuex', 'Bar')); $foo->addPropertyObjectValue($subobject->getProperty(), $subobject->getContainer()); $provider[] = array($foo, 'Has_fomQuex'); return $provider; }