Example #1
0
 /**
  * @covers \caption_record::serializeYAML
  */
 public function testSerializeYAML()
 {
     foreach (self::$DI['record_1']->get_databox()->get_meta_structure() as $databox_field) {
         $n = $databox_field->is_multi() ? 3 : 1;
         for ($i = 0; $i < $n; $i++) {
             \caption_Field_Value::create(self::$DI['app'], $databox_field, self::$DI['record_1'], \random::generatePassword());
         }
     }
     $parser = new Yaml();
     $yaml = $parser->parse(self::$DI['app']['serializer.caption']->serialize($this->object, CaptionSerializer::SERIALIZE_YAML));
     foreach (self::$DI['record_1']->get_caption()->get_fields() as $field) {
         if ($field->get_databox_field()->is_multi()) {
             $tagname = $field->get_name();
             $retrieved = [];
             foreach ($yaml["record"]["description"][$tagname] as $value) {
                 $retrieved[] = (string) $value;
             }
             $values = $field->get_values();
             $this->assertEquals(count($values), count($retrieved));
             foreach ($values as $val) {
                 $this->assertTrue(in_array($val->getValue(), $retrieved));
             }
         } else {
             $tagname = $field->get_name();
             $data = $field->get_values();
             $value = array_pop($data);
             $this->assertEquals($value->getValue(), (string) $yaml["record"]["description"][$tagname]);
         }
     }
 }
Example #2
0
 /**
  *
  * @todo move this function to caption_record
  * @param  Array          $params An array containing three keys : meta_struct_id (int) , meta_id (int or null) and value (Array)
  * @return record_adapter
  */
 protected function set_metadata(array $params, databox $databox)
 {
     $mandatoryParams = ['meta_struct_id', 'meta_id', 'value'];
     foreach ($mandatoryParams as $param) {
         if (!array_key_exists($param, $params)) {
             throw new Exception_InvalidArgument(sprintf('Invalid metadata, missing key %s', $param));
         }
     }
     if (!is_scalar($params['value'])) {
         throw new Exception('Metadata value should be scalar');
     }
     $databox_field = databox_field::get_instance($this->app, $databox, $params['meta_struct_id']);
     $caption_field = new caption_field($this->app, $databox_field, $this);
     $vocab = $vocab_id = null;
     if (isset($params['vocabularyId']) && $databox_field->getVocabularyControl()) {
         try {
             $vocab = $databox_field->getVocabularyControl();
             $vocab_id = $params['vocabularyId'];
             $vocab->validate($vocab_id);
         } catch (\Exception $e) {
             $vocab = $vocab_id = null;
         }
     }
     if (trim($params['meta_id']) !== '') {
         $tmp_val = trim($params['value']);
         $caption_field_value = $caption_field->get_value($params['meta_id']);
         if ($tmp_val === '') {
             $caption_field_value->delete();
             unset($caption_field_value);
         } else {
             $caption_field_value->set_value($params['value']);
             if ($vocab && $vocab_id) {
                 $caption_field_value->setVocab($vocab, $vocab_id);
             }
         }
     } else {
         $caption_field_value = caption_Field_Value::create($this->app, $databox_field, $this, $params['value'], $vocab, $vocab_id);
     }
     $this->caption_record = null;
     return $this;
 }
 public function tearDown()
 {
     ACLProvider::purge();
     \collection::purge();
     \databox::purge();
     \caption_field::purge();
     \caption_Field_Value::purge();
     \databox_field::purge();
     \databox_status::purge();
     \thesaurus_xpath::purge();
     /**
      * Kris Wallsmith pro-tip
      * @see http://kriswallsmith.net/post/18029585104/faster-phpunit
      */
     $refl = new ReflectionObject($this);
     foreach ($refl->getProperties() as $prop) {
         if (!$prop->isStatic() && 0 !== strpos($prop->getDeclaringClass()->getName(), 'PHPUnit_') && 0 !== strpos($prop->getDeclaringClass()->getName(), 'Phraseanet')) {
             $prop->setAccessible(true);
             $prop->setValue($this, null);
         }
     }
     $refl = null;
     parent::tearDown();
     //In case some executed script modify 'max_execution_time' ini var
     //Initialize set_time_limit(0) which is the default value for PHP CLI
     set_time_limit(0);
 }
Example #4
0
 public function testSet_record_metadatas()
 {
     $databox = self::$DI['record_1']->get_databox();
     $request = new Request(["salut" => "salut c'est la fete"], [], [], [], [], ['HTTP_Accept' => 'application/json']);
     $result = $this->object->set_record_metadatas($request, self::$DI['record_1']->get_sbas_id(), self::$DI['record_1']->get_record_id());
     $this->assertEquals(400, $result->get_http_code());
     $request = new Request(["metadatas" => "salut c'est la fete"], [], [], [], [], ['HTTP_Accept' => 'application/json']);
     $this->object->set_record_metadatas($request, self::$DI['record_1']->get_sbas_id(), self::$DI['record_1']->get_record_id());
     $this->assertEquals(400, $result->get_http_code());
     if (sizeof(self::$DI['record_1']->get_caption()->get_fields()) == 0) {
         $caption_field_value = caption_Field_Value::create(self::$DI['app'], databox_field::get_instance(self::$DI['app'], $databox, 1), self::$DI['record_1'], 'my value');
     }
     $metadatas = [];
     foreach (self::$DI['record_1']->get_databox()->get_meta_structure()->get_elements() as $field) {
         try {
             $values = self::$DI['record_1']->get_caption()->get_field($field->get_name())->get_values();
             $value = array_pop($values);
             $meta_id = $value->getId();
         } catch (\Exception $e) {
             $meta_id = null;
         }
         $metadatas[] = ['meta_id' => $meta_id, 'meta_struct_id' => $field->get_id(), 'value' => 'poOM POOM TCHOK ' . $field->get_id()];
     }
     $request = new Request(["metadatas" => $metadatas], [], [], [], [], ['HTTP_Accept' => 'application/json']);
     $result = $this->object->set_record_metadatas($request, self::$DI['record_1']->get_sbas_id(), self::$DI['record_1']->get_record_id());
     $response = json_decode($result->format(), true);
     $this->assertEquals($response['meta']['http_code'], 200);
     $this->checkResponseField($result, "record_metadatas", 'array');
 }
Example #5
0
 public static function purge()
 {
     self::$localCache = [];
 }
Example #6
0
 /**
  * Retrieve information about a caption field
  *
  * @param  caption_field $field
  *
  * @return array
  */
 private function list_record_caption_field(\caption_Field_Value $value, \caption_field $field)
 {
     return ['meta_id' => $value->getId(), 'meta_structure_id' => $field->get_meta_struct_id(), 'name' => $field->get_name(), 'labels' => ['fr' => $field->get_databox_field()->get_label('fr'), 'en' => $field->get_databox_field()->get_label('en'), 'de' => $field->get_databox_field()->get_label('de'), 'nl' => $field->get_databox_field()->get_label('nl')], 'value' => $value->getValue()];
 }