84fe22dab0ea07a484a55fc8f928c1b98cdc9eee
4 +--------------------------------------------------------------------+
5 | CiviCRM version 4.3 |
6 +--------------------------------------------------------------------+
7 | Copyright CiviCRM LLC (c) 2004-2013 |
8 +--------------------------------------------------------------------+
9 | This file is a part of CiviCRM. |
11 | CiviCRM is free software; you can copy, modify, and distribute it |
12 | under the terms of the GNU Affero General Public License |
13 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
15 | CiviCRM is distributed in the hope that it will be useful, but |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. |
20 | You should have received a copy of the GNU Affero General Public |
21 | License and the CiviCRM Licensing Exception along |
22 | with this program; if not, contact CiviCRM LLC |
23 | at info[AT]civicrm[DOT]org. If you have questions about the |
24 | GNU Affero General Public License or the licensing of CiviCRM, |
25 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
26 +--------------------------------------------------------------------+
29 require_once 'CiviTest/CiviUnitTestCase.php';
30 class api_v3_CustomValueTest
extends CiviUnitTestCase
{
31 protected $_apiversion;
32 protected $individual;
35 public $_eNoticeCompliant = TRUE;
36 public $DBResetRequired = FALSE;
40 $this->_apiversion
= 3;
41 $this->individual
= $this->individualCreate();
42 $this->params
= array(
43 'version' => $this->_apiversion
,
44 'entity_id' => $this->individual
,
46 $this->ids
['single'] = $this->entityCustomGroupWithSingleFieldCreate('mySingleField', 'Contacts');
47 $this->ids
['multi'] = $this->CustomGroupMultipleCreateWithFields();
48 $this->ids
['multi2'] = $this->CustomGroupMultipleCreateWithFields(array('title' => 'group2'));
52 $tablesToTruncate = array(
54 'civicrm_custom_field',
55 'civicrm_custom_group',
59 // true tells quickCleanup to drop any tables that might have been created in the test
60 $this->quickCleanup($tablesToTruncate, TRUE);
63 public function testCreateCustomValue() {
66 'custom_' . $this->ids
['single']['custom_field_id'] => 'customString') +
$this->params
;
68 $result = civicrm_api('custom_value', 'create', $params);
69 $this->assertAPISuccess($result, 'In line ' . __LINE__
);
70 $this->assertEquals(1, $result['count'], 'In line ' . __LINE__
);
71 $result = civicrm_api('custom_value', 'get', $params);
74 public function testGetMultipleCustomValues() {
76 $description = "/*this demonstrates the use of CustomValue get";
79 'first_name' => 'abc3',
80 'last_name' => 'xyz3',
81 'contact_type' => 'Individual',
82 'email' => 'man3@yahoo.com',
83 'version' => $this->_apiversion
,
84 'custom_' . $this->ids
['single']['custom_field_id'] => "value 1",
85 'custom_' . $this->ids
['multi']['custom_field_id'][0] => "value 2",
86 'custom_' . $this->ids
['multi']['custom_field_id'][1] => "warm beer",
87 'custom_' . $this->ids
['multi']['custom_field_id'][2] => "fl* w*",
88 'custom_' . $this->ids
['multi2']['custom_field_id'][2] => "vegemite",
92 $result = civicrm_api('Contact', 'create', $params);
93 $this->assertAPISuccess($result, __LINE__
);
94 $contact_id = $result['id'];
95 $result = civicrm_api('Contact', 'create',
97 'contact_type' => 'Individual',
100 'custom_' . $this->ids
['multi']['custom_field_id'][0] => "value 3",
101 'custom_' . $this->ids
['multi2']['custom_field_id'][0] => "coffee",
102 'custom_' . $this->ids
['multi2']['custom_field_id'][1] => "value 4",
107 'id' => $result['id'], 'version' => 3,
108 'entity_id' => $result['id'],
111 $result = civicrm_api('CustomValue', 'Get', $params);
113 $this->documentMe($params, $result, __FUNCTION__
, __FILE__
, $description);
114 $params['format.field_names'] = 1;
115 $resultformatted = civicrm_api('CustomValue', 'Get', $params);
116 $this->documentMe($params, $resultformatted, __FUNCTION__
, __FILE__
, "utilises field names", 'formatFieldName');
117 // delete the contact
118 civicrm_api('contact', 'delete', array('version' => 1, 'id' => $contact_id));
120 $this->assertAPISuccess( $result);
121 $this->assertEquals('coffee', $result['values'][$this->ids
['multi2']['custom_field_id'][0]]['2'], "In line " . __LINE__
);
122 $this->assertEquals('coffee', $result['values'][$this->ids
['multi2']['custom_field_id'][0]]['latest'], "In line " . __LINE__
);
123 $this->assertEquals($this->ids
['multi2']['custom_field_id'][0], $result['values'][$this->ids
['multi2']['custom_field_id'][0]]['id'], "In line " . __LINE__
);
124 $this->assertEquals('', $result['values'][$this->ids
['multi2']['custom_field_id'][0]]['1'], "In line " . __LINE__
);
125 $this->assertEquals($contact_id, $result['values'][$this->ids
['multi2']['custom_field_id'][0]]['entity_id'], "In line " . __LINE__
);
126 $this->assertEquals('value 1', $result['values'][$this->ids
['single']['custom_field_id']]['0'], "In line " . __LINE__
);
127 $this->assertEquals('value 1', $result['values'][$this->ids
['single']['custom_field_id']]['latest'], "In line " . __LINE__
);
128 $this->assertEquals('value 1', $resultformatted['values']['mySingleField']['latest'], "In line " . __LINE__
);
131 public function testDeleteCustomValue () {
132 $entity = civicrm_api('custom_value','get',$this->params);
133 $result = civicrm_api('custom_value','delete',array('version' =>3,'id' => $entity['id']));
134 $this->documentMe($this->params,$result,__FUNCTION__,__FILE__);
135 $this->assertAPISuccess($result, 'In line ' . __LINE__ );
136 $checkDeleted = civicrm_api('survey','get',array('version' =>3,));
137 $this->assertEquals( 0, $checkDeleted['count'], 'In line ' . __LINE__ );
141 public function testGetCustomValueChainDelete () {
142 $description = "demonstrates get + delete in the same call";
143 $subfile = 'ChainedGetDelete';
146 'title' => "survey title",
147 'api.survey.delete' => 1);
148 $result = civicrm_api('survey','create',$this->params);
149 $result = civicrm_api('survey','get',$params );
150 $this->documentMe($params,$result,__FUNCTION__,__FILE__,$description,$subfile);
151 $this->assertAPISuccess($result, 'In line ' . __LINE__ );
152 $this->assertEquals( 0,civicrm_api('survey','getcount',array('version' => 3)), 'In line ' . __LINE__ );