3 +--------------------------------------------------------------------+
4 | CiviCRM version 4.5 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2014 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
28 require_once 'CiviTest/CiviUnitTestCase.php';
31 * Class api_v3_CustomValueTest
33 class api_v3_CustomValueTest
extends CiviUnitTestCase
{
34 protected $_apiversion =3;
35 protected $individual;
39 public $DBResetRequired = FALSE;
43 $this->individual
= $this->individualCreate();
44 $this->params
= array(
45 'entity_id' => $this->individual
,
47 $this->ids
['single'] = $this->entityCustomGroupWithSingleFieldCreate('mySingleField', 'Contacts');
48 $this->ids
['multi'] = $this->CustomGroupMultipleCreateWithFields();
49 $this->ids
['multi2'] = $this->CustomGroupMultipleCreateWithFields(array('title' => 'group2'));
53 $tablesToTruncate = array(
55 'civicrm_custom_field',
56 'civicrm_custom_group',
60 // true tells quickCleanup to drop any tables that might have been created in the test
61 $this->quickCleanup($tablesToTruncate, TRUE);
64 public function testCreateCustomValue() {
66 'custom_' . $this->ids
['single']['custom_field_id'] => 'customString') +
$this->params
;
68 $result = $this->callAPIAndDocument('custom_value', 'create', $params, __FUNCTION__
, __FILE__
);
69 $this->assertEquals(1, $result['count'], 'In line ' . __LINE__
);
70 $result = $this->callAPISuccess('custom_value', 'get', $params);
73 public function testGetMultipleCustomValues() {
75 $description = "/*this demonstrates the use of CustomValue get";
78 'first_name' => 'abc3',
79 'last_name' => 'xyz3',
80 'contact_type' => 'Individual',
81 'email' => 'man3@yahoo.com',
82 'custom_' . $this->ids
['single']['custom_field_id'] => "value 1",
83 'custom_' . $this->ids
['multi']['custom_field_id'][0] => "value 2",
84 'custom_' . $this->ids
['multi']['custom_field_id'][1] => "warm beer",
85 'custom_' . $this->ids
['multi']['custom_field_id'][2] => "fl* w*",
86 'custom_' . $this->ids
['multi2']['custom_field_id'][2] => "vegemite",
90 $result = $this->callAPISuccess('Contact', 'create', $params);
91 $contact_id = $result['id'];
92 $firstCustomField = $this->ids
['multi']['custom_field_id'][0];
93 $secondCustomField = $this->ids
['multi2']['custom_field_id'][0];
94 $thirdCustomField = $this->ids
['multi2']['custom_field_id'][1];
95 $createParams = array(
96 'contact_type' => 'Individual',
98 'custom_' . $firstCustomField => "value 3",
99 'custom_' . $secondCustomField => "coffee",
100 'custom_' . $thirdCustomField => "value 4",
102 $result = $this->callAPISuccess('Contact', 'create', $createParams);
105 'id' => $result['id'],
106 'entity_id' => $result['id'],
109 $result = $this->callAPIAndDocument('CustomValue', 'Get', $params, __FUNCTION__
, __FILE__
, $description);
110 $params['format.field_names'] = 1;
111 $resultformatted = $this->callAPIAndDocument('CustomValue', 'Get', $params, __FUNCTION__
, __FILE__
, "utilises field names", 'formatFieldName');
112 // delete the contact
113 $this->callAPISuccess('contact', 'delete', array('id' => $contact_id));
114 $this->assertEquals('coffee', $result['values'][$secondCustomField]['2']);
115 $this->assertEquals('coffee', $result['values'][$secondCustomField]['latest']);
116 $this->assertEquals($secondCustomField, $result['values'][$secondCustomField]['id']);
117 $this->assertEquals('defaultValue', $result['values'][$secondCustomField]['1']);
118 $this->assertEquals($contact_id, $result['values'][$secondCustomField]['entity_id']);
119 $this->assertEquals('value 1', $result['values'][$this->ids
['single']['custom_field_id']]['0']);
120 $this->assertEquals('value 1', $result['values'][$this->ids
['single']['custom_field_id']]['latest']);
121 $this->assertEquals('value 1', $resultformatted['values']['mySingleField']['latest']);
122 $this->assertEquals('', $result['values'][$thirdCustomField]['1']);
123 $this->assertEquals('value 4', $result['values'][$thirdCustomField]['2']);