3 require_once 'CiviTest/CiviUnitTestCase.php';
4 require_once 'CiviTest/Contact.php';
5 require_once 'CiviTest/Custom.php';
8 * Class CRM_Core_BAO_CustomValueTableMultipleTest
10 class CRM_Core_BAO_CustomValueTableMultipleTest
extends CiviUnitTestCase
{
16 'name' => 'Custom Value Table BAOs (multipe value)',
17 'description' => 'Test all Core_BAO_CustomValueTable methods. (for multiple values)',
18 'group' => 'CiviCRM BAO Tests',
26 function testCustomGroupMultipleSingle() {
28 $contactID = Contact
::createIndividual();
29 $customGroup = Custom
::createGroup($params, 'Individual', TRUE);
31 'groupId' => $customGroup->id
,
32 'dataType' => 'String',
35 $customField = Custom
::createField($params, $fields);
38 'entityID' => $contactID,
39 "custom_{$customField->id}_-1" => 'First String',
41 $error = CRM_Core_BAO_CustomValueTable
::setValues($params);
44 'entityID' => $contactID,
45 "custom_{$customField->id}" => 1,
47 $result = CRM_Core_BAO_CustomValueTable
::getValues($newParams);
49 $this->assertEquals($params["custom_{$customField->id}_-1"], $result["custom_{$customField->id}_1"]);
50 $this->assertEquals($params['entityID'], $result['entityID']);
52 Custom
::deleteField($customField);
53 Custom
::deleteGroup($customGroup);
54 Contact
::delete($contactID);
57 function testCustomGroupMultipleDouble() {
59 $contactID = Contact
::createIndividual();
60 $customGroup = Custom
::createGroup($params, 'Individual', TRUE);
62 'groupId' => $customGroup->id
,
63 'dataType' => 'String',
66 $customField = Custom
::createField($params, $fields);
69 'entityID' => $contactID,
70 "custom_{$customField->id}_-1" => 'First String',
71 "custom_{$customField->id}_-2" => 'Second String',
73 $error = CRM_Core_BAO_CustomValueTable
::setValues($params);
76 'entityID' => $contactID,
77 "custom_{$customField->id}" => 1,
79 $result = CRM_Core_BAO_CustomValueTable
::getValues($newParams);
81 $this->assertEquals($params["custom_{$customField->id}_-1"], $result["custom_{$customField->id}_1"]);
82 $this->assertEquals($params["custom_{$customField->id}_-2"], $result["custom_{$customField->id}_2"]);
83 $this->assertEquals($params['entityID'], $result['entityID']);
85 Custom
::deleteField($customField);
86 Custom
::deleteGroup($customGroup);
87 Contact
::delete($contactID);
90 function testCustomGroupMultipleUpdate() {
92 $contactID = Contact
::createIndividual();
93 $customGroup = Custom
::createGroup($params, 'Individual', TRUE);
95 'groupId' => $customGroup->id
,
96 'dataType' => 'String',
99 $customField = Custom
::createField($params, $fields);
102 'entityID' => $contactID,
103 "custom_{$customField->id}_-1" => 'First String',
104 "custom_{$customField->id}_-2" => 'Second String',
105 "custom_{$customField->id}_-3" => 'Third String',
107 $error = CRM_Core_BAO_CustomValueTable
::setValues($params);
110 'entityID' => $contactID,
111 "custom_{$customField->id}_1" => 'Updated First String',
112 "custom_{$customField->id}_3" => 'Updated Third String',
114 $result = CRM_Core_BAO_CustomValueTable
::setValues($newParams);
117 'entityID' => $contactID,
118 "custom_{$customField->id}" => 1,
120 $result = CRM_Core_BAO_CustomValueTable
::getValues($getParams);
122 $this->assertEquals($newParams["custom_{$customField->id}_1"], $result["custom_{$customField->id}_1"]);
123 $this->assertEquals($params["custom_{$customField->id}_-2"], $result["custom_{$customField->id}_2"]);
124 $this->assertEquals($newParams["custom_{$customField->id}_3"], $result["custom_{$customField->id}_3"]);
125 $this->assertEquals($params['entityID'], $result['entityID']);
127 Custom
::deleteField($customField);
128 Custom
::deleteGroup($customGroup);
129 Contact
::delete($contactID);
132 function testCustomGroupMultipleOldFormate() {
134 $contactID = Contact
::createIndividual();
135 $customGroup = Custom
::createGroup($params, 'Individual', TRUE);
137 'groupId' => $customGroup->id
,
138 'dataType' => 'String',
139 'htmlType' => 'Text',
141 $customField = Custom
::createField($params, $fields);
144 'entityID' => $contactID,
145 "custom_{$customField->id}" => 'First String',
147 $error = CRM_Core_BAO_CustomValueTable
::setValues($params);
150 'entityID' => $contactID,
151 "custom_{$customField->id}" => 1,
153 $result = CRM_Core_BAO_CustomValueTable
::getValues($newParams);
155 $this->assertEquals($params["custom_{$customField->id}"], $result["custom_{$customField->id}_1"]);
156 $this->assertEquals($params['entityID'], $result['entityID']);
158 Custom
::deleteField($customField);
159 Custom
::deleteGroup($customGroup);
160 Contact
::delete($contactID);