Merge pull request #17849 from mattwire/statichandlePaymentNotification
[civicrm-core.git] / tests / phpunit / CRM / Report / Form / Member / DetailTest.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
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 +--------------------------------------------------------------------+
10 */
11
12 /**
13 * Test Activity report outcome
14 *
15 * @package CiviCRM
16 */
17 class CRM_Report_Form_Member_DetailTest extends CiviReportTestCase {
18
19 public function setUp() {
20 parent::setUp();
21
22 $this->_orgContactID = $this->organizationCreate();
23 $this->_financialTypeId = 1;
24 $this->_membershipStatusID = $this->membershipStatusCreate('test status');
25 $this->_membershipTypeID = $this->membershipTypeCreate(['name' => 'Test Member']);
26 }
27
28 public function testAutoRenewDisplay() {
29
30 $indContactID1 = $this->individualCreate();
31 $indContactID2 = $this->individualCreate();
32 $recurStatus = array_search(
33 'In Progress',
34 CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name')
35 );
36 $recurParams = [
37 'contact_id' => $indContactID1,
38 'amount' => '5.00',
39 'currency' => 'USD',
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,
45 ];
46 $recur1 = civicrm_api3('ContributionRecur', 'create', $recurParams);
47 $memParams = [
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',
56 ];
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);
64
65 $input = [
66 'fields' => ['autorenew_status_id'],
67 'filters' => [
68 'tid_op' => 'in',
69 'tid_value' => $this->_membershipTypeID,
70 'autorenew_status_id_op' => 'in',
71 'autorenew_status_id_value' => $recurStatus,
72 ],
73 ];
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']);
80 }
81 if ($result['civicrm_contact_id'] == $indContactID2) {
82 $this->assertContains('(ended)', $result['civicrm_contribution_recur_autorenew_status_id']);
83 }
84 }
85
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);
90
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);
96
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);
102
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);
108 }
109
110 }