Пример #1
0
 public function testAddDefinition()
 {
     $uuid = NSDR::create_guid();
     $nsdrParams = array('uuid' => $uuid, 'namespace' => 'com.clearhealth.person.age', 'aliasFor' => 'com.clearhealth.person.dateOfBirth');
     $objNSDR = new NSDRDefinition();
     $objNSDR->populateWithArray($nsdrParams);
     // workaround for Unknown column 'methodName'/'method' in 'field list'
     $objNSDR->methodName = array();
     $objNSDR->method = array();
     $objNSDR->persist();
     $nsdrDefinition = new NSDRDefinition();
     $nsdrDefinition->uuid = $uuid;
     $nsdrDefinition->populate();
     $this->assertEquals('com.clearhealth.person.age', $nsdrDefinition->namespace);
 }
 /**
  * Process the modified NSDR definition together its NSDR definition methods
  */
 public function processEditAction()
 {
     $this->editAction();
     // NSDR Definition parameters
     $params = $this->_getParam('nsdrDefinition');
     $this->_nsdrDefinition->populateWithArray($params);
     $id = $params['uuid'];
     if (!strlen($id) > 0) {
         $this->_nsdrDefinition->uuid = NSDR::create_guid();
     } else {
         // remove to NSDR memcache
         $nsdr = new NSDRDefinition();
         $nsdr->uuid = $id;
         $nsdr->populate();
         NSDR2::removeNamespace($nsdr->namespace);
     }
     $message = __('Record Saved for NSDR Definition: ' . $this->_nsdrDefinition->namespace);
     $code = 200;
     // cannot add method if alias exists (alias must be canonical)
     if (strlen($this->_nsdrDefinition->aliasFor) > 0) {
         $nsdr = new NSDRDefinition();
         //$nsdr->uuid = $this->_nsdrDefinition->aliasFor;
         $nsdr->populateByNamespace($this->_nsdrDefinition->aliasFor);
         if (strlen($nsdr->namespace) > 0) {
             if (strlen($nsdr->aliasFor) > 0) {
                 $this->_nsdrDefinition->aliasFor = '';
                 $message = __('Alias must be canonical.');
                 $code = 400;
             }
         } else {
             $this->_nsdrDefinition->aliasFor = '';
             $message = __('Alias does not exists.');
             $code = 401;
         }
     }
     if (strlen($this->_nsdrDefinition->ORMClass) > 0) {
         if (!NSDRDefinition::isORMClassImplementsMethod($this->_nsdrDefinition->ORMClass)) {
             $this->_nsdrDefinition->ORMClass = '';
             $message = __('Invalid ORM Class');
             $code = 402;
         }
     }
     $this->_nsdrDefinition->persist();
     $this->view->message = $message;
     $this->view->code = $code;
     $this->render('edit');
 }