Exemple #1
0
 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);
 }