Merge remote-tracking branch 'upstream/4.5' into 4.5-master-2014-12-22-22-01-44
[civicrm-core.git] / tests / phpunit / CRM / Member / BAO / MembershipTest.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | CiviCRM version 4.5 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2014 |
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 +--------------------------------------------------------------------+
26 */
27
28
29 require_once 'CiviTest/CiviUnitTestCase.php';
30 require_once 'CiviTest/Contact.php';
31 require_once 'CiviTest/Custom.php';
32 require_once 'CiviTest/ContributionPage.php';
33 require_once 'CiviTest/Membership.php';
34 require_once 'CRM/Core/Controller.php';
35
36 /**
37 * Class CRM_Member_BAO_MembershipTest
38 */
39 class CRM_Member_BAO_MembershipTest extends CiviUnitTestCase {
40 /**
41 * @return array
42 */
43 function get_info() {
44 return array(
45 'name' => 'Membership BAOs',
46 'description' => 'Test all Member_BAO_Membership methods.',
47 'group' => 'CiviCRM BAO Tests',
48 );
49 }
50
51 function setUp() {
52 parent::setUp();
53 // FIXME: something NULLs $GLOBALS['_HTML_QuickForm_registered_rules'] when the tests are ran all together
54 $GLOBALS['_HTML_QuickForm_registered_rules'] = array(
55 'required' => array('html_quickform_rule_required', 'HTML/QuickForm/Rule/Required.php'),
56 'maxlength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
57 'minlength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
58 'rangelength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
59 'email' => array('html_quickform_rule_email', 'HTML/QuickForm/Rule/Email.php'),
60 'regex' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
61 'lettersonly' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
62 'alphanumeric' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
63 'numeric' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
64 'nopunctuation' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
65 'nonzero' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
66 'callback' => array('html_quickform_rule_callback', 'HTML/QuickForm/Rule/Callback.php'),
67 'compare' => array('html_quickform_rule_compare', 'HTML/QuickForm/Rule/Compare.php'),
68 );
69
70 $this->_contactID = $this->organizationCreate();
71 $this->_membershipTypeID = $this->membershipTypeCreate(array('member_of_contact_id' => $this->_contactID));
72 // add a random number to avoid silly conflicts with old data
73 $this->_membershipStatusID = $this->membershipStatusCreate('test status' . rand(1, 1000));
74 }
75
76 /**
77 * Tears down the fixture, for example, closes a network connection.
78 * This method is called after a test is executed.
79 *
80 */
81 function tearDown() {
82 $this->membershipTypeDelete( array( 'id' => $this->_membershipTypeID ) );
83 $this->membershipStatusDelete( $this->_membershipStatusID );
84 Contact::delete( $this->_contactID );
85
86 $this->_contactID = $this->_membershipStatusID = $this->_membershipTypeID = null;
87 }
88
89 function testCreate() {
90
91 $contactId = Contact::createIndividual();
92
93 $params = array(
94 'contact_id' => $contactId,
95 'membership_type_id' => $this->_membershipTypeID,
96 'join_date' => date('Ymd',strtotime('2006-01-21')),
97 'start_date' => date('Ymd',strtotime('2006-01-21')),
98 'end_date' => date('Ymd',strtotime('2006-12-21')),
99 'source' => 'Payment',
100 'is_override' => 1,
101 'status_id' => $this->_membershipStatusID,
102 );
103 $ids = array();
104 CRM_Member_BAO_Membership::create($params, $ids);
105
106 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
107 'contact_id', 'Database check for created membership.'
108 );
109
110 // Now call create() to modify an existing Membership
111
112 $params = array();
113 $params = array(
114 'contact_id' => $contactId,
115 'membership_type_id' => $this->_membershipTypeID,
116 'join_date' => date('Ymd',strtotime('2006-01-21')),
117 'start_date' => date('Ymd',strtotime('2006-01-21')),
118 'end_date' => date('Ymd',strtotime('2006-12-21')),
119 'source' => 'Payment',
120 'is_override' => 1,
121 'status_id' => $this->_membershipStatusID,
122 );
123 $ids = array(
124 'membership' => $membershipId,
125 );
126 CRM_Member_BAO_Membership::create($params, $ids);
127
128 $membershipTypeId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId,
129 'membership_type_id', 'contact_id',
130 'Database check on updated membership record.'
131 );
132 $this->assertEquals($membershipTypeId, $this->_membershipTypeID, 'Verify membership type id is fetched.');
133
134 $this->membershipDelete($membershipId);
135 Contact::delete($contactId);
136 }
137
138 function testGetValues() {
139 // $this->markTestSkipped( 'causes mysterious exit, needs fixing!' );
140 // Calculate membership dates based on the current date
141 $now = time();
142 $year_from_now = $now + (365 * 24 * 60 * 60);
143 $last_month = $now - (30 * 24 * 60 * 60);
144 $year_from_last_month = $last_month + (365 * 24 * 60 * 60);
145
146 $contactId = Contact::createIndividual();
147
148 $params = array(
149 'contact_id' => $contactId,
150 'membership_type_id' => $this->_membershipTypeID,
151 'join_date' => date('Ymd'),
152 'start_date' => date('Ymd'),
153 'end_date' => date('Ymd', $year_from_now),
154 'source' => 'Payment',
155 'is_override' => 1,
156 'status_id' => $this->_membershipStatusID,
157 );
158
159 $ids = array();
160 CRM_Member_BAO_Membership::create($params, $ids);
161
162 $membershipId1 = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
163 'contact_id', 'Database check for created membership.'
164 );
165
166 $params = array(
167 'contact_id' => $contactId,
168 'membership_type_id' => $this->_membershipTypeID,
169 'join_date' => date('Ymd', $last_month),
170 'start_date' => date('Ymd', $last_month),
171 'end_date' => date('Ymd', $year_from_last_month),
172 'source' => 'Source123',
173 'is_override' => 0,
174 'status_id' => $this->_membershipStatusID,
175 );
176 $ids = array();
177 CRM_Member_BAO_Membership::create($params, $ids);
178
179 $membershipId2 = $this->assertDBNotNull('CRM_Member_BAO_Membership', 'source123', 'id',
180 'source', 'Database check for created membership.'
181 );
182
183 $membership = array('contact_id' => $contactId);
184 $membershipValues = array();
185 CRM_Member_BAO_Membership::getValues($membership, $membershipValues, TRUE);
186
187 $this->assertEquals($membershipValues[$membershipId1]['membership_id'], $membershipId1, 'Verify membership record 1 is fetched.');
188
189 $this->assertEquals($membershipValues[$membershipId2]['membership_id'], $membershipId2, 'Verify membership record 2 is fetched.');
190
191 $this->membershipDelete($membershipId1);
192 $this->membershipDelete($membershipId2);
193 Contact::delete($contactId);
194 }
195
196 function testRetrieve() {
197 $contactId = Contact::createIndividual();
198
199 $params = array(
200 'contact_id' => $contactId,
201 'membership_type_id' => $this->_membershipTypeID,
202 'join_date' => date('Ymd',strtotime('2006-01-21')),
203 'start_date' => date('Ymd',strtotime('2006-01-21')),
204 'end_date' => date('Ymd',strtotime('2006-12-21')),
205 'source' => 'Payment',
206 'is_override' => 1,
207 'status_id' => $this->_membershipStatusID,
208 );
209 $ids = array();
210 CRM_Member_BAO_Membership::create($params, $ids);
211
212 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
213 'contact_id', 'Database check for created membership.'
214 );
215 $params = array('id' => $membershipId);
216 $values = array();
217 CRM_Member_BAO_Membership::retrieve($params, $values);
218 $this->assertEquals($values['id'], $membershipId, 'Verify membership record is retrieved.');
219
220 $this->membershipDelete($membershipId);
221 $this->contactDelete($contactId);
222 }
223
224 function testActiveMembers() {
225 $contactId = Contact::createIndividual();
226
227 $params = array(
228 'contact_id' => $contactId,
229 'membership_type_id' => $this->_membershipTypeID,
230 'join_date' => date('Ymd',strtotime('2006-01-21')),
231 'start_date' => date('Ymd',strtotime('2006-01-21')),
232 'end_date' => date('Ymd',strtotime('2006-12-21')),
233 'source' => 'Payment',
234 'is_override' => 1,
235 'status_id' => $this->_membershipStatusID,
236 );
237 $ids = array();
238 CRM_Member_BAO_Membership::create($params, $ids);
239
240 $membershipId1 = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
241 'contact_id', 'Database check for created membership.'
242 );
243
244 $params = array('id' => $membershipId1);
245 $values1 = array();
246 CRM_Member_BAO_Membership::retrieve($params, $values1);
247 $membership = array($membershipId1 => $values1);
248
249 $params = array(
250 'contact_id' => $contactId,
251 'membership_type_id' => $this->_membershipTypeID,
252 'join_date' => date('Ymd',strtotime('2006-01-21')),
253 'start_date' => date('Ymd',strtotime('2006-01-21')),
254 'end_date' => date('Ymd',strtotime('2006-12-21')),
255 'source' => 'PaySource',
256 'is_override' => 1,
257 'status_id' => $this->_membershipStatusID,
258 );
259 $ids = array();
260 CRM_Member_BAO_Membership::create($params, $ids);
261
262 $membershipId2 = $this->assertDBNotNull('CRM_Member_BAO_Membership', 'PaySource', 'id',
263 'source', 'Database check for created membership.'
264 );
265
266 $params = array('id' => $membershipId2);
267 $values2 = array();
268 CRM_Member_BAO_Membership::retrieve($params, $values2);
269 $membership[$membershipId2] = $values2;
270
271 $activeMembers = CRM_Member_BAO_Membership::activeMembers($membership);
272 $inActiveMembers = CRM_Member_BAO_Membership::activeMembers($membership, 'inactive');
273
274 $this->assertEquals($activeMembers[$membershipId1]['id'], $membership[$membershipId1]['id'], 'Verify active membership record is retrieved.');
275 $this->assertEquals($activeMembers[$membershipId2]['id'], $membership[$membershipId2]['id'], 'Verify active membership record is retrieved.');
276
277 $this->assertEquals(0, count($inActiveMembers), 'Verify No inactive membership record is retrieved.');
278
279 $this->membershipDelete($membershipId1);
280 $this->membershipDelete($membershipId2);
281 Contact::delete($contactId);
282 }
283
284 function testDeleteMembership() {
285 $contactId = Contact::createIndividual();
286
287 $params = array(
288 'contact_id' => $contactId,
289 'membership_type_id' => $this->_membershipTypeID,
290 'join_date' => date('Ymd',strtotime('2006-01-21')),
291 'start_date' => date('Ymd',strtotime('2006-01-21')),
292 'end_date' => date('Ymd',strtotime('2006-12-21')),
293 'source' => 'Payment',
294 'is_override' => 1,
295 'status_id' => $this->_membershipStatusID,
296 );
297 $ids = array();
298 CRM_Member_BAO_Membership::create($params, $ids);
299
300 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
301 'contact_id', 'Database check for created membership.'
302 );
303 CRM_Member_BAO_Membership::del($membershipId);
304
305 $membershipId = $this->assertDBNull('CRM_Member_BAO_Membership', $contactId, 'id',
306 'contact_id', 'Database check for deleted membership.'
307 );
308 Contact::delete($contactId);
309 }
310
311 function testGetContactMembership() {
312 $contactId = Contact::createIndividual();
313
314 $params = array(
315 'contact_id' => $contactId,
316 'membership_type_id' => $this->_membershipTypeID,
317 'join_date' => date('Ymd',strtotime('2006-01-21')),
318 'start_date' => date('Ymd',strtotime('2006-01-21')),
319 'end_date' => date('Ymd',strtotime('2006-12-21')),
320 'source' => 'Payment',
321 'is_override' => 1,
322 'status_id' => $this->_membershipStatusID,
323 );
324 $ids = array();
325 CRM_Member_BAO_Membership::create($params, $ids);
326
327 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
328 'contact_id', 'Database check for created membership.'
329 );
330
331 $membership = CRM_Member_BAO_Membership::getContactMembership($contactId, $this->_membershipTypeID, FALSE);
332
333 $this->assertEquals($membership['id'], $membershipId, 'Verify membership record is retrieved.');
334
335 $this->membershipDelete($membershipId);
336 Contact::delete($contactId);
337 }
338
339
340 /**
341 * Get the contribution
342 * page id from the membership record
343 */
344 function testgetContributionPageId() {
345 $contactId = Contact::createIndividual();
346
347 $params = array(
348 'contact_id' => $contactId,
349 'membership_type_id' => $this->_membershipTypeID,
350 'join_date' => date('Ymd',strtotime('2006-01-21')),
351 'start_date' => date('Ymd',strtotime('2006-01-21')),
352 'end_date' => date('Ymd',strtotime('2006-12-21')),
353 'source' => 'Payment',
354 'is_override' => 1,
355 'status_id' => $this->_membershipStatusID,
356 );
357 $ids = array();
358 CRM_Member_BAO_Membership::create($params, $ids);
359
360
361 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
362 'contact_id', 'Database check for created membership.'
363 );
364 $membership[$membershipId]['renewPageId'] = CRM_Member_BAO_Membership::getContributionPageId($membershipId);
365
366 $this->membershipDelete($membershipId);
367 Contact::delete($contactId);
368 }
369 /**
370 * Get membership joins/renewals
371 * for a specified membership
372 * type.
373 *
374 */
375 function testgetMembershipStarts() {
376 $contactId = Contact::createIndividual();
377
378 $params = array(
379 'contact_id' => $contactId,
380 'membership_type_id' => $this->_membershipTypeID,
381 'join_date' => date('Ymd',strtotime('2006-01-21')),
382 'start_date' => date('Ymd',strtotime('2006-01-21')),
383 'end_date' => date('Ymd',strtotime('2006-12-21')),
384 'source' => 'Payment',
385 'is_override' => 1,
386 'status_id' => $this->_membershipStatusID,
387 );
388 $ids = array();
389 CRM_Member_BAO_Membership::create($params, $ids);
390
391 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
392 'contact_id', 'Database check for created membership.'
393 );
394 $yearStart = date('Y') . '0101';
395 $currentDate = date('Ymd');
396 CRM_Member_BAO_Membership::getMembershipStarts($this->_membershipTypeID, $yearStart, $currentDate);
397
398 $this->membershipDelete($membershipId);
399 Contact::delete($contactId);
400 }
401
402 /**
403 * Get a count of membership for a specified membership type,
404 * optionally for a specified date.
405 *
406 */
407 function testGetMembershipCount() {
408 $contactId = Contact::createIndividual();
409
410 $params = array(
411 'contact_id' => $contactId,
412 'membership_type_id' => $this->_membershipTypeID,
413 'join_date' => date('Ymd',strtotime('2006-01-21')),
414 'start_date' => date('Ymd',strtotime('2006-01-21')),
415 'end_date' => date('Ymd',strtotime('2006-12-21')),
416 'source' => 'Payment',
417 'is_override' => 1,
418 'status_id' => $this->_membershipStatusID,
419 );
420 $ids = array();
421 CRM_Member_BAO_Membership::create($params, $ids);
422
423 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
424 'contact_id', 'Database check for created membership.'
425 );
426 $currentDate = date('Ymd');
427 $test = 0;
428 CRM_Member_BAO_Membership::getMembershipCount($this->_membershipTypeID, $currentDate, $test);
429
430 $this->membershipDelete($membershipId);
431 Contact::delete($contactId);
432 }
433
434
435 /**
436 * Take sort name of contact during
437 * batch update member via profile
438 *
439 */
440 function testsortName() {
441 $contactId = Contact::createIndividual();
442
443 $params = array(
444 'contact_id' => $contactId,
445 'membership_type_id' => $this->_membershipTypeID,
446 'join_date' => date('Ymd',strtotime('2006-01-21')),
447 'start_date' => date('Ymd',strtotime('2006-01-21')),
448 'end_date' => date('Ymd',strtotime('2006-12-21')),
449 'source' => 'Payment',
450 'is_override' => 1,
451 'status_id' => $this->_membershipStatusID,
452 );
453 $ids = array();
454
455 CRM_Member_BAO_Membership::create($params, $ids);
456
457 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
458 'contact_id', 'Database check for created membership.'
459 );
460
461 CRM_Member_BAO_Membership::sortName($membershipId);
462
463 $this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, 'sort_name', 'id', 'Doe, John',
464 'Database check for sort name record.'
465 );
466
467 $this->membershipDelete($membershipId);
468 Contact::delete($contactId);
469 }
470
471 /**
472 * Delete related memberships
473 *
474 */
475 function testdeleteRelatedMemberships() {
476 $contactId = Contact::createIndividual();
477
478 $params = array(
479 'contact_id' => $contactId,
480 'membership_type_id' => $this->_membershipTypeID,
481 'join_date' => date('Ymd',strtotime('2006-01-21')),
482 'start_date' => date('Ymd',strtotime('2006-01-21')),
483 'end_date' => date('Ymd',strtotime('2006-12-21')),
484 'source' => 'Payment',
485 'is_override' => 1,
486 'status_id' => $this->_membershipStatusID,
487 );
488 $ids = array();
489
490 CRM_Member_BAO_Membership::create($params, $ids);
491
492 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
493 'contact_id', 'Database check for created membership.'
494 );
495
496 CRM_Member_BAO_Membership::deleteRelatedMemberships($membershipId);
497
498 $this->membershipDelete($membershipId);
499 Contact::delete($contactId);
500 }
501
502 /**
503 * Renew membership with change in membership type
504 *
505 */
506 function testRenewMembership() {
507 $contactId = Contact::createIndividual();
508 $joinDate = $startDate = date("Ymd", strtotime(date("Ymd") . " -6 month"));
509 $endDate = date("Ymd", strtotime($joinDate . " +1 year -1 day"));
510 $params = array(
511 'contact_id' => $contactId,
512 'membership_type_id' => $this->_membershipTypeID,
513 'join_date' => $joinDate,
514 'start_date' => $startDate,
515 'end_date' => $endDate,
516 'source' => 'Payment',
517 'is_override' => 1,
518 'status_id' => $this->_membershipStatusID,
519 );
520 $ids = array();
521 $membership = CRM_Member_BAO_Membership::create($params, $ids);
522 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
523 'contact_id', 'Database check for created membership.'
524 );
525
526 $this->assertDBNotNull('CRM_Member_BAO_MembershipLog',
527 $membership->id,
528 'id',
529 'membership_id',
530 'Database checked on membershiplog record.'
531 );
532
533 // this is a test and we dont want qfKey generation / validation
534 // easier to suppress it, than change core code
535 $config = CRM_Core_Config::singleton();
536 $config->keyDisable = TRUE;
537
538 $membershipRenewal = new CRM_Core_Form;
539 $membershipRenewal->controller = new CRM_Core_Controller;
540 $isTestMembership = 0;
541 $MembershipRenew =
542 CRM_Member_BAO_Membership::renewMembershipFormWrapper(
543 $contactId,
544 $this->_membershipTypeID,
545 $isTestMembership,
546 $membershipRenewal,
547 NULL,
548 NULL
549 );
550 $endDate = date("Y-m-d", strtotime($membership->end_date . " +1 year"));
551
552 $this->assertDBNotNull('CRM_Member_BAO_MembershipLog',
553 $MembershipRenew->id,
554 'id',
555 'membership_id',
556 'Database checked on membershiplog record.'
557 );
558 $this->assertEquals($this->_membershipTypeID, $MembershipRenew->membership_type_id, 'Verify membership type is changed during renewal.');
559 $this->assertEquals($endDate, $MembershipRenew->end_date, 'Verify correct end date is calculated after membership renewal');
560
561 $this->membershipDelete($membershipId);
562 Contact::delete($contactId);
563 }
564
565 /**
566 * Renew stale membership
567 *
568 */
569 function testStaleMembership() {
570 $statusId = 3;
571 $contactId = Contact::createIndividual();
572 $joinDate = $startDate = date("Ymd", strtotime(date("Ymd") . " -1 year -15 days"));
573 $endDate = date("Ymd", strtotime($joinDate . " +1 year -1 day"));
574 $params = array(
575 'contact_id' => $contactId,
576 'membership_type_id' => $this->_membershipTypeID,
577 'join_date' => $joinDate,
578 'start_date' => $startDate,
579 'end_date' => $endDate,
580 'source' => 'Payment',
581 'status_id' => $statusId,
582 );
583
584 $ids = array();
585 $membership = CRM_Member_BAO_Membership::create($params, $ids);
586
587 $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id',
588 'contact_id', 'Database check for created membership.'
589 );
590
591 $this->assertEquals($membership->status_id, $statusId, 'Verify correct status id is calculated.');
592 $this->assertEquals($membership->membership_type_id, $this->_membershipTypeID,
593 'Verify correct membership type id.'
594 );
595
596 //verify all dates.
597 $dates = array(
598 'startDate' => 'start_date',
599 'joinDate' => 'join_date',
600 'endDate' => 'end_date',
601 );
602
603 foreach ($dates as $date => $dbDate) {
604 $this->assertEquals($membership->$dbDate, $$date,
605 "Verify correct {$date} is present."
606 );
607 }
608
609 $this->assertDBNotNull('CRM_Member_BAO_MembershipLog',
610 $membership->id,
611 'id',
612 'membership_id',
613 'Database checked on membershiplog record.'
614 );
615
616 // this is a test and we dont want qfKey generation / validation
617 // easier to suppress it, than change core code
618 $config = CRM_Core_Config::singleton();
619 $config->keyDisable = TRUE;
620
621 $membershipRenewal = new CRM_Core_Form;
622 $membershipRenewal->controller = new CRM_Core_Controller;
623 $MembershipRenew = CRM_Member_BAO_Membership::renewMembershipFormWrapper($contactId, $this->_membershipTypeID, $isTestMembership = 0, $membershipRenewal, NULL, NULL);
624
625 $this->assertDBNotNull('CRM_Member_BAO_MembershipLog',
626 $MembershipRenew->id,
627 'id',
628 'membership_id',
629 'Database checked on membershiplog record.'
630 );
631
632 $this->membershipDelete($membershipId);
633 Contact::delete($contactId);
634 }
635 }
636
637