Skip to content

Commit

Permalink
Merge pull request #14119 from eileenmcnaughton/recur_meta
Browse files Browse the repository at this point in the history
dev/core#830 [REF] Add unit tests on contribution recur trxn_id, contribution recur processor id
  • Loading branch information
seamuslee001 authored Apr 27, 2019
2 parents 87497b2 + 23faf53 commit 566f14d
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 16 deletions.
17 changes: 10 additions & 7 deletions CRM/Contribute/BAO/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,12 @@ class CRM_Contribute_BAO_Query extends CRM_Core_BAO_Query {
* Associative array of contribution fields
*/
public static function getFields($checkPermission = TRUE) {
if (!isset(\Civi::$statics[__CLASS__]) || !isset(\Civi::$statics[__CLASS__]['fields']) || !isset(\Civi::$statics[__CLASS__]['contribution'])) {
$fields = CRM_Contribute_BAO_Contribution::exportableFields($checkPermission);
if (!isset(\Civi::$statics[__CLASS__]) || !isset(\Civi::$statics[__CLASS__]['fields']) || !isset(\Civi::$statics[__CLASS__]['fields']['contribution'])) {
// Adding fields with some care as those without unique names could clobber others.
// Refer to CRM_Contribute_Form_SearchTest for existing tests ... and to add more!
$testedRecurFields = array_fill_keys(['contribution_recur_trxn_id', 'contribution_recur_processor_id', 'contribution_recur_payment_processor_id'], 1);
$recurFields = array_intersect_key(CRM_Contribute_DAO_ContributionRecur::fields(), $testedRecurFields);
$fields = array_merge($recurFields, CRM_Contribute_BAO_Contribution::exportableFields($checkPermission));
CRM_Contribute_BAO_Contribution::appendPseudoConstantsToFields($fields);
unset($fields['contribution_contact_id']);
\Civi::$statics[__CLASS__]['fields']['contribution'] = $fields;
Expand Down Expand Up @@ -382,13 +386,12 @@ public static function whereClauseSingle(&$values, &$query) {

case 'contribution_recur_processor_id':
case 'contribution_recur_trxn_id':
$fieldName = str_replace('contribution_recur_', '', $name);
$query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_contribution_recur.{$fieldName}",
$spec = $fields[$name];
$query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause($spec['where'],
$op, $value, "String"
);
$recurFields = CRM_Contribute_DAO_ContributionRecur::fields();
$query->_qill[$grouping][] = ts("Recurring Contribution %1 %2 '%3'", [1 => $recurFields[$fieldName]['title'], 2 => $op, 3 => $value]);
$query->_tables['civicrm_contribution_recur'] = $query->_whereTables['civicrm_contribution_recur'] = 1;
$query->_qill[$grouping][] = ts("Recurring Contribution %1 %2 '%3'", [1 => $fields[$name]['title'], 2 => $op, 3 => $value]);
$query->_tables[$spec['table_name']] = $query->_whereTables[$spec['table_name']] = 1;
return;

case 'contribution_recur_payment_made':
Expand Down
12 changes: 6 additions & 6 deletions CRM/Contribute/DAO/ContributionRecur.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
*
* Generated from xml/schema/CRM/Contribute/ContributionRecur.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
* (GenCodeChecksum:2ccc42487b9e4e5774fcfcde7db9c5ae)
* (GenCodeChecksum:9859d3b98d51f0f1df207253199186ab)
*/

/**
Expand Down Expand Up @@ -262,7 +262,7 @@ public static function getReferenceColumns() {
public static function &fields() {
if (!isset(Civi::$statics[__CLASS__]['fields'])) {
Civi::$statics[__CLASS__]['fields'] = [
'id' => [
'contribution_recur_id' => [
'name' => 'id',
'type' => CRM_Utils_Type::T_INT,
'title' => ts('Recurring Contribution ID'),
Expand Down Expand Up @@ -474,7 +474,7 @@ public static function &fields() {
'formatType' => 'activityDate',
],
],
'processor_id' => [
'contribution_recur_processor_id' => [
'name' => 'processor_id',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Processor ID'),
Expand Down Expand Up @@ -502,7 +502,7 @@ public static function &fields() {
'localizable' => 0,
'FKClassName' => 'CRM_Financial_DAO_PaymentToken',
],
'trxn_id' => [
'contribution_recur_trxn_id' => [
'name' => 'trxn_id',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Transaction ID'),
Expand Down Expand Up @@ -534,7 +534,7 @@ public static function &fields() {
'type' => 'Text',
],
],
'contribution_status_id' => [
'contribution_recur_contribution_status_id' => [
'name' => 'contribution_status_id',
'type' => CRM_Utils_Type::T_INT,
'title' => ts('Status'),
Expand Down Expand Up @@ -647,7 +647,7 @@ public static function &fields() {
'type' => 'CheckBox',
],
],
'payment_processor_id' => [
'contribution_recur_payment_processor_id' => [
'name' => 'payment_processor_id',
'type' => CRM_Utils_Type::T_INT,
'title' => ts('Payment Processor'),
Expand Down
20 changes: 17 additions & 3 deletions tests/phpunit/CRM/Contribute/Form/SearchTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ public function testContributionSearchWithContactID() {
*
* @dataProvider getSearchData
*/
public function testContributionRecurStatusFilter($formValues, $expectedCount, $expectedContact, $expectedQill) {
public function testContributionRecurSearchFilters($formValues, $expectedCount, $expectedContact, $expectedQill) {
$this->setUpRecurringContributions();

$query = new CRM_Contact_BAO_Query(CRM_Contact_BAO_Query::convertFormValues($formValues));
Expand Down Expand Up @@ -553,12 +553,14 @@ protected function setUpRecurringContributions() {
'sequential' => 1,
'contact_id' => $this->ids['Contact']['contactID2'],
'frequency_interval' => 1,
'frequency_unit' => "month",
'frequency_unit' => 'month',
'amount' => 22,
'currency' => "CAD",
'payment_instrument_id' => 1,
'contribution_status_id' => 1,
'financial_type_id' => "Donation",
'financial_type_id' => 'Donation',
'trxn_id' => 'a transaction',
'processor_id' => 'a processor',
]);
$Contribution2 = $this->callAPISuccess('Contribution', 'create', [
'financial_type_id' => 'Donation',
Expand Down Expand Up @@ -607,6 +609,18 @@ public function getSearchData() {
'expected_contact' => [],
'expected_qill' => "Recurring Contribution Status = 'Cancelled'",
],
'trxn_id_search' => [
'form_value' => ['contribution_recur_trxn_id' => 'a transaction'],
'expected_count' => 1,
'expected_contact' => ['Mr. Terrence Smith II'],
'expected_qill' => "Recurring Contribution Transaction ID = 'a transaction'",
],
'processor_id_search' => [
'form_value' => ['contribution_recur_processor_id' => 'a processor'],
'expected_count' => 1,
'expected_contact' => ['Mr. Terrence Smith II'],
'expected_qill' => "Recurring Contribution Processor ID = 'a processor'",
],
];
return $useCases;
}
Expand Down
5 changes: 5 additions & 0 deletions xml/schema/Contribute/ContributionRecur.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<log>true</log>
<field>
<name>id</name>
<uniqueName>contribution_recur_id</uniqueName>
<title>Recurring Contribution ID</title>
<type>int unsigned</type>
<required>true</required>
Expand Down Expand Up @@ -172,6 +173,7 @@
</field>
<field>
<name>processor_id</name>
<uniqueName>contribution_recur_processor_id</uniqueName>
<title>Processor ID</title>
<type>varchar</type>
<length>255</length>
Expand All @@ -197,6 +199,7 @@
</foreignKey>
<field>
<name>trxn_id</name>
<uniqueName>contribution_recur_trxn_id</uniqueName>
<title>Transaction ID</title>
<type>varchar</type>
<length>255</length>
Expand Down Expand Up @@ -231,6 +234,7 @@
</index>
<field>
<name>contribution_status_id</name>
<uniqueName>contribution_recur_contribution_status_id</uniqueName>
<title>Status</title>
<type>int unsigned</type>
<default>1</default>
Expand Down Expand Up @@ -325,6 +329,7 @@
<field>
<name>payment_processor_id</name>
<title>Payment Processor</title>
<uniqueName>contribution_recur_payment_processor_id</uniqueName>
<type>int unsigned</type>
<comment>Foreign key to civicrm_payment_processor.id</comment>
<add>3.3</add>
Expand Down

0 comments on commit 566f14d

Please sign in to comment.