Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev/core#830 [REF] Add unit tests on contribution recur trxn_id, contribution recur processor id #14119

Merged
merged 1 commit into from
Apr 27, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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