+ /**
+ * Set up recurring contributions for the test.
+ */
+ protected function setUpRecurringContributions() {
+ // "In Progress" recurring contribution for contactID1
+ $ContributionRecur1 = $this->callAPISuccess('ContributionRecur', 'create', [
+ 'sequential' => 1,
+ 'contact_id' => $this->ids['Contact']['contactID1'],
+ 'frequency_interval' => 1,
+ 'frequency_unit' => "month",
+ 'amount' => 11,
+ 'currency' => "CAD",
+ 'payment_instrument_id' => 1,
+ 'contribution_status_id' => 5,
+ 'financial_type_id' => "Donation",
+ ]);
+ $Contribution1 = $this->callAPISuccess('Contribution', 'create', [
+ 'financial_type_id' => 'Donation',
+ 'total_amount' => 11,
+ 'receive_date' => date('Ymd'),
+ 'receive_date_time' => NULL,
+ 'payment_instrument_id' => 1,
+ 'contribution_status_id' => 1,
+ 'contact_id' => $this->ids['Contact']['contactID1'],
+ 'contribution_recur_id' => $ContributionRecur1['id'],
+ ]);
+ $params = [
+ 'to_financial_account_id' => 1,
+ 'status_id' => 1,
+ 'contribution_id' => $Contribution1['id'],
+ 'payment_instrument_id' => 1,
+ 'card_type_id' => 1,
+ 'total_amount' => 11,
+ ];
+ CRM_Core_BAO_FinancialTrxn::create($params);
+ // "Completed" recurring contribution for contactID2
+ $ContributionRecur2 = $this->callAPISuccess('ContributionRecur', 'create', [
+ 'sequential' => 1,
+ 'contact_id' => $this->ids['Contact']['contactID2'],
+ 'frequency_interval' => 1,
+ 'frequency_unit' => "month",
+ 'amount' => 22,
+ 'currency' => "CAD",
+ 'payment_instrument_id' => 1,
+ 'contribution_status_id' => 1,
+ 'financial_type_id' => "Donation",
+ ]);
+ $Contribution2 = $this->callAPISuccess('Contribution', 'create', [
+ 'financial_type_id' => 'Donation',
+ 'total_amount' => 22,
+ 'receive_date' => date('Ymd'),
+ 'receive_date_time' => NULL,
+ 'payment_instrument' => 1,
+ 'contribution_status_id' => 1,
+ 'contact_id' => $this->ids['Contact']['contactID2'],
+ 'contribution_recur_id' => $ContributionRecur2['id'],
+ ]);
+ $params = [
+ 'to_financial_account_id' => 1,
+ 'status_id' => 1,
+ 'contribution_id' => $Contribution2['id'],
+ 'payment_instrument_id' => 1,
+ 'card_type_id' => 1,
+ 'total_amount' => 22,
+ ];
+ CRM_Core_BAO_FinancialTrxn::create($params);
+ }
+
+ /**
+ * @return array
+ */
+ public function getSearchData() {
+ $useCases = [
+ // Case 1: Search for ONLY those recurring contributions with status "In Progress"
+ 'in_progress_search' => [
+ 'form_value' => ['contribution_recur_contribution_status_id' => 5],
+ 'expected_count' => 1,
+ 'expected_contact' => ['Mr. Joe Miller II'],
+ 'expected_qill' => "Recurring Contribution Status = 'In Progress'",
+ ],
+ // Case 2: Search for ONLY those recurring contributions with status "Completed"
+ [
+ 'form_value' => ['contribution_recur_contribution_status_id' => 1],
+ 'expected_count' => 1,
+ 'expected_contact' => ['Mr. Terrence Smith II'],
+ 'expected_qill' => "Recurring Contribution Status = 'Completed'",
+ ],
+ // Case 3: Search for ONLY those recurring contributions with status "Cancelled"
+ [
+ 'form_value' => ['contribution_recur_contribution_status_id' => 3],
+ 'expected_count' => 0,
+ 'expected_contact' => [],
+ 'expected_qill' => "Recurring Contribution Status = 'Cancelled'",
+ ],
+ ];
+ return $useCases;
+ }
+