public function testRightModels() { $namespaces = common_ext_NamespaceManager::singleton()->getAllNamespaces(); $localNamespace = $namespaces[LOCAL_NAMESPACE . '#']; // In tao context, the only one model which is updatable $updatableModels = core_kernel_persistence_smoothsql_SmoothModel::getUpdatableModelIds(); $this->assertEquals(1, count($updatableModels)); $this->assertEquals(1, $localNamespace->getModelId()); $readableModels = core_kernel_persistence_smoothsql_SmoothModel::getReadableModelIds(); $this->assertTrue(count($readableModels) > 3); $this->assertTrue(array_search(1, $readableModels) !== false); $this->assertTrue(array_search(2, $readableModels) !== false); $this->assertTrue(array_search(3, $readableModels) !== false); $this->assertTrue(array_search(4, $readableModels) !== false); // Try to delete a resource of a locked model $property = new core_kernel_classes_Property(RDFS_LABEL); $domain = new core_kernel_classes_Property(RDFS_DOMAIN, __METHOD__); $this->assertFalse($property->removePropertyValues($domain, array('pattern' => RDFS_LABEL))); // Try to remove a property value which is lg dependent of a locked model $clazz = new core_kernel_classes_Class('http://www.tao.lu/middleware/Rules.rdf#And'); $this->assertFalse($clazz->removePropertyValueByLg($property, 'EN')); }
/** * Advanced property handling * * @param array $propertyValues */ protected function saveAdvProperty($propertyValues) { // might break using hard $range = array(); foreach ($propertyValues as $key => $value) { if (is_array($value)) { // set the range foreach ($value as $v) { $range[] = new core_kernel_classes_Class(tao_helpers_Uri::decode($v)); } } else { $values[tao_helpers_Uri::decode($key)] = tao_helpers_Uri::decode($value); } } //if label is empty $validator = new tao_helpers_form_validators_NotEmpty(array('message' => __('Property\'s label field is required'))); if (!$validator->evaluate($values[RDFS_LABEL])) { throw new Exception($validator->getMessage()); } $property = new core_kernel_classes_Property($values['uri']); unset($values['uri']); $property->removePropertyValues(new core_kernel_classes_Property(RDFS_RANGE)); if (!empty($range)) { foreach ($range as $r) { $property->setRange($r); } } $this->bindProperties($property, $values); }
/** * Advanced property handling * * @param array $propertyValues */ protected function saveAdvProperty($propertyValues) { // might break using hard $range = array(); foreach ($propertyValues as $key => $value) { if (is_array($value)) { // set the range foreach ($value as $v) { $range[] = new core_kernel_classes_Class(tao_helpers_Uri::decode($v)); } } else { $values[tao_helpers_Uri::decode($key)] = tao_helpers_Uri::decode($value); } } $property = new core_kernel_classes_Property($values['uri']); unset($values['uri']); $property->removePropertyValues(new core_kernel_classes_Property(RDFS_RANGE)); if (!empty($range)) { foreach ($range as $r) { $property->setRange($r); } } $this->bindProperties($property, $values); }