/**
  *  test CRUD (temp: for one record) for future create data providers
  * @dataProvider objectsProvider
  */
 public function testObjectCRUD($data)
 {
     // try to add one folder to root tree
     $obj = new \CB\Objects\Object();
     // first create object
     $data['id'] = $obj->create($data);
     $this->assertTrue($data['id'] > 0, ' Error on Object create');
     // second read created object
     $obj->load($data['id']);
     $read_data = $obj->getData();
     $this->assertArraySubset($data, $read_data, false, ' readed data: ' . print_r($read_data, true));
     // third update created object
     $data['name'] = $data['name'] . ' (updated)';
     $data['data']['_title'] = $data['data']['_title'] . ' (updated)';
     $obj->update($data);
     $obj->load($data['id']);
     $read_data = $obj->getData();
     $this->assertArraySubset($data, $read_data, false, ' error on updated object data ');
     // four delete object
     $obj->delete(false);
     $obj->delete(true);
     $obj->load($data['id']);
     $read_data = $obj->getData();
     $this->assertTrue(empty($read_data['id']), 'error delete object data');
 }
Exemple #2
0
 /**
  * get search params for given request params
  * @param  array &$rp
  * @return array
  */
 protected function getSearchParams(&$rp)
 {
     $rez = array();
     // creating search object
     $so = new \CB\Objects\Object();
     if (!empty($rp['search']['template_id'])) {
         // searching from a search form
         $so->setData($rp['search']);
     } else {
         // should/will be reviewed for saved searches
         $searchId = $this->lastNode->id;
         if (!empty($rp['search']['id']) && is_numeric($rp['search']['id'])) {
             $searchId = $rp['search']['id'];
         }
         // executing a saved search
         $so->load($searchId);
     }
     $t = $so->getTemplate();
     $td = $t->getData();
     // if we have a router defined in config of the search template then try to prepare search params wit it
     // otherwise use default search method
     // if (empty($td['cfg']['router'])) {
     $rez = $t->getData()['cfg'];
     @($rez['template_id'] = $so->getData()['template_id']);
     if (empty($rez['fq'])) {
         $rez['fq'] = array();
     }
     $ld = $so->getLinearData();
     foreach ($ld as $v) {
         $condition = $this->adjustCondition($t->getField($v['name']), $v);
         if (!empty($condition)) {
             $rez['fq'][] = $condition;
         }
     }
     // } else {
     if (!empty($td['cfg']['router'])) {
         $a = explode('.', $td['cfg']['router']);
         $class = str_replace('_', '\\', $a[0]);
         $class = new $class();
         $rez = $class->{$a[1]}($rp, $rez);
     }
     return $rez;
 }