Fix civicrm_country template file
[civicrm-core.git] / tests / phpunit / CRM / Core / BAO / CustomValueTableMultipleTest.php
CommitLineData
6a488035
TO
1<?php
2
aba1cd8b
EM
3/**
4 * Class CRM_Core_BAO_CustomValueTableMultipleTest
acb109b7 5 * @group headless
aba1cd8b 6 */
6a488035 7class CRM_Core_BAO_CustomValueTableMultipleTest extends CiviUnitTestCase {
6a488035 8
00be9182 9 public function setUp() {
6a488035
TO
10 parent::setUp();
11 }
12
00be9182 13 public function testCustomGroupMultipleSingle() {
f2040bc6 14 $contactID = $this->individualCreate();
5c988f8a 15 $customGroup = $this->customGroupCreate(array('is_multiple' => 1));
92915c55 16 $fields = array(
5c988f8a 17 'custom_group_id' => $customGroup['id'],
6a488035
TO
18 'dataType' => 'String',
19 'htmlType' => 'Text',
20 );
5c988f8a 21 $customField = $this->customFieldCreate($fields);
6a488035
TO
22
23 $params = array(
24 'entityID' => $contactID,
5c988f8a 25 "custom_{$customField['id']}_-1" => 'First String',
6a488035 26 );
5c988f8a 27 CRM_Core_BAO_CustomValueTable::setValues($params);
6a488035
TO
28
29 $newParams = array(
30 'entityID' => $contactID,
5c988f8a 31 "custom_{$customField['id']}" => 1,
6a488035
TO
32 );
33 $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
34
5c988f8a 35 $this->assertEquals($params["custom_{$customField['id']}_-1"], $result["custom_{$customField['id']}_1"]);
6a488035
TO
36 $this->assertEquals($params['entityID'], $result['entityID']);
37
5c988f8a 38 $this->customFieldDelete($customField['id']);
39 $this->customGroupDelete($customGroup['id']);
93ac19cd 40 $this->contactDelete($contactID);
6a488035
TO
41 }
42
00be9182 43 public function testCustomGroupMultipleDouble() {
f2040bc6 44 $contactID = $this->individualCreate();
5c988f8a 45 $customGroup = $this->customGroupCreate(array('is_multiple' => 1));
92915c55 46 $fields = array(
5c988f8a 47 'custom_group_id' => $customGroup['id'],
6a488035
TO
48 'dataType' => 'String',
49 'htmlType' => 'Text',
50 );
5c988f8a 51 $customField = $this->customFieldCreate($fields);
6a488035
TO
52
53 $params = array(
54 'entityID' => $contactID,
5c988f8a 55 "custom_{$customField['id']}_-1" => 'First String',
56 "custom_{$customField['id']}_-2" => 'Second String',
6a488035 57 );
5c988f8a 58 CRM_Core_BAO_CustomValueTable::setValues($params);
6a488035
TO
59
60 $newParams = array(
61 'entityID' => $contactID,
5c988f8a 62 "custom_{$customField['id']}" => 1,
6a488035
TO
63 );
64 $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
65
5c988f8a 66 $this->assertEquals($params["custom_{$customField['id']}_-1"], $result["custom_{$customField['id']}_1"]);
67 $this->assertEquals($params["custom_{$customField['id']}_-2"], $result["custom_{$customField['id']}_2"]);
6a488035
TO
68 $this->assertEquals($params['entityID'], $result['entityID']);
69
5c988f8a 70 $this->customFieldDelete($customField['id']);
71 $this->customGroupDelete($customGroup['id']);
93ac19cd 72 $this->contactDelete($contactID);
6a488035
TO
73 }
74
00be9182 75 public function testCustomGroupMultipleUpdate() {
f2040bc6 76 $contactID = $this->individualCreate();
5c988f8a 77 $customGroup = $this->customGroupCreate(array('is_multiple' => 1));
92915c55 78 $fields = array(
5c988f8a 79 'custom_group_id' => $customGroup['id'],
6a488035
TO
80 'dataType' => 'String',
81 'htmlType' => 'Text',
82 );
5c988f8a 83 $customField = $this->customFieldCreate($fields);
6a488035
TO
84
85 $params = array(
86 'entityID' => $contactID,
5c988f8a 87 "custom_{$customField['id']}_-1" => 'First String',
88 "custom_{$customField['id']}_-2" => 'Second String',
89 "custom_{$customField['id']}_-3" => 'Third String',
6a488035 90 );
5c988f8a 91 CRM_Core_BAO_CustomValueTable::setValues($params);
6a488035
TO
92
93 $newParams = array(
94 'entityID' => $contactID,
5c988f8a 95 "custom_{$customField['id']}_1" => 'Updated First String',
96 "custom_{$customField['id']}_3" => 'Updated Third String',
6a488035 97 );
5c988f8a 98 CRM_Core_BAO_CustomValueTable::setValues($newParams);
6a488035
TO
99
100 $getParams = array(
101 'entityID' => $contactID,
5c988f8a 102 "custom_{$customField['id']}" => 1,
6a488035
TO
103 );
104 $result = CRM_Core_BAO_CustomValueTable::getValues($getParams);
105
5c988f8a 106 $this->assertEquals($newParams["custom_{$customField['id']}_1"], $result["custom_{$customField['id']}_1"]);
107 $this->assertEquals($params["custom_{$customField['id']}_-2"], $result["custom_{$customField['id']}_2"]);
108 $this->assertEquals($newParams["custom_{$customField['id']}_3"], $result["custom_{$customField['id']}_3"]);
6a488035
TO
109 $this->assertEquals($params['entityID'], $result['entityID']);
110
5c988f8a 111 $this->customFieldDelete($customField['id']);
112 $this->customGroupDelete($customGroup['id']);
93ac19cd 113 $this->contactDelete($contactID);
6a488035
TO
114 }
115
5c988f8a 116 public function testCustomGroupMultipleOldFormat() {
f2040bc6 117 $contactID = $this->individualCreate();
5c988f8a 118 $customGroup = $this->customGroupCreate(array('is_multiple' => 1));
92915c55 119 $fields = array(
5c988f8a 120 'custom_group_id' => $customGroup['id'],
6a488035
TO
121 'dataType' => 'String',
122 'htmlType' => 'Text',
123 );
5c988f8a 124 $customField = $this->customFieldCreate($fields);
6a488035
TO
125
126 $params = array(
127 'entityID' => $contactID,
5c988f8a 128 "custom_{$customField['id']}" => 'First String',
6a488035 129 );
5c988f8a 130 CRM_Core_BAO_CustomValueTable::setValues($params);
6a488035
TO
131
132 $newParams = array(
133 'entityID' => $contactID,
5c988f8a 134 "custom_{$customField['id']}" => 1,
6a488035
TO
135 );
136 $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
137
5c988f8a 138 $this->assertEquals($params["custom_{$customField['id']}"], $result["custom_{$customField['id']}_1"]);
6a488035
TO
139 $this->assertEquals($params['entityID'], $result['entityID']);
140
5c988f8a 141 $this->customFieldDelete($customField['id']);
142 $this->customGroupDelete($customGroup['id']);
93ac19cd 143 $this->contactDelete($contactID);
6a488035 144 }
96025800 145
6a488035 146}