Merge pull request #4789 from totten/master-test-tx
[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 function setUp() {
13 parent::setUp();
14 }
15
16 function testCustomGroupMultipleSingle() {
17 $params = array();
18 $contactID = Contact::createIndividual();
19 $customGroup = Custom::createGroup($params, 'Individual', TRUE);
20 $fields = array(
21 'groupId' => $customGroup->id,
22 'dataType' => 'String',
23 'htmlType' => 'Text',
24 );
25 $customField = Custom::createField($params, $fields);
26
27 $params = array(
28 'entityID' => $contactID,
29 "custom_{$customField->id}_-1" => 'First String',
30 );
31 $error = CRM_Core_BAO_CustomValueTable::setValues($params);
32
33 $newParams = array(
34 'entityID' => $contactID,
35 "custom_{$customField->id}" => 1,
36 );
37 $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
38
39 $this->assertEquals($params["custom_{$customField->id}_-1"], $result["custom_{$customField->id}_1"]);
40 $this->assertEquals($params['entityID'], $result['entityID']);
41
42 Custom::deleteField($customField);
43 Custom::deleteGroup($customGroup);
44 Contact::delete($contactID);
45 }
46
47 function testCustomGroupMultipleDouble() {
48 $params = array();
49 $contactID = Contact::createIndividual();
50 $customGroup = Custom::createGroup($params, 'Individual', TRUE);
51 $fields = array(
52 'groupId' => $customGroup->id,
53 'dataType' => 'String',
54 'htmlType' => 'Text',
55 );
56 $customField = Custom::createField($params, $fields);
57
58 $params = array(
59 'entityID' => $contactID,
60 "custom_{$customField->id}_-1" => 'First String',
61 "custom_{$customField->id}_-2" => 'Second String',
62 );
63 $error = CRM_Core_BAO_CustomValueTable::setValues($params);
64
65 $newParams = array(
66 'entityID' => $contactID,
67 "custom_{$customField->id}" => 1,
68 );
69 $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
70
71 $this->assertEquals($params["custom_{$customField->id}_-1"], $result["custom_{$customField->id}_1"]);
72 $this->assertEquals($params["custom_{$customField->id}_-2"], $result["custom_{$customField->id}_2"]);
73 $this->assertEquals($params['entityID'], $result['entityID']);
74
75 Custom::deleteField($customField);
76 Custom::deleteGroup($customGroup);
77 Contact::delete($contactID);
78 }
79
80 function testCustomGroupMultipleUpdate() {
81 $params = array();
82 $contactID = Contact::createIndividual();
83 $customGroup = Custom::createGroup($params, 'Individual', TRUE);
84 $fields = array(
85 'groupId' => $customGroup->id,
86 'dataType' => 'String',
87 'htmlType' => 'Text',
88 );
89 $customField = Custom::createField($params, $fields);
90
91 $params = array(
92 'entityID' => $contactID,
93 "custom_{$customField->id}_-1" => 'First String',
94 "custom_{$customField->id}_-2" => 'Second String',
95 "custom_{$customField->id}_-3" => 'Third String',
96 );
97 $error = CRM_Core_BAO_CustomValueTable::setValues($params);
98
99 $newParams = array(
100 'entityID' => $contactID,
101 "custom_{$customField->id}_1" => 'Updated First String',
102 "custom_{$customField->id}_3" => 'Updated Third String',
103 );
104 $result = CRM_Core_BAO_CustomValueTable::setValues($newParams);
105
106 $getParams = array(
107 'entityID' => $contactID,
108 "custom_{$customField->id}" => 1,
109 );
110 $result = CRM_Core_BAO_CustomValueTable::getValues($getParams);
111
112 $this->assertEquals($newParams["custom_{$customField->id}_1"], $result["custom_{$customField->id}_1"]);
113 $this->assertEquals($params["custom_{$customField->id}_-2"], $result["custom_{$customField->id}_2"]);
114 $this->assertEquals($newParams["custom_{$customField->id}_3"], $result["custom_{$customField->id}_3"]);
115 $this->assertEquals($params['entityID'], $result['entityID']);
116
117 Custom::deleteField($customField);
118 Custom::deleteGroup($customGroup);
119 Contact::delete($contactID);
120 }
121
122 function testCustomGroupMultipleOldFormate() {
123 $params = array();
124 $contactID = Contact::createIndividual();
125 $customGroup = Custom::createGroup($params, 'Individual', TRUE);
126 $fields = array(
127 'groupId' => $customGroup->id,
128 'dataType' => 'String',
129 'htmlType' => 'Text',
130 );
131 $customField = Custom::createField($params, $fields);
132
133 $params = array(
134 'entityID' => $contactID,
135 "custom_{$customField->id}" => 'First String',
136 );
137 $error = CRM_Core_BAO_CustomValueTable::setValues($params);
138
139 $newParams = array(
140 'entityID' => $contactID,
141 "custom_{$customField->id}" => 1,
142 );
143 $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
144
145 $this->assertEquals($params["custom_{$customField->id}"], $result["custom_{$customField->id}_1"]);
146 $this->assertEquals($params['entityID'], $result['entityID']);
147
148 Custom::deleteField($customField);
149 Custom::deleteGroup($customGroup);
150 Contact::delete($contactID);
151 }
152 }
153