123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Braintree\Test\Unit\Model\Ui;
- use Magento\Braintree\Gateway\Config\Config;
- use Magento\Braintree\Model\Adapter\BraintreeAdapter;
- use Magento\Braintree\Model\Adapter\BraintreeAdapterFactory;
- use Magento\Braintree\Model\Ui\ConfigProvider;
- use Magento\Customer\Model\Session;
- use PHPUnit_Framework_MockObject_MockObject as MockObject;
- /**
- * Class ConfigProviderTest
- *
- * Test for class \Magento\Braintree\Model\Ui\ConfigProvider
- */
- class ConfigProviderTest extends \PHPUnit\Framework\TestCase
- {
- const SDK_URL = 'https://js.braintreegateway.com/v2/braintree.js';
- const CLIENT_TOKEN = 'token';
- const MERCHANT_ACCOUNT_ID = '245345';
- /**
- * @var Config|MockObject
- */
- private $config;
- /**
- * @var BraintreeAdapter|MockObject
- */
- private $braintreeAdapter;
- /**
- * @var Session|MockObject
- */
- private $session;
- /**
- * @var ConfigProvider
- */
- private $configProvider;
- protected function setUp()
- {
- $this->config = $this->getMockBuilder(Config::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->braintreeAdapter = $this->getMockBuilder(BraintreeAdapter::class)
- ->disableOriginalConstructor()
- ->getMock();
- /** @var BraintreeAdapterFactory|MockObject $adapterFactoryMock */
- $adapterFactoryMock = $this->getMockBuilder(BraintreeAdapterFactory::class)
- ->disableOriginalConstructor()
- ->getMock();
- $adapterFactoryMock->method('create')
- ->willReturn($this->braintreeAdapter);
- $this->session = $this->getMockBuilder(Session::class)
- ->disableOriginalConstructor()
- ->setMethods(['getStoreId'])
- ->getMock();
- $this->session->method('getStoreId')
- ->willReturn(null);
- $this->configProvider = new ConfigProvider(
- $this->config,
- $adapterFactoryMock,
- $this->session
- );
- }
- /**
- * Run test getConfig method
- *
- * @param array $config
- * @param array $expected
- * @dataProvider getConfigDataProvider
- */
- public function testGetConfig($config, $expected)
- {
- $this->braintreeAdapter->expects(static::once())
- ->method('generate')
- ->willReturn(self::CLIENT_TOKEN);
- foreach ($config as $method => $value) {
- $this->config->expects(static::once())
- ->method($method)
- ->willReturn($value);
- }
- static::assertEquals($expected, $this->configProvider->getConfig());
- }
- /**
- * @covers \Magento\Braintree\Model\Ui\ConfigProvider::getClientToken
- * @dataProvider getClientTokenDataProvider
- */
- public function testGetClientToken($merchantAccountId, $params)
- {
- $this->config->expects(static::once())
- ->method('getMerchantAccountId')
- ->willReturn($merchantAccountId);
- $this->braintreeAdapter->expects(static::once())
- ->method('generate')
- ->with($params)
- ->willReturn(self::CLIENT_TOKEN);
- static::assertEquals(self::CLIENT_TOKEN, $this->configProvider->getClientToken());
- }
- /**
- * @return array
- */
- public function getConfigDataProvider()
- {
- return [
- [
- 'config' => [
- 'isActive' => true,
- 'getCcTypesMapper' => ['visa' => 'VI', 'american-express'=> 'AE'],
- 'getSdkUrl' => self::SDK_URL,
- 'getCountrySpecificCardTypeConfig' => [
- 'GB' => ['VI', 'AE'],
- 'US' => ['DI', 'JCB']
- ],
- 'getAvailableCardTypes' => ['AE', 'VI', 'MC', 'DI', 'JCB'],
- 'isCvvEnabled' => true,
- 'isVerify3DSecure' => true,
- 'getThresholdAmount' => 20,
- 'get3DSecureSpecificCountries' => ['GB', 'US', 'CA'],
- 'getEnvironment' => 'test-environment',
- 'getKountMerchantId' => 'test-kount-merchant-id',
- 'getMerchantId' => 'test-merchant-id',
- 'hasFraudProtection' => true,
- ],
- 'expected' => [
- 'payment' => [
- ConfigProvider::CODE => [
- 'isActive' => true,
- 'clientToken' => self::CLIENT_TOKEN,
- 'ccTypesMapper' => ['visa' => 'VI', 'american-express' => 'AE'],
- 'sdkUrl' => self::SDK_URL,
- 'countrySpecificCardTypes' =>[
- 'GB' => ['VI', 'AE'],
- 'US' => ['DI', 'JCB']
- ],
- 'availableCardTypes' => ['AE', 'VI', 'MC', 'DI', 'JCB'],
- 'useCvv' => true,
- 'environment' => 'test-environment',
- 'kountMerchantId' => 'test-kount-merchant-id',
- 'merchantId' => 'test-merchant-id',
- 'hasFraudProtection' => true,
- 'ccVaultCode' => ConfigProvider::CC_VAULT_CODE
- ],
- Config::CODE_3DSECURE => [
- 'enabled' => true,
- 'thresholdAmount' => 20,
- 'specificCountries' => ['GB', 'US', 'CA']
- ]
- ]
- ]
- ]
- ];
- }
- /**
- * @return array
- */
- public function getClientTokenDataProvider()
- {
- return [
- [
- 'merchantAccountId' => '',
- 'params' => []
- ],
- [
- 'merchantAccountId' => self::MERCHANT_ACCOUNT_ID,
- 'params' => ['merchantAccountId' => self::MERCHANT_ACCOUNT_ID]
- ]
- ];
- }
- }
|