/** * @dataProvider kvpKeyNameProvider */ public function testGetCallbackToSetArrayType($kvpKeyName, $expected) { $instance = new CallbackFactory(); $callback = $instance->getCallbackToSetArrayType('default', $kvpKeyName); $this->assertInternalType('callable', $callback); $array = array(); $array = $callback($array); $this->assertSame($expected, $array); }
/** * @param array $array * @param string $claimPath to the claim array/arrays with trailing / * * @return array */ private function getClaimsArrayWithMetaData(array $array, $claimPath = '') { $metaDataModifications = array('references/*/snaks/*' => array($this->callbackFactory->getCallbackToIndexTags('snak')), 'references/*/snaks' => array($this->callbackFactory->getCallbackToSetArrayType('kvp', 'id'), $this->callbackFactory->getCallbackToIndexTags('property')), 'references/*/snaks-order' => array($this->callbackFactory->getCallbackToIndexTags('property')), 'references' => array($this->callbackFactory->getCallbackToIndexTags('reference')), 'qualifiers/*' => array($this->callbackFactory->getCallbackToIndexTags('qualifiers')), 'qualifiers' => array($this->callbackFactory->getCallbackToSetArrayType('kvp', 'id'), $this->callbackFactory->getCallbackToIndexTags('property')), 'qualifiers-order' => array($this->callbackFactory->getCallbackToIndexTags('property')), 'mainsnak' => array($this->callbackFactory->getCallbackToAddDataTypeToSnak($this->dataTypeLookup))); foreach ($metaDataModifications as $path => $callbacks) { foreach ($callbacks as $callback) { $array = $this->modifier->modifyUsingCallback($array, $claimPath . $path, $callback); } } return $array; }