From 9c01d96172876c725b726c58279374c08fd17324 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Sun, 12 Feb 2017 12:08:39 +1100 Subject: [PATCH] CRM-20007 Add test to prove that repeatTransaction does not use the Payment Procesors Payment Instrument when creating contributions --- tests/phpunit/api/v3/ContributionTest.php | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/phpunit/api/v3/ContributionTest.php b/tests/phpunit/api/v3/ContributionTest.php index 266c1f299a..c3dc905a95 100644 --- a/tests/phpunit/api/v3/ContributionTest.php +++ b/tests/phpunit/api/v3/ContributionTest.php @@ -3323,4 +3323,33 @@ class api_v3_ContributionTest extends CiviUnitTestCase { return $contribution; } + /** + * Test repeat contribution uses the Payment Processor' payment_instrument setting. + */ + public function testRepeatTransactionWithNonCreditCardDefault() { + $contributionRecur = $this->callAPISuccess('contribution_recur', 'create', array( + 'contact_id' => $this->_individualId, + 'installments' => '12', + 'frequency_interval' => '1', + 'amount' => '100', + 'contribution_status_id' => 1, + 'start_date' => '2012-01-01 00:00:00', + 'currency' => 'USD', + 'frequency_unit' => 'month', + 'payment_processor_id' => $this->paymentProcessorID, + )); + $contribution1 = $this->callAPISuccess('contribution', 'create', array_merge( + $this->_params, + array('contribution_recur_id' => $contributionRecur['id'])) + ); + $paymentInstruments = CRM_Contribute_PseudoConstant::paymentInstrument('name'); + $contribution2 = $this->callAPISuccess('contribution', 'repeattransaction', array( + 'contribution_status_id' => 'Completed', + 'trxn_id' => uniqid(), + 'original_contribution_id' => $contribution1, + )); + $this->assertEquals(array_search('Debit Card', $paymentInstruments), $contribution2['values'][$contribution2['id']]['payment_instrument_id']); + $this->quickCleanUpFinancialEntities(); + } + } -- 2.25.1