tests/ - Remove get_info()
[civicrm-core.git] / tests / phpunit / CRM / Contact / BAO / ContactType / ContactTest.php
1 <?php
2 require_once 'CiviTest/CiviUnitTestCase.php';
3
4 /**
5 * Class CRM_Contact_BAO_ContactType_ContactTest
6 */
7 class CRM_Contact_BAO_ContactType_ContactTest extends CiviUnitTestCase {
8
9 function setUp() {
10 parent::setUp();
11
12 $params = array(
13 'label' => 'indiv_student',
14 'name' => 'indiv_student',
15 // Individual
16 'parent_id' => 1,
17 'is_active' => 1,
18 );
19 $result = CRM_Contact_BAO_ContactType::add($params);
20 $this->student = $params['name'];
21
22 $params = array(
23 'label' => 'indiv_parent',
24 'name' => 'indiv_parent',
25 // Individual
26 'parent_id' => 1,
27 'is_active' => 1,
28 );
29 $result = CRM_Contact_BAO_ContactType::add($params);
30 $this->parent = $params['name'];
31
32
33 $params = array(
34 'label' => 'org_sponsor',
35 'name' => 'org_sponsor',
36 // Organization
37 'parent_id' => 3,
38 'is_active' => 1,
39 );
40 $result = CRM_Contact_BAO_ContactType::add($params);
41 $this->sponsor = $params['name'];
42
43 $params = array(
44 'label' => 'org_team',
45 'name' => 'org_team',
46 // Organization
47 'parent_id' => 3,
48 'is_active' => 1,
49 );
50 $result = CRM_Contact_BAO_ContactType::add($params);
51 $this->team = $params['name'];
52 }
53
54 function tearDown() {
55 $this->quickCleanup(array('civicrm_contact'));
56 $query = "
57 DELETE FROM civicrm_contact_type
58 WHERE name IN ('{$this->student}','{$this->parent}','{$this->sponsor}', '{$this->team}');";
59 CRM_Core_DAO::executeQuery($query);
60 }
61
62 /**
63 * Methods create Contact with valid data
64 * success expected
65 *
66 */
67 function testCreateContact() {
68 //check for Type:Individual
69 $params = array(
70 'first_name' => 'Anne',
71 'last_name' => 'Grant',
72 'contact_type' => 'Individual',
73 );
74 try {
75 $contact = CRM_Contact_BAO_Contact::add($params);
76 }
77 catch(Exception$expected) {}
78 $this->assertEquals($contact->first_name, 'Anne', 'In line ' . __LINE__);
79 $this->assertEquals($contact->contact_type, 'Individual', 'In line ' . __LINE__);
80 CRM_Contact_BAO_Contact::deleteContact($contact->id);
81
82 //check for Type:Organization
83 $params = array(
84 'organization_name' => 'Compumentor',
85 'contact_type' => 'Organization',
86 );
87 try {
88 $contact = CRM_Contact_BAO_Contact::add($params);
89 }
90 catch(Exception$expected) {}
91 $this->assertEquals($contact->organization_name, 'Compumentor', 'In line ' . __LINE__);
92 $this->assertEquals($contact->contact_type, 'Organization', 'In line ' . __LINE__);
93 CRM_Contact_BAO_Contact::deleteContact($contact->id);
94
95 //check for Type:Household
96 $params = array(
97 'household_name' => 'John Does home',
98 'contact_type' => 'Household',
99 );
100 try {
101 $contact = CRM_Contact_BAO_Contact::add($params);
102 }
103 catch(Exception$expected) {}
104 $this->assertEquals($contact->household_name, 'John Does home', 'In line ' . __LINE__);
105 $this->assertEquals($contact->contact_type, 'Household', 'In line ' . __LINE__);
106 CRM_Contact_BAO_Contact::deleteContact($contact->id);
107
108 //check for Type:Individual, Subtype:Student
109 $params = array(
110 'first_name' => 'Bill',
111 'last_name' => 'Adams',
112 'contact_type' => 'Individual',
113 'contact_sub_type' => $this->student,
114 );
115 try {
116 $contact = CRM_Contact_BAO_Contact::add($params);
117 }
118 catch(Exception$expected) {}
119 $this->assertEquals($contact->first_name, 'Bill', 'In line ' . __LINE__);
120 $this->assertEquals($contact->contact_type, 'Individual', 'In line ' . __LINE__);
121 $this->assertEquals(str_replace(CRM_Core_DAO::VALUE_SEPARATOR, '', $contact->contact_sub_type), $this->student, 'In line ' . __LINE__);
122 CRM_Contact_BAO_Contact::deleteContact($contact->id);
123
124 //check for Type:Organization, Subtype:Sponsor
125 $params = array(
126 'organization_name' => 'Conservation Corp',
127 'contact_type' => 'Organization',
128 'contact_sub_type' => $this->sponsor,
129 );
130 try {
131 $contact = CRM_Contact_BAO_Contact::add($params);
132 }
133 catch(Exception$expected) {}
134 $this->assertEquals($contact->organization_name, 'Conservation Corp', 'In line ' . __LINE__);
135 $this->assertEquals($contact->contact_type, 'Organization', 'In line ' . __LINE__);
136 $this->assertEquals(str_replace(CRM_Core_DAO::VALUE_SEPARATOR, '', $contact->contact_sub_type), $this->sponsor, 'In line ' . __LINE__);
137 CRM_Contact_BAO_Contact::deleteContact($contact->id);
138 }
139
140 /**
141 * Update the contact with no subtype to a valid subtype
142 * success expected
143 */
144 function testUpdateContactNosubtypeToValid() {
145 $params = array(
146 'first_name' => 'Anne',
147 'last_name' => 'Grant',
148 'contact_type' => 'Individual',
149 );
150 try {
151 $contact = CRM_Contact_BAO_Contact::add($params);
152 }
153 catch(Exception$expected) {}
154 $updateParams = array(
155 'contact_sub_type' => $this->student,
156 'contact_type' => 'Individual',
157 'contact_id' => $contact->id,
158 );
159 try {
160 $updatedContact = CRM_Contact_BAO_Contact::add($updateParams);
161 }
162 catch(Exception$expected) {}
163 $this->assertEquals($updatedContact->id, $contact->id, 'In line ' . __LINE__);
164 $this->assertEquals($updatedContact->contact_type, 'Individual', 'In line ' . __LINE__);
165 $this->assertEquals(str_replace(CRM_Core_DAO::VALUE_SEPARATOR, '', $updatedContact->contact_sub_type), $this->student, 'In line ' . __LINE__);
166 CRM_Contact_BAO_Contact::deleteContact($contact->id);
167
168 $params = array(
169 'organization_name' => 'Compumentor',
170 'contact_type' => 'Organization',
171 );
172 try {
173 $contact = CRM_Contact_BAO_Contact::add($params);
174 }
175 catch(Exception$expected) {}
176
177 $updateParams = array(
178 'contact_sub_type' => $this->sponsor,
179 'contact_type' => 'Organization',
180 'contact_id' => $contact->id,
181 );
182 try {
183 $updatedContact = CRM_Contact_BAO_Contact::add($updateParams);
184 }
185 catch(Exception$expected) {}
186 $this->assertEquals($updatedContact->id, $contact->id, 'In line ' . __LINE__);
187 $this->assertEquals($updatedContact->contact_type, 'Organization', 'In line ' . __LINE__);
188 $this->assertEquals(str_replace(CRM_Core_DAO::VALUE_SEPARATOR, '', $updatedContact->contact_sub_type), $this->sponsor, 'In line ' . __LINE__);
189 CRM_Contact_BAO_Contact::deleteContact($contact->id);
190 }
191
192 /**
193 * Update the contact with subtype to another valid subtype
194 * success expected
195 */
196 function testUpdateContactSubtype() {
197 $params = array(
198 'first_name' => 'Anne',
199 'last_name' => 'Grant',
200 'contact_type' => 'Individual',
201 'contact_sub_type' => $this->student,
202 );
203 try {
204 $contact = CRM_Contact_BAO_Contact::add($params);
205 }
206 catch(Exception$expected) {}
207
208 $updateParams = array(
209 'contact_sub_type' => $this->parent,
210 'contact_type' => 'Individual',
211 'contact_id' => $contact->id,
212 );
213 try {
214 $updatedContact = CRM_Contact_BAO_Contact::add($updateParams);
215 }
216 catch(Exception$expected) {}
217 $this->assertEquals($updatedContact->id, $contact->id, 'In line ' . __LINE__);
218 $this->assertEquals($updatedContact->contact_type, 'Individual', 'In line ' . __LINE__);
219 $this->assertEquals(str_replace(CRM_Core_DAO::VALUE_SEPARATOR, '', $updatedContact->contact_sub_type), $this->parent, 'In line ' . __LINE__);
220 CRM_Contact_BAO_Contact::deleteContact($contact->id);
221
222
223 $params = array(
224 'organization_name' => 'Compumentor',
225 'contact_type' => 'Organization',
226 'contact_sub_type' => $this->sponsor,
227 );
228 try {
229 $contact = CRM_Contact_BAO_Contact::add($params);
230 }
231 catch(Exception$expected) {}
232
233 $updateParams = array(
234 'contact_sub_type' => $this->team,
235 'contact_type' => 'Organization',
236 'contact_id' => $contact->id,
237 );
238 try {
239 $updatedContact = CRM_Contact_BAO_Contact::add($updateParams);
240 }
241 catch(Exception$expected) {}
242
243 $this->assertEquals($updatedContact->id, $contact->id, 'In line ' . __LINE__);
244 $this->assertEquals($updatedContact->contact_type, 'Organization', 'In line ' . __LINE__);
245 $this->assertEquals(str_replace(CRM_Core_DAO::VALUE_SEPARATOR, '', $updatedContact->contact_sub_type), $this->team, 'In line ' . __LINE__);
246 CRM_Contact_BAO_Contact::deleteContact($contact->id);
247
248
249 $params = array(
250 'first_name' => 'Anne',
251 'last_name' => 'Grant',
252 'contact_type' => 'Individual',
253 'contact_sub_type' => $this->student,
254 );
255 try {
256 $contact = CRM_Contact_BAO_Contact::add($params);
257 }
258 catch(Exception$expected) {}
259
260 $updateParams = array(
261 'contact_sub_type' => NULL,
262 'contact_type' => 'Individual',
263 'contact_id' => $contact->id,
264 );
265 try {
266 $updatedContact = CRM_Contact_BAO_Contact::add($updateParams);
267 }
268 catch(Exception$expected) {}
269
270 $this->assertEquals($updatedContact->id, $contact->id, 'In line ' . __LINE__);
271 $this->assertEquals($updatedContact->contact_type, 'Individual', 'In line ' . __LINE__);
272 $this->assertEquals($updatedContact->contact_sub_type, 'null', 'In line ' . __LINE__);
273 CRM_Contact_BAO_Contact::deleteContact($contact->id);
274 }
275 }
276
277
278