From a23505741de682d3d1072b4a6b6b34f55948f6e7 Mon Sep 17 00:00:00 2001 From: Andrew Hunt Date: Tue, 23 Jun 2020 17:26:16 -0400 Subject: [PATCH] Member detail report: test coverage for autorenew status --- .../CRM/Report/Form/Member/DetailTest.php | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 tests/phpunit/CRM/Report/Form/Member/DetailTest.php diff --git a/tests/phpunit/CRM/Report/Form/Member/DetailTest.php b/tests/phpunit/CRM/Report/Form/Member/DetailTest.php new file mode 100644 index 0000000000..92c851f9a8 --- /dev/null +++ b/tests/phpunit/CRM/Report/Form/Member/DetailTest.php @@ -0,0 +1,110 @@ +_orgContactID = $this->organizationCreate(); + $this->_financialTypeId = 1; + $this->_membershipStatusID = $this->membershipStatusCreate('test status'); + $this->_membershipTypeID = $this->membershipTypeCreate(['name' => 'Test Member']); + } + + public function testAutoRenewDisplay() { + + $indContactID1 = $this->individualCreate(); + $indContactID2 = $this->individualCreate(); + $recurStatus = array_search( + 'In Progress', + CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name') + ); + $recurParams = [ + 'contact_id' => $indContactID1, + 'amount' => '5.00', + 'currency' => 'USD', + 'frequency_unit' => 'day', + 'frequency_interval' => 30, + 'create_date' => '2019-06-22', + 'start_date' => '2019-06-22', + 'contribution_status_id' => $recurStatus, + ]; + $recur1 = civicrm_api3('ContributionRecur', 'create', $recurParams); + $memParams = [ + 'membership_type_id' => $this->_membershipTypeID, + 'contact_id' => $indContactID1, + 'status_id' => $this->_membershipStatusID, + 'contribution_recur_id' => $recur1['id'], + 'join_date' => '2019-06-22', + 'start_date' => '2019-06-22', + 'end_date' => '2019-07-22', + 'source' => 'Payment', + ]; + $mem1 = civicrm_api3('Membership', 'create', $memParams); + $recurParams['end_date'] = '2019-06-23'; + $recurParams['contact_id'] = $indContactID1; + $recur2 = civicrm_api3('ContributionRecur', 'create', $recurParams); + $memParams['contact_id'] = $indContactID2; + $memParams['contribution_recur_id'] = $recur2['id']; + $mem2 = civicrm_api3('Membership', 'create', $memParams); + + $input = [ + 'fields' => ['autorenew_status_id'], + 'filters' => [ + 'tid_op' => 'in', + 'tid_value' => $this->_membershipTypeID, + 'autorenew_status_id_op' => 'in', + 'autorenew_status_id_value' => $recurStatus, + ], + ]; + $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input); + $results = $obj->getResultSet(); + $this->assertCount(2, $results); + foreach ($results as $result) { + if ($result['civicrm_contact_id'] == $indContactID1) { + $this->assertNotContains('(ended)', $result['civicrm_contribution_recur_autorenew_status_id']); + } + if ($result['civicrm_contact_id'] == $indContactID2) { + $this->assertContains('(ended)', $result['civicrm_contribution_recur_autorenew_status_id']); + } + } + + $input['filters']['autorenew_status_id_op'] = 'nll'; + $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input); + $results = $obj->getResultSet(); + $this->assertCount(0, $results); + + $input['filters']['autorenew_status_id_op'] = 'in'; + $input['filters']['autorenew_status_id_value'] = 0; + $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input); + $results = $obj->getResultSet(); + $this->assertCount(0, $results); + + $input['filters']['autorenew_status_id_op'] = 'in'; + $input['filters']['autorenew_status_id_value'] = 1000; + $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input); + $results = $obj->getResultSet(); + $this->assertCount(0, $results); + + $input['filters']['autorenew_status_id_op'] = 'notin'; + $input['filters']['autorenew_status_id_value'] = 1000; + $obj = $this->getReportObject('CRM_Report_Form_Member_Detail', $input); + $results = $obj->getResultSet(); + $this->assertCount(2, $results); + } + +} -- 2.25.1