tests/phpunit/** - Remove unnecessary "require_once" statements
[civicrm-core.git] / tests / phpunit / CRM / Core / BAO / AddressTest.php
CommitLineData
6a488035
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
81621fee 4 | CiviCRM version 4.7 |
6a488035 5 +--------------------------------------------------------------------+
e7112fa7 6 | Copyright CiviCRM LLC (c) 2004-2015 |
6a488035
TO
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
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. |
13 | |
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. |
18 | |
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 +--------------------------------------------------------------------+
d25dd0ee 26 */
6a488035 27
e9479dcf
EM
28/**
29 * Class CRM_Core_BAO_AddressTest
30 */
6a488035 31class CRM_Core_BAO_AddressTest extends CiviUnitTestCase {
00be9182 32 public function setUp() {
6a488035
TO
33 parent::setUp();
34
35 $this->quickCleanup(array('civicrm_contact', 'civicrm_address'));
36 }
37
38 /**
100fef9d 39 * Create() method (create and update modes)
6a488035 40 */
00be9182 41 public function testCreate() {
6a488035
TO
42 $contactId = Contact::createIndividual();
43
44 $params = array();
45 $params['address']['1'] = array(
46 'street_address' => 'Oberoi Garden',
47 'supplemental_address_1' => 'Attn: Accounting',
48 'supplemental_address_2' => 'Powai',
49 'city' => 'Athens',
50 'postal_code' => '01903',
51 'state_province_id' => '1000',
52 'country_id' => '1228',
53 'geo_code_1' => '18.219023',
54 'geo_code_2' => '-105.00973',
55 'location_type_id' => '1',
56 'is_primary' => '1',
57 'is_billing' => '0',
58 );
59
60 $params['contact_id'] = $contactId;
61
6a488035
TO
62 $fixAddress = TRUE;
63
64 CRM_Core_BAO_Address::create($params, $fixAddress, $entity = NULL);
65 $addressId = $this->assertDBNotNull('CRM_Core_DAO_Address', 'Oberoi Garden', 'id', 'street_address',
66 'Database check for created address.'
67 );
68
69 // Now call add() to modify an existing address
70
71 $params = array();
72 $params['address']['1'] = array(
73 'id' => $addressId,
74 'street_address' => '120 Terminal Road',
75 'supplemental_address_1' => 'A-wing:3037',
76 'supplemental_address_2' => 'Bandra',
77 'city' => 'Athens',
78 'postal_code' => '01903',
79 'state_province_id' => '1000',
80 'country_id' => '1228',
81 'geo_code_1' => '18.219023',
82 'geo_code_2' => '-105.00973',
83 'location_type_id' => '1',
84 'is_primary' => '1',
85 'is_billing' => '0',
86 );
87 $params['contact_id'] = $contactId;
88
6a488035
TO
89 $block = CRM_Core_BAO_Address::create($params, $fixAddress, $entity = NULL);
90
91 $cid = $this->assertDBNotNull('CRM_Core_DAO_Address', $contactId, 'id', 'contact_id',
92 'Database check for updated address by contactId.'
93 );
94 $addressId = $this->assertDBNotNull('CRM_Core_DAO_Address', '120 Terminal Road', 'id', 'street_address',
95 'Database check for updated address by street_name.'
96 );
97 Contact::delete($contactId);
98 }
99
100 /**
101 * Add() method ( )
102 */
00be9182 103 public function testAdd() {
6a488035
TO
104 $contactId = Contact::createIndividual();
105
106 $fixParams = array(
107 'street_address' => 'E 906N Pine Pl W',
108 'supplemental_address_1' => 'Editorial Dept',
109 'supplemental_address_2' => '',
110 'city' => 'El Paso',
111 'postal_code' => '88575',
112 'postal_code_suffix' => '',
113 'state_province_id' => '1001',
114 'country_id' => '1228',
115 'geo_code_1' => '31.694842',
116 'geo_code_2' => '-106.29998',
117 'location_type_id' => '1',
118 'is_primary' => '1',
119 'is_billing' => '0',
120 'contact_id' => $contactId,
121 );
122
123 $addAddress = CRM_Core_BAO_Address::add($fixParams, $fixAddress = TRUE);
124
125 $addParams = $this->assertDBNotNull('CRM_Core_DAO_Address', $contactId, 'id', 'contact_id',
126 'Database check for created contact address.'
127 );
128
129 $this->assertEquals($addAddress->street_address, 'E 906N Pine Pl W', 'In line' . __LINE__);
130 $this->assertEquals($addAddress->supplemental_address_1, 'Editorial Dept', 'In line' . __LINE__);
131 $this->assertEquals($addAddress->city, 'El Paso', 'In line' . __LINE__);
132 $this->assertEquals($addAddress->postal_code, '88575', 'In line' . __LINE__);
133 $this->assertEquals($addAddress->geo_code_1, '31.694842', 'In line' . __LINE__);
134 $this->assertEquals($addAddress->geo_code_2, '-106.29998', 'In line' . __LINE__);
135 $this->assertEquals($addAddress->country_id, '1228', 'In line' . __LINE__);
136 Contact::delete($contactId);
137 }
138
139 /**
140 * AllAddress() method ( )
141 */
00be9182 142 public function testallAddress() {
6a488035
TO
143 $contactId = Contact::createIndividual();
144
145 $fixParams = array(
146 'street_address' => 'E 906N Pine Pl W',
147 'supplemental_address_1' => 'Editorial Dept',
148 'supplemental_address_2' => '',
149 'city' => 'El Paso',
150 'postal_code' => '88575',
151 'postal_code_suffix' => '',
152 'state_province_id' => '1001',
153 'country_id' => '1228',
154 'geo_code_1' => '31.694842',
155 'geo_code_2' => '-106.29998',
156 'location_type_id' => '1',
157 'is_primary' => '1',
158 'is_billing' => '0',
159 'contact_id' => $contactId,
160 );
161
162 CRM_Core_BAO_Address::add($fixParams, $fixAddress = TRUE);
163
164 $addParams = $this->assertDBNotNull('CRM_Core_DAO_Address', $contactId, 'id', 'contact_id',
165 'Database check for created contact address.'
166 );
167 $fixParams = array(
168 'street_address' => 'SW 719B Beech Dr NW',
169 'supplemental_address_1' => 'C/o OPDC',
170 'supplemental_address_2' => '',
171 'city' => 'Neillsville',
172 'postal_code' => '54456',
173 'postal_code_suffix' => '',
174 'state_province_id' => '1001',
175 'country_id' => '1228',
176 'geo_code_1' => '44.553719',
177 'geo_code_2' => '-90.61457',
178 'location_type_id' => '2',
179 'is_primary' => '',
180 'is_billing' => '1',
181 'contact_id' => $contactId,
182 );
183
184 CRM_Core_BAO_Address::add($fixParams, $fixAddress = TRUE);
185
186 $addParams = $this->assertDBNotNull('CRM_Core_DAO_Address', $contactId, 'id', 'contact_id',
187 'Database check for created contact address.'
188 );
189
190 $allAddress = CRM_Core_BAO_Address::allAddress($contactId);
191
192 $this->assertEquals(count($allAddress), 2, 'Checking number of returned addresses.');
193
194 Contact::delete($contactId);
195 }
196
197 /**
198 * AllAddress() method ( ) with null value
199 */
00be9182 200 public function testnullallAddress() {
6a488035
TO
201 $contactId = Contact::createIndividual();
202
203 $fixParams = array(
204 'street_address' => 'E 906N Pine Pl W',
205 'supplemental_address_1' => 'Editorial Dept',
206 'supplemental_address_2' => '',
207 'city' => 'El Paso',
208 'postal_code' => '88575',
209 'postal_code_suffix' => '',
210 'state_province_id' => '1001',
211 'country_id' => '1228',
212 'geo_code_1' => '31.694842',
213 'geo_code_2' => '-106.29998',
214 'location_type_id' => '1',
215 'is_primary' => '1',
216 'is_billing' => '0',
217 'contact_id' => $contactId,
218 );
219
220 CRM_Core_BAO_Address::add($fixParams, $fixAddress = TRUE);
221
222 $addParams = $this->assertDBNotNull('CRM_Core_DAO_Address', $contactId, 'id', 'contact_id',
223 'Database check for created contact address.'
224 );
225
226 $contact_Id = NULL;
227
228 $allAddress = CRM_Core_BAO_Address::allAddress($contact_Id);
229
230 $this->assertEquals($allAddress, NULL, 'Checking null for returned addresses.');
231
232 Contact::delete($contactId);
233 }
234
235 /**
100fef9d 236 * GetValues() method (get Address fields)
6a488035 237 */
00be9182 238 public function testGetValues() {
6a488035
TO
239 $contactId = Contact::createIndividual();
240
241 $params = array();
242 $params['address']['1'] = array(
243 'street_address' => 'Oberoi Garden',
244 'supplemental_address_1' => 'Attn: Accounting',
245 'supplemental_address_2' => 'Powai',
246 'city' => 'Athens',
247 'postal_code' => '01903',
248 'state_province_id' => '1000',
249 'country_id' => '1228',
250 'geo_code_1' => '18.219023',
251 'geo_code_2' => '-105.00973',
252 'location_type_id' => '1',
253 'is_primary' => '1',
254 'is_billing' => '0',
255 );
256
257 $params['contact_id'] = $contactId;
258
259 $fixAddress = TRUE;
260
261 CRM_Core_BAO_Address::create($params, $fixAddress, $entity = NULL);
262
263 $addressId = $this->assertDBNotNull('CRM_Core_DAO_Address', $contactId, 'id', 'contact_id',
264 'Database check for created address.'
265 );
266
267 $entityBlock = array('contact_id' => $contactId);
268 $address = CRM_Core_BAO_Address::getValues($entityBlock);
269 $this->assertEquals($address[1]['id'], $addressId);
270 $this->assertEquals($address[1]['contact_id'], $contactId);
271 $this->assertEquals($address[1]['street_address'], 'Oberoi Garden');
272 Contact::delete($contactId);
273 }
274
275 /**
100fef9d 276 * ParseStreetAddress() method (get street address parsed)
6a488035 277 */
00be9182 278 public function testParseStreetAddress() {
6a488035
TO
279
280 // valid Street address to be parsed ( without locale )
281 $street_address = "54A Excelsior Ave. Apt 1C";
282 $parsedStreetAddress = CRM_Core_BAO_Address::parseStreetAddress($street_address);
283 $this->assertEquals($parsedStreetAddress['street_name'], 'Excelsior Ave.');
284 $this->assertEquals($parsedStreetAddress['street_unit'], 'Apt 1C');
285 $this->assertEquals($parsedStreetAddress['street_number'], '54');
286 $this->assertEquals($parsedStreetAddress['street_number_suffix'], 'A');
287
288 // valid Street address to be parsed ( $locale = 'en_US' )
92915c55
TO
289 $street_address = "54A Excelsior Ave. Apt 1C";
290 $locale = 'en_US';
6a488035
TO
291 $parsedStreetAddress = CRM_Core_BAO_Address::parseStreetAddress($street_address, $locale);
292 $this->assertEquals($parsedStreetAddress['street_name'], 'Excelsior Ave.');
293 $this->assertEquals($parsedStreetAddress['street_unit'], 'Apt 1C');
294 $this->assertEquals($parsedStreetAddress['street_number'], '54');
295 $this->assertEquals($parsedStreetAddress['street_number_suffix'], 'A');
296
297 // invalid Street address ( $locale = 'en_US' )
92915c55
TO
298 $street_address = "West St. Apt 1";
299 $locale = 'en_US';
6a488035
TO
300 $parsedStreetAddress = CRM_Core_BAO_Address::parseStreetAddress($street_address, $locale);
301 $this->assertEquals($parsedStreetAddress['street_name'], 'West St.');
302 $this->assertEquals($parsedStreetAddress['street_unit'], 'Apt 1');
303 $this->assertNotContains('street_number', $parsedStreetAddress);
304 $this->assertNotContains('street_number_suffix', $parsedStreetAddress);
305
306 // valid Street address to be parsed ( $locale = 'fr_CA' )
92915c55
TO
307 $street_address = "2-123CA Main St";
308 $locale = 'fr_CA';
6a488035
TO
309 $parsedStreetAddress = CRM_Core_BAO_Address::parseStreetAddress($street_address, $locale);
310 $this->assertEquals($parsedStreetAddress['street_name'], 'Main St');
311 $this->assertEquals($parsedStreetAddress['street_unit'], '2');
312 $this->assertEquals($parsedStreetAddress['street_number'], '123');
313 $this->assertEquals($parsedStreetAddress['street_number_suffix'], 'CA');
314
315 // invalid Street address ( $locale = 'fr_CA' )
92915c55
TO
316 $street_address = "123 Main St";
317 $locale = 'fr_CA';
6a488035
TO
318 $parsedStreetAddress = CRM_Core_BAO_Address::parseStreetAddress($street_address, $locale);
319 $this->assertEquals($parsedStreetAddress['street_name'], 'Main St');
320 $this->assertEquals($parsedStreetAddress['street_number'], '123');
321 $this->assertNotContains('street_unit', $parsedStreetAddress);
322 $this->assertNotContains('street_number_suffix', $parsedStreetAddress);
323 }
96025800 324
6a488035 325}