Skip to content
Snippets Groups Projects
Commit c4bfbde3 authored by colemanw's avatar colemanw
Browse files

Add caseType test

parent 85148081
Branches
Tags
No related merge requests found
......@@ -167,7 +167,7 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType {
foreach ($definition['caseRoles'] as $values) {
$xmlFile .= "<RelationshipType>\n";
foreach ($values as $key => $value) {
$xmlFile .= "<{$key}>" . (is_array($value) ? implode(',', array_map(['\CRM_Case_BAO_CaseType', 'encodeXmlString'], $value)) : self::encodeXmlString($value)) . "</{$key}>\n";
$xmlFile .= "<{$key}>" . ($key == 'groups' ? implode(',', array_map(['\CRM_Case_BAO_CaseType', 'encodeXmlString'], (array) $value)) : self::encodeXmlString($value)) . "</{$key}>\n";
}
$xmlFile .= "</RelationshipType>\n";
}
......@@ -180,7 +180,7 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType {
if (!empty($definition['activityAsgmtGrps'])) {
$xmlFile .= "<ActivityAsgmtGrps>\n";
foreach ($definition['activityAsgmtGrps'] as $value) {
foreach ((array) $definition['activityAsgmtGrps'] as $value) {
$xmlFile .= "<Group>$value</Group>\n";
}
$xmlFile .= "</ActivityAsgmtGrps>\n";
......
......@@ -241,4 +241,31 @@ class api_v3_CaseTypeTest extends CiviCaseTestCase {
$this->assertEquals($template['definition']['statuses'], array_values($result['values']));
}
public function testDefinitionGroups() {
$gid1 = $this->groupCreate(['name' => 'testDefinitionGroups1', 'title' => 'testDefinitionGroups1']);
$gid2 = $this->groupCreate(['name' => 'testDefinitionGroups2', 'title' => 'testDefinitionGroups2']);
$def = $this->fixtures['Application_with_Definition'];
$def['definition']['caseRoles'][] = [
'name' => 'Second role',
'groups' => ['testDefinitionGroups1', 'testDefinitionGroups2'],
];
$def['definition']['caseRoles'][] = [
'name' => 'Third role',
'groups' => 'testDefinitionGroups2',
];
$def['definition']['activityAsgmtGrps'] = $gid1;
$createCaseType = $this->callAPISuccess('CaseType', 'create', $def);
$caseType = $this->callAPISuccess('CaseType', 'getsingle', ['id' => $createCaseType['id']]);
// Assert the group id got converted to array with name not id
$this->assertEquals(['testDefinitionGroups1'], $caseType['definition']['activityAsgmtGrps']);
// Assert multiple groups are stored
$this->assertEquals(['testDefinitionGroups1', 'testDefinitionGroups2'], $caseType['definition']['caseRoles'][1]['groups']);
// Assert single group got converted to array
$this->assertEquals(['testDefinitionGroups2'], $caseType['definition']['caseRoles'][2]['groups']);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment