From 16f3bd02e14340daabf5b1c4893737c1bf51a048 Mon Sep 17 00:00:00 2001 From: eileen Date: Wed, 16 Nov 2016 20:32:03 +1300 Subject: [PATCH] CRM-19213 another instance of mis-set payment_instrument_id --- CRM/Contribute/Form/Contribution.php | 6 +--- api/v3/Generic.php | 7 ++-- .../CRM/Contribute/Form/ContributionTest.php | 13 ++++---- .../CRM/Member/Form/MembershipRenewalTest.php | 32 +++++++++++++------ .../CRM/Member/Form/MembershipTest.php | 10 +++++- tests/phpunit/api/v3/ContributionTest.php | 6 +++- 6 files changed, 50 insertions(+), 24 deletions(-) diff --git a/CRM/Contribute/Form/Contribution.php b/CRM/Contribute/Form/Contribution.php index 960a8adaef..e90b054fef 100644 --- a/CRM/Contribute/Form/Contribution.php +++ b/CRM/Contribute/Form/Contribution.php @@ -1244,11 +1244,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP 'source' => CRM_Utils_Array::value('source', $paymentParams, CRM_Utils_Array::value('description', $paymentParams)), 'thankyou_date' => CRM_Utils_Array::value('thankyou_date', $this->_params), ); - - if (empty($paymentParams['is_pay_later'])) { - // @todo look up payment_instrument_id on payment processor table. - $contributionParams['payment_instrument_id'] = 1; - } + $contributionParams['payment_instrument_id'] = $this->_paymentProcessor['payment_instrument_id']; $contribution = CRM_Contribute_Form_Contribution_Confirm::processFormContribution($this, $this->_params, diff --git a/api/v3/Generic.php b/api/v3/Generic.php index 60a5aedb4f..9f2a76c02c 100644 --- a/api/v3/Generic.php +++ b/api/v3/Generic.php @@ -164,8 +164,11 @@ function civicrm_api3_generic_getfields($apiRequest, $unique = TRUE) { $metadata = array(); } - // Normalize this for the sake of spec funcions - $apiRequest['params']['options']['get_options'] = $optionsToResolve; + // Hack for product api to pass tests. + if (!is_string($apiRequest['params']['options'])) { + // Normalize this for the sake of spec funcions + $apiRequest['params']['options']['get_options'] = $optionsToResolve; + } // find any supplemental information $hypApiRequest = array('entity' => $apiRequest['entity'], 'action' => $action, 'version' => $apiRequest['version']); diff --git a/tests/phpunit/CRM/Contribute/Form/ContributionTest.php b/tests/phpunit/CRM/Contribute/Form/ContributionTest.php index 0aa62f5b54..1b9733d5e7 100644 --- a/tests/phpunit/CRM/Contribute/Form/ContributionTest.php +++ b/tests/phpunit/CRM/Contribute/Form/ContributionTest.php @@ -185,12 +185,10 @@ class CRM_Contribute_Form_ContributionTest extends CiviUnitTestCase { * Test the submit function on the contribution page. */ public function testSubmitCreditCardPayPal() { - $this->markTestIncomplete('Paypal is creating a complete contribution but we are testing pending - we are unsure at this point if this is correct behaviour or not'); - return; $form = new CRM_Contribute_Form_Contribution(); $paymentProcessorID = $this->paymentProcessorCreate(array('is_test' => 0)); $form->_mode = 'Live'; + $error = FALSE; try { $form->testSubmit(array( 'total_amount' => 50, @@ -198,7 +196,6 @@ class CRM_Contribute_Form_ContributionTest extends CiviUnitTestCase { 'receive_date' => '04/21/2015', 'receive_date_time' => '11:27PM', 'contact_id' => $this->_individualId, - 'payment_instrument_id' => array_search('Credit Card', $this->paymentInstruments), 'contribution_status_id' => 1, 'credit_card_number' => 4444333322221111, 'cvv2' => 123, @@ -229,12 +226,16 @@ class CRM_Contribute_Form_ContributionTest extends CiviUnitTestCase { ), CRM_Core_Action::ADD); } catch (Civi\Payment\Exception\PaymentProcessorException $e) { - $this->assertEquals('Transaction cannot be processed. Please use a different payment card.', - $e->getMessage()); + $error = TRUE; } + $this->assertTrue($error); $this->callAPISuccessGetCount('Contribution', array( 'contact_id' => $this->_individualId, 'contribution_status_id' => 'Pending', + 'payment_instrument_id' => $this->callAPISuccessGetValue('PaymentProcessor', array( + 'return' => 'payment_instrument_id', + 'id' => $paymentProcessorID, + )), ), 1); $contact = $this->callAPISuccessGetSingle('Contact', array('id' => $this->_individualId)); $this->assertTrue(empty($contact['source'])); diff --git a/tests/phpunit/CRM/Member/Form/MembershipRenewalTest.php b/tests/phpunit/CRM/Member/Form/MembershipRenewalTest.php index 269f4c1c16..45e08918a8 100644 --- a/tests/phpunit/CRM/Member/Form/MembershipRenewalTest.php +++ b/tests/phpunit/CRM/Member/Form/MembershipRenewalTest.php @@ -197,7 +197,15 @@ class CRM_Member_Form_MembershipRenewalTest extends CiviUnitTestCase { 'entity_table' => 'civicrm_membership', 'contribution_id' => $contribution['id'], ), 1); - $this->_checkFinancialRecords(array('id' => $contribution['id'], 'total_amount' => 50, 'financial_account_id' => 2), 'online'); + $this->_checkFinancialRecords(array( + 'id' => $contribution['id'], + 'total_amount' => 50, + 'financial_account_id' => 2, + 'payment_instrument_id' => $this->callAPISuccessGetValue('PaymentProcessor', array( + 'id' => $this->_paymentProcessorID, + 'return' => 'payment_instrument_id', + )), + ), 'online'); } /** @@ -264,16 +272,20 @@ class CRM_Member_Form_MembershipRenewalTest extends CiviUnitTestCase { $this->assertNotEmpty($contributionRecur['invoice_id']); $this->assertEquals(CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Pending'), $contributionRecur['contribution_status_id']); - $this->assertEquals(CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'payment_instrument_id', - 'Credit Card'), $contributionRecur['payment_instrument_id']); + $this->assertEquals($this->callAPISuccessGetValue('PaymentProcessor', array( + 'id' => $this->_paymentProcessorID, + 'return' => 'payment_instrument_id', + )), $contributionRecur['payment_instrument_id']); $contribution = $this->callAPISuccess('Contribution', 'getsingle', array( 'contact_id' => $this->_individualId, 'is_test' => TRUE, )); - $this->assertEquals(CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'payment_instrument_id', - 'Credit Card'), $contribution['payment_instrument_id']); + $this->assertEquals($this->callAPISuccessGetValue('PaymentProcessor', array( + 'id' => $this->_paymentProcessorID, + 'return' => 'payment_instrument_id', + )), $contribution['payment_instrument_id']); $this->assertEquals($contributionRecur['id'], $contribution['contribution_recur_id']); $this->callAPISuccessGetCount('LineItem', array( @@ -328,15 +340,17 @@ class CRM_Member_Form_MembershipRenewalTest extends CiviUnitTestCase { 'In Progress'), $contributionRecur['contribution_status_id']); $this->assertNotEmpty($contributionRecur['next_sched_contribution_date']); */ - $this->assertEquals(CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'payment_instrument_id', - 'Credit Card'), $contributionRecur['payment_instrument_id']); + $paymentInstrumentID = $this->callAPISuccessGetValue('PaymentProcessor', array( + 'id' => $this->_paymentProcessorID, + 'return' => 'payment_instrument_id', + )); + $this->assertEquals($paymentInstrumentID, $contributionRecur['payment_instrument_id']); $contribution = $this->callAPISuccess('Contribution', 'getsingle', array( 'contact_id' => $this->_individualId, 'is_test' => TRUE, )); - $this->assertEquals(CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'payment_instrument_id', - 'Credit Card'), $contribution['payment_instrument_id']); + $this->assertEquals($paymentInstrumentID, $contribution['payment_instrument_id']); $this->assertEquals('kettles boil water', $contribution['trxn_id']); $this->assertEquals(.29, $contribution['fee_amount']); diff --git a/tests/phpunit/CRM/Member/Form/MembershipTest.php b/tests/phpunit/CRM/Member/Form/MembershipTest.php index 83e456ce09..6565b8793c 100644 --- a/tests/phpunit/CRM/Member/Form/MembershipTest.php +++ b/tests/phpunit/CRM/Member/Form/MembershipTest.php @@ -483,7 +483,15 @@ class CRM_Member_Form_MembershipTest extends CiviUnitTestCase { 'contribution_id' => $contribution['id'], ), 1); - $this->_checkFinancialRecords(array('id' => $contribution['id'], 'total_amount' => 50, 'financial_account_id' => 2), 'online'); + $this->_checkFinancialRecords(array( + 'id' => $contribution['id'], + 'total_amount' => 50, + 'financial_account_id' => 2, + 'payment_instrument_id' => $this->callAPISuccessGetValue('PaymentProcessor', array( + 'id' => $this->_paymentProcessorID, + 'return' => 'payment_instrument_id', + )), + ), 'online'); $this->mut->checkMailLog(array( '50', 'Receipt text', diff --git a/tests/phpunit/api/v3/ContributionTest.php b/tests/phpunit/api/v3/ContributionTest.php index 7403a288ed..ede01caac7 100644 --- a/tests/phpunit/api/v3/ContributionTest.php +++ b/tests/phpunit/api/v3/ContributionTest.php @@ -844,7 +844,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase { 'total_amount' => 100.00, 'financial_type_id' => 1, 'contribution_page_id' => $contributionPage['id'], - 'payment_processor' => 1, + 'payment_processor' => $this->paymentProcessorID, 'trxn_id' => 12345, 'invoice_id' => 67890, 'source' => 'SSF', @@ -860,6 +860,10 @@ class api_v3_ContributionTest extends CiviUnitTestCase { $this->assertEquals($contribution['values'][$contribution['id']]['invoice_id'], 67890); $this->assertEquals($contribution['values'][$contribution['id']]['source'], 'SSF'); $this->assertEquals($contribution['values'][$contribution['id']]['contribution_status_id'], 1); + $contribution['payment_instrument_id'] = $this->callAPISuccessGetValue('PaymentProcessor', array( + 'id' => $this->paymentProcessorID, + 'return' => 'payment_instrument_id', + )); $this->_checkFinancialRecords($contribution, 'online'); } -- 2.25.1