From ca6b909acf5c2524e26aecd6bc46da85d67194c8 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Fri, 7 Jul 2023 10:21:48 +1000 Subject: [PATCH] [REF] Ensure that test payment processors are captured by the test and in the upgrade script and fix upgrade scripts as per dave's comments --- CRM/Upgrade/Incremental/php/FiveSixtyFour.php | 6 +++--- .../CRM/Upgrade/Incremental/php/FiveSixtyFourTest.php | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CRM/Upgrade/Incremental/php/FiveSixtyFour.php b/CRM/Upgrade/Incremental/php/FiveSixtyFour.php index 1a5a501284..93bbe50474 100644 --- a/CRM/Upgrade/Incremental/php/FiveSixtyFour.php +++ b/CRM/Upgrade/Incremental/php/FiveSixtyFour.php @@ -65,10 +65,10 @@ CHANGE `cancel_URL` `cancel_url` varchar(255) DEFAULT NULL COMMENT 'Redirect to * Fix any double json encoding in Payment Processor accepted_credit_cards field */ public static function fixDoubleEscapingPaymentProcessorCreditCards() { - $paymentProcessors = PaymentProcessor::get(FALSE)->execute(); + $paymentProcessors = PaymentProcessor::get(FALSE)->addWhere('is_test', 'IS NOT NULL')->addWhere('domain_id', 'IS NOT NULL')->execute(); foreach ($paymentProcessors as $paymentProcessor) { - if (is_numeric(array_keys($paymentProcessor['accepted_credit_cards'])[0])) { - PaymentProcessor::update(FALSE)->addValue('accepted_credit_cards', json_decode($paymentProcessor['accepted_credit_cards'], TRUE))->addWhere('id', '=', $paymentProcessor['id'])->execute(); + if (is_array($paymentProcessor['accepted_credit_cards']) && is_numeric(array_keys($paymentProcessor['accepted_credit_cards'])[0])) { + PaymentProcessor::update(FALSE)->addValue('accepted_credit_cards', json_decode($paymentProcessor['accepted_credit_cards'][0], TRUE))->addWhere('id', '=', $paymentProcessor['id'])->execute(); } } return TRUE; diff --git a/tests/phpunit/CRM/Upgrade/Incremental/php/FiveSixtyFourTest.php b/tests/phpunit/CRM/Upgrade/Incremental/php/FiveSixtyFourTest.php index 2868137c30..26b6a46cc9 100644 --- a/tests/phpunit/CRM/Upgrade/Incremental/php/FiveSixtyFourTest.php +++ b/tests/phpunit/CRM/Upgrade/Incremental/php/FiveSixtyFourTest.php @@ -22,10 +22,14 @@ class CRM_Upgrade_Incremental_php_FiveSixtyFourTest extends CiviUnitTestCase { ]; PaymentProcessor::update()->addValue('accepted_credit_cards', $creditCards)->addWhere('id', '=', $this->ids['PaymentProcessor']['anet'])->execute(); PaymentProcessor::update()->addValue('accepted_credit_cards', json_encode($creditCards))->addWhere('id', '=', $this->ids['PaymentProcessor']['authorize_net'])->execute(); + $dummyPaymentProcessor = $this->processorCreate(); + PaymentProcessor::update()->addValue('accepted_credit_cards', NULL)->addWhere('id', '=', $dummyPaymentProcessor)->execute(); CRM_Upgrade_Incremental_php_FiveSixtyFour::fixDoubleEscapingPaymentProcessorCreditCards(); - $paymentProcessors = PaymentProcessor::get()->execute(); + $paymentProcessors = PaymentProcessor::get()->addWhere('id', 'IN', [$this->ids['PaymentProcessor']['anet'], $this->ids['PaymentProcessor']['authorize_net'], $dummyPaymentProcessor])->execute(); foreach ($paymentProcessors as $paymentProcessor) { - $this->assertEquals($creditCards, $paymentProcessor['accepted_credit_cards']); + if (!empty($paymentProcessor['accepted_credit_cards'])) { + $this->assertEquals($creditCards, $paymentProcessor['accepted_credit_cards']); + } } } -- 2.25.1