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'); }