3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
13 * Test Activity report outcome
17 class CRM_Report_Form_Member_DetailTest
extends CiviReportTestCase
{
19 public function setUp() {
22 $this->_orgContactID
= $this->organizationCreate();
23 $this->_financialTypeId
= 1;
24 $this->_membershipStatusID
= $this->membershipStatusCreate('test status');
25 $this->_membershipTypeID
= $this->membershipTypeCreate(['name' => 'Test Member']);
28 public function testAutoRenewDisplay() {
30 $indContactID1 = $this->individualCreate();
31 $indContactID2 = $this->individualCreate();
32 $recurStatus = array_search(
34 CRM_Contribute_PseudoConstant
::contributionStatus(NULL, 'name')
37 'contact_id' => $indContactID1,
40 'frequency_unit' => 'day',
41 'frequency_interval' => 30,
42 'create_date' => '2019-06-22',
43 'start_date' => '2019-06-22',
44 'contribution_status_id' => $recurStatus,
46 $recur1 = civicrm_api3('ContributionRecur', 'create', $recurParams);
48 'membership_type_id' => $this->_membershipTypeID
,
49 'contact_id' => $indContactID1,
50 'status_id' => $this->_membershipStatusID
,
51 'contribution_recur_id' => $recur1['id'],
52 'join_date' => '2019-06-22',
53 'start_date' => '2019-06-22',
54 'end_date' => '2019-07-22',
55 'source' => 'Payment',
57 $mem1 = civicrm_api3('Membership', 'create', $memParams);
58 $recurParams['end_date'] = '2019-06-23';
59 $recurParams['contact_id'] = $indContactID1;
60 $recur2 = civicrm_api3('ContributionRecur', 'create', $recurParams);
61 $memParams['contact_id'] = $indContactID2;
62 $memParams['contribution_recur_id'] = $recur2['id'];
63 $mem2 = civicrm_api3('Membership', 'create', $memParams);
66 'fields' => ['autorenew_status_id'],
69 'tid_value' => $this->_membershipTypeID
,
70 'autorenew_status_id_op' => 'in',
71 'autorenew_status_id_value' => $recurStatus,
74 $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input);
75 $results = $obj->getResultSet();
76 $this->assertCount(2, $results);
77 foreach ($results as $result) {
78 if ($result['civicrm_contact_id'] == $indContactID1) {
79 $this->assertNotContains('(ended)', $result['civicrm_contribution_recur_autorenew_status_id']);
81 if ($result['civicrm_contact_id'] == $indContactID2) {
82 $this->assertContains('(ended)', $result['civicrm_contribution_recur_autorenew_status_id']);
86 $input['filters']['autorenew_status_id_op'] = 'nll';
87 $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input);
88 $results = $obj->getResultSet();
89 $this->assertCount(0, $results);
91 $input['filters']['autorenew_status_id_op'] = 'in';
92 $input['filters']['autorenew_status_id_value'] = 0;
93 $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input);
94 $results = $obj->getResultSet();
95 $this->assertCount(0, $results);
97 $input['filters']['autorenew_status_id_op'] = 'in';
98 $input['filters']['autorenew_status_id_value'] = 1000;
99 $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input);
100 $results = $obj->getResultSet();
101 $this->assertCount(0, $results);
103 $input['filters']['autorenew_status_id_op'] = 'notin';
104 $input['filters']['autorenew_status_id_value'] = 1000;
105 $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input);
106 $results = $obj->getResultSet();
107 $this->assertCount(2, $results);