PaymentMethodListTest.php 2.08 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Braintree\Model;

use Magento\Braintree\Model\Ui\ConfigProvider;
use Magento\Braintree\Model\Ui\PayPal\ConfigProvider as PayPalConfigProvider;
use Magento\Store\Model\StoreManagerInterface;
use Magento\TestFramework\Helper\Bootstrap;
use Magento\Vault\Api\PaymentMethodListInterface;
use Magento\Vault\Model\VaultPaymentInterface;

/**
 * Contains tests for vault payment list methods
 */
class PaymentMethodListTest extends \PHPUnit\Framework\TestCase
{
    /**
     * @var PaymentMethodListInterface
     */
    private $paymentMethodList;

    /**
     * @var int
     */
    private $storeId;

    protected function setUp()
    {
        $objectManager = Bootstrap::getObjectManager();
        $this->storeId = $objectManager->get(StoreManagerInterface::class)
            ->getStore()
            ->getId();
        $this->paymentMethodList = $objectManager->get(PaymentMethodListInterface::class);
    }

    /**
     * @magentoDataFixture Magento/Braintree/_files/payments.php
     */
    public function testGetList()
    {
        $vaultPayments = $this->paymentMethodList->getList($this->storeId);

        static::assertNotEmpty($vaultPayments);

        $paymentCodes = array_map(function (VaultPaymentInterface $payment) {
            return $payment->getCode();
        }, $vaultPayments);

        $expectedCodes = [
            PayPalConfigProvider::PAYPAL_VAULT_CODE,
            ConfigProvider::CC_VAULT_CODE
        ];
        static::assertNotEmpty(array_intersect($expectedCodes, $paymentCodes));
    }

    /**
     * @magentoDataFixture Magento/Braintree/_files/payments.php
     */
    public function testGetActiveList()
    {
        $vaultPayments = $this->paymentMethodList->getActiveList($this->storeId);

        static::assertNotEmpty($vaultPayments);
        $paymentCodes = array_map(function ($payment) {
            return $payment->getCode();
        }, $vaultPayments);
        static::assertContains(PayPalConfigProvider::PAYPAL_VAULT_CODE, $paymentCodes);
    }
}