Skip to content

Commit

Permalink
420 - Test coverage: GetAvailablePaymentMethodsTest for Guest
Browse files Browse the repository at this point in the history
1. Add Magento/Payment/_files/disable_all_active_payment_methods.php
  • Loading branch information
atwixfirster committed Mar 7, 2019
1 parent 9b2be29 commit 9395e76
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public function testGetPaymentMethodsFromAnotherCustomerCart()

/**
* @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
* @magentoApiDataFixture Magento/Payment/_files/disable_all_payment_methods.php
* @magentoApiDataFixture Magento/Payment/_files/disable_all_active_payment_methods.php
*/
public function testGetPaymentMethodsIfPaymentsAreNotSet()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);

use Magento\Config\Model\Config;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\TestFramework\Helper\Bootstrap;

$processConfigData = function (Config $config, array $data) {
foreach ($data as $key => $value) {
$config->setDataByPath($key, $value);
$config->save();
}
};

$objectManager = Bootstrap::getObjectManager();
$paymentMethodList = $objectManager->get(\Magento\Payment\Api\PaymentMethodListInterface::class);
$rollbackConfigKey = 'test/payment/disabled_payment_methods';
$configData = [];
$disabledPaymentMethods = [];

// Get all active Payment Methods
foreach ($paymentMethodList->getActiveList(\Magento\Store\Model\Store::DEFAULT_STORE_ID) as $paymentMethod) {
$configData['payment/' . $paymentMethod->getCode() . '/active'] = 0;
$disabledPaymentMethods[] = $paymentMethod->getCode();
}
// Remember all manually disabled Payment Methods for rollback
$configData[$rollbackConfigKey] = implode(',', $disabledPaymentMethods);

/** @var Config $defConfig */
$defConfig = $objectManager->create(Config::class);
$defConfig->setScope(ScopeConfigInterface::SCOPE_TYPE_DEFAULT);

$processConfigData($defConfig, $configData);
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);

use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\App\Config\Storage\WriterInterface;
use Magento\TestFramework\Helper\Bootstrap;

$objectManager = Bootstrap::getObjectManager();
$rollbackConfigKey = 'test/payment/disabled_payment_methods';

$configWriter = $objectManager->create(WriterInterface::class);
$rollbackConfigValue = $objectManager->get(\Magento\Store\Model\StoreManagerInterface::class)
->getStore(\Magento\Store\Model\Store::DEFAULT_STORE_ID)
->getConfig($rollbackConfigKey);

$disabledPaymentMethods = [];
if (!empty($rollbackConfigValue)) {
$disabledPaymentMethods = explode(',', $rollbackConfigValue);
}

if (count($disabledPaymentMethods)) {
foreach ($disabledPaymentMethods as $keyToRemove) {
$configWriter->delete(sprintf('payment/%s/active', $keyToRemove));
}
}
$configWriter->delete($rollbackConfigKey);

$scopeConfig = $objectManager->get(ScopeConfigInterface::class);
$scopeConfig->clean();

0 comments on commit 9395e76

Please sign in to comment.