4 * Class CRM_Core_BAO_CustomValueTableMultipleTest
7 class CRM_Core_BAO_CustomValueTableMultipleTest
extends CiviUnitTestCase
{
9 public function setUp() {
13 public function testCustomGroupMultipleSingle() {
14 $contactID = $this->individualCreate();
15 $customGroup = $this->customGroupCreate(['is_multiple' => 1]);
17 'custom_group_id' => $customGroup['id'],
18 'dataType' => 'String',
21 $customField = $this->customFieldCreate($fields);
24 'entityID' => $contactID,
25 "custom_{$customField['id']}_-1" => 'First String',
27 CRM_Core_BAO_CustomValueTable
::setValues($params);
30 'entityID' => $contactID,
31 "custom_{$customField['id']}" => 1,
33 $result = CRM_Core_BAO_CustomValueTable
::getValues($newParams);
35 $this->assertEquals($params["custom_{$customField['id']}_-1"], $result["custom_{$customField['id']}_1"]);
36 $this->assertEquals($params['entityID'], $result['entityID']);
40 'entityID' => $contactID,
41 "custom_{$customField['id']}" => 2,
43 CRM_Core_BAO_CustomValueTable
::setValues($updateParams);
47 'entityID' => $contactID,
49 $result = CRM_Core_BAO_CustomValueTable
::getValues($criteria);
50 $this->assertEquals(2, $result["custom_{$customField['id']}_1"]);
52 $this->customFieldDelete($customField['id']);
53 $this->customGroupDelete($customGroup['id']);
54 $this->contactDelete($contactID);
57 public function testCustomGroupMultipleDouble() {
58 $contactID = $this->individualCreate();
59 $customGroup = $this->customGroupCreate(['is_multiple' => 1]);
61 'custom_group_id' => $customGroup['id'],
62 'dataType' => 'String',
65 $customField = $this->customFieldCreate($fields);
68 'entityID' => $contactID,
69 "custom_{$customField['id']}_-1" => 'First String',
70 "custom_{$customField['id']}_-2" => 'Second String',
72 CRM_Core_BAO_CustomValueTable
::setValues($params);
75 'entityID' => $contactID,
76 "custom_{$customField['id']}" => 1,
78 $result = CRM_Core_BAO_CustomValueTable
::getValues($newParams);
80 $this->assertEquals($params["custom_{$customField['id']}_-1"], $result["custom_{$customField['id']}_1"]);
81 $this->assertEquals($params["custom_{$customField['id']}_-2"], $result["custom_{$customField['id']}_2"]);
82 $this->assertEquals($params['entityID'], $result['entityID']);
84 $this->customFieldDelete($customField['id']);
85 $this->customGroupDelete($customGroup['id']);
86 $this->contactDelete($contactID);
89 public function testCustomGroupMultipleUpdate() {
90 $contactID = $this->individualCreate();
91 $customGroup = $this->customGroupCreate(['is_multiple' => 1]);
93 'custom_group_id' => $customGroup['id'],
94 'dataType' => 'String',
97 $customField = $this->customFieldCreate($fields);
100 'entityID' => $contactID,
101 "custom_{$customField['id']}_-1" => 'First String',
102 "custom_{$customField['id']}_-2" => 'Second String',
103 "custom_{$customField['id']}_-3" => 'Third String',
105 CRM_Core_BAO_CustomValueTable
::setValues($params);
108 'entityID' => $contactID,
109 "custom_{$customField['id']}_1" => 'Updated First String',
110 "custom_{$customField['id']}_3" => 'Updated Third String',
112 CRM_Core_BAO_CustomValueTable
::setValues($newParams);
115 'entityID' => $contactID,
116 "custom_{$customField['id']}" => 1,
118 $result = CRM_Core_BAO_CustomValueTable
::getValues($getParams);
120 $this->assertEquals($newParams["custom_{$customField['id']}_1"], $result["custom_{$customField['id']}_1"]);
121 $this->assertEquals($params["custom_{$customField['id']}_-2"], $result["custom_{$customField['id']}_2"]);
122 $this->assertEquals($newParams["custom_{$customField['id']}_3"], $result["custom_{$customField['id']}_3"]);
123 $this->assertEquals($params['entityID'], $result['entityID']);
125 $this->customFieldDelete($customField['id']);
126 $this->customGroupDelete($customGroup['id']);
127 $this->contactDelete($contactID);
130 public function testCustomGroupMultipleOldFormat() {
131 $contactID = $this->individualCreate();
132 $customGroup = $this->customGroupCreate(['is_multiple' => 1]);
134 'custom_group_id' => $customGroup['id'],
135 'dataType' => 'String',
136 'htmlType' => 'Text',
138 $customField = $this->customFieldCreate($fields);
141 'entityID' => $contactID,
142 "custom_{$customField['id']}" => 'First String',
144 CRM_Core_BAO_CustomValueTable
::setValues($params);
147 'entityID' => $contactID,
148 "custom_{$customField['id']}" => 1,
150 $result = CRM_Core_BAO_CustomValueTable
::getValues($newParams);
152 $this->assertEquals($params["custom_{$customField['id']}"], $result["custom_{$customField['id']}_1"]);
153 $this->assertEquals($params['entityID'], $result['entityID']);
155 $this->customFieldDelete($customField['id']);
156 $this->customGroupDelete($customGroup['id']);
157 $this->contactDelete($contactID);