Merge remote-tracking branch 'upstream/4.4' into 4.4-4.5-2014-10-14-11-16-10
[civicrm-core.git] / tests / phpunit / CRM / Core / BAO / CustomValueTableMultipleTest.php
1 <?php
2
3 require_once 'CiviTest/CiviUnitTestCase.php';
4 require_once 'CiviTest/Contact.php';
5 require_once 'CiviTest/Custom.php';
6
7 /**
8 * Class CRM_Core_BAO_CustomValueTableMultipleTest
9 */
10 class CRM_Core_BAO_CustomValueTableMultipleTest extends CiviUnitTestCase {
11 /**
12 * @return array
13 */
14 function get_info() {
15 return array(
16 'name' => 'Custom Value Table BAOs (multipe value)',
17 'description' => 'Test all Core_BAO_CustomValueTable methods. (for multiple values)',
18 'group' => 'CiviCRM BAO Tests',
19 );
20 }
21
22 function setUp() {
23 parent::setUp();
24 }
25
26 function testCustomGroupMultipleSingle() {
27 $params = array();
28 $contactID = Contact::createIndividual();
29 $customGroup = Custom::createGroup($params, 'Individual', TRUE);
30 $fields = array(
31 'groupId' => $customGroup->id,
32 'dataType' => 'String',
33 'htmlType' => 'Text',
34 );
35 $customField = Custom::createField($params, $fields);
36
37 $params = array(
38 'entityID' => $contactID,
39 "custom_{$customField->id}_-1" => 'First String',
40 );
41 $error = CRM_Core_BAO_CustomValueTable::setValues($params);
42
43 $newParams = array(
44 'entityID' => $contactID,
45 "custom_{$customField->id}" => 1,
46 );
47 $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
48
49 $this->assertEquals($params["custom_{$customField->id}_-1"], $result["custom_{$customField->id}_1"]);
50 $this->assertEquals($params['entityID'], $result['entityID']);
51
52 Custom::deleteField($customField);
53 Custom::deleteGroup($customGroup);
54 Contact::delete($contactID);
55 }
56
57 function testCustomGroupMultipleDouble() {
58 $params = array();
59 $contactID = Contact::createIndividual();
60 $customGroup = Custom::createGroup($params, 'Individual', TRUE);
61 $fields = array(
62 'groupId' => $customGroup->id,
63 'dataType' => 'String',
64 'htmlType' => 'Text',
65 );
66 $customField = Custom::createField($params, $fields);
67
68 $params = array(
69 'entityID' => $contactID,
70 "custom_{$customField->id}_-1" => 'First String',
71 "custom_{$customField->id}_-2" => 'Second String',
72 );
73 $error = CRM_Core_BAO_CustomValueTable::setValues($params);
74
75 $newParams = array(
76 'entityID' => $contactID,
77 "custom_{$customField->id}" => 1,
78 );
79 $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
80
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']);
84
85 Custom::deleteField($customField);
86 Custom::deleteGroup($customGroup);
87 Contact::delete($contactID);
88 }
89
90 function testCustomGroupMultipleUpdate() {
91 $params = array();
92 $contactID = Contact::createIndividual();
93 $customGroup = Custom::createGroup($params, 'Individual', TRUE);
94 $fields = array(
95 'groupId' => $customGroup->id,
96 'dataType' => 'String',
97 'htmlType' => 'Text',
98 );
99 $customField = Custom::createField($params, $fields);
100
101 $params = array(
102 'entityID' => $contactID,
103 "custom_{$customField->id}_-1" => 'First String',
104 "custom_{$customField->id}_-2" => 'Second String',
105 "custom_{$customField->id}_-3" => 'Third String',
106 );
107 $error = CRM_Core_BAO_CustomValueTable::setValues($params);
108
109 $newParams = array(
110 'entityID' => $contactID,
111 "custom_{$customField->id}_1" => 'Updated First String',
112 "custom_{$customField->id}_3" => 'Updated Third String',
113 );
114 $result = CRM_Core_BAO_CustomValueTable::setValues($newParams);
115
116 $getParams = array(
117 'entityID' => $contactID,
118 "custom_{$customField->id}" => 1,
119 );
120 $result = CRM_Core_BAO_CustomValueTable::getValues($getParams);
121
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']);
126
127 Custom::deleteField($customField);
128 Custom::deleteGroup($customGroup);
129 Contact::delete($contactID);
130 }
131
132 function testCustomGroupMultipleOldFormate() {
133 $params = array();
134 $contactID = Contact::createIndividual();
135 $customGroup = Custom::createGroup($params, 'Individual', TRUE);
136 $fields = array(
137 'groupId' => $customGroup->id,
138 'dataType' => 'String',
139 'htmlType' => 'Text',
140 );
141 $customField = Custom::createField($params, $fields);
142
143 $params = array(
144 'entityID' => $contactID,
145 "custom_{$customField->id}" => 'First String',
146 );
147 $error = CRM_Core_BAO_CustomValueTable::setValues($params);
148
149 $newParams = array(
150 'entityID' => $contactID,
151 "custom_{$customField->id}" => 1,
152 );
153 $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
154
155 $this->assertEquals($params["custom_{$customField->id}"], $result["custom_{$customField->id}_1"]);
156 $this->assertEquals($params['entityID'], $result['entityID']);
157
158 Custom::deleteField($customField);
159 Custom::deleteGroup($customGroup);
160 Contact::delete($contactID);
161 }
162 }
163