/** * Attempt to edit the definition of UnforkableCaseType. This fails. */ public function testUnforkable() { $caseTypeId = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', 'UnforkableCaseType', 'id', 'name'); $this->assertTrue(is_numeric($caseTypeId) && $caseTypeId > 0); $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition"); $this->assertFalse(CRM_Case_BAO_CaseType::isForkable($caseTypeId)); $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId)); $this->callAPISuccess('CaseType', 'create', array('id' => $caseTypeId, 'definition' => array('activityTypes' => array(array('name' => 'First act'), array('name' => 'Second act'))))); $this->assertFalse(CRM_Case_BAO_CaseType::isForkable($caseTypeId)); $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId)); $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition"); }
/** * Format definition. * * @param array $result * * @return array * @throws \CRM_Core_Exception */ function _civicrm_api3_case_type_get_formatResult(&$result) { foreach ($result['values'] as $key => $caseType) { $caseTypeName = isset($caseType['name']) ? $caseType['name'] : CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $caseType['id'], 'name', 'id', TRUE); $xml = CRM_Case_XMLRepository::singleton()->retrieve($caseTypeName); if ($xml) { $result['values'][$key]['definition'] = CRM_Case_BAO_CaseType::convertXmlToDefinition($xml); } else { $result['values'][$key]['definition'] = array(); } $result['values'][$key]['is_forkable'] = CRM_Case_BAO_CaseType::isForkable($result['values'][$key]['id']); $result['values'][$key]['is_forked'] = CRM_Case_BAO_CaseType::isForked($result['values'][$key]['id']); } return $result; }