Test fixes to support moving dummy payment processor to doPayment
authorMatthew Wire <mjw@mjwconsult.co.uk>
Sun, 11 Apr 2021 20:38:41 +0000 (21:38 +0100)
committerMatthew Wire <mjw@mjwconsult.co.uk>
Mon, 12 Apr 2021 21:53:27 +0000 (22:53 +0100)
CRM/Core/Payment/Dummy.php
tests/phpunit/CRM/Contribute/Form/ContributionTest.php
tests/phpunit/api/v3/ContributionPageTest.php

index 5e5947c9f8859b8c344c691b7626a83043bce56d..31e630291bc33f002df9901201b59b7143e40dcf 100644 (file)
@@ -98,7 +98,11 @@ class CRM_Core_Payment_Dummy extends CRM_Core_Payment {
 
     if (!empty($this->_doDirectPaymentResult)) {
       $result = $this->_doDirectPaymentResult;
-      if (CRM_Utils_Array::value('payment_status_id', $result) === 'failed') {
+      if (empty($result['payment_status_id'])) {
+        $result['payment_status_id'] = array_search('Pending', $statuses);
+        $result['payment_status'] = 'Pending';
+      }
+      if ($result['payment_status_id'] === 'failed') {
         throw new PaymentProcessorException($result['message'] ?? 'failed');
       }
       $result['trxn_id'] = array_shift($this->_doDirectPaymentResult['trxn_id']);
index 5c98e35c2adcee7d4864677ed2d3cb7f2d99580e..9ea988d9201d8baef555a6a72ee2643efb4a8351 100644 (file)
@@ -374,7 +374,7 @@ class CRM_Contribute_Form_ContributionTest extends CiviUnitTestCase {
    */
   public function testSubmitCreditCardFee() {
     $form = new CRM_Contribute_Form_Contribution();
-    $this->paymentProcessor->setDoDirectPaymentResult(['is_error' => 0, 'trxn_id' => 'tx', 'fee_amount' => .08]);
+    $this->paymentProcessor->setDoDirectPaymentResult(['payment_status_id' => 1, 'is_error' => 0, 'trxn_id' => 'tx', 'fee_amount' => .08]);
     $form->_mode = 'Live';
     $form->testSubmit([
       'total_amount' => 50,
index e7f14a6d81b4f5907c49763e57fd83b7dd48d01d..68a83aa856ba2b7eb78c42cfe75fe9ac70a23893 100644 (file)
@@ -725,7 +725,7 @@ class api_v3_ContributionPageTest extends CiviUnitTestCase {
     $mut = new CiviMailUtils($this, TRUE);
     $this->setUpMembershipContributionPage(TRUE);
     $processor = Civi\Payment\System::singleton()->getById($this->_paymentProcessor['id']);
-    $processor->setDoDirectPaymentResult(['fee_amount' => .72]);
+    $processor->setDoDirectPaymentResult(['payment_status_id' => 1, 'fee_amount' => .72]);
     $submitParams = [
       'price_' . $this->_ids['price_field'][0] => reset($this->_ids['price_field_value']),
       'id' => (int) $this->_ids['contribution_page'],