View source
<?php
namespace Drupal\Tests\commerce_currency_resolver\Kernel;
use Drupal\Tests\commerce_currency_resolver\Traits\CurrentCurrencyTrait;
use Drupal\commerce_store\Entity\Store;
use Drupal\commerce_store\Entity\StoreInterface;
use Drupal\language\Entity\ConfigurableLanguage;
use Drupal\Tests\commerce_order\Kernel\OrderKernelTestBase;
class CurrentCurrencyTest extends OrderKernelTestBase {
use CurrentCurrencyTrait;
protected $currentCurrency;
protected $languageManager;
protected $languageDefault;
public static $modules = [
'language',
'language_test',
'system',
'commerce_exchanger',
'commerce_currency_resolver',
];
protected function setUp() {
parent::setUp();
$this
->installConfig('system');
$this
->installConfig('language');
ConfigurableLanguage::create([
'id' => 'hr',
])
->save();
$this->languageManager = $this->container
->get('language_manager');
$this->languageDefault = $this->container
->get('language.default');
$language = ConfigurableLanguage::load('hr');
$this->languageDefault
->set($language);
$this
->config('system.site')
->set('default_langcode', $language
->getId())
->save();
$this->languageManager
->reset();
$currency_importer = $this->container
->get('commerce_price.currency_importer');
$currency_importer
->import('HRK');
$this
->installConfig([
'commerce_currency_resolver',
]);
$this
->config('commerce_currency_resolver.settings')
->set('currency_default', 'HRK')
->save();
$this->currentCurrency = $this->container
->get('commerce_currency_resolver.current_currency');
$this
->config('commerce_currency_resolver.currency_mapping')
->setData([
'domicile_currency' => NULL,
'logic' => NULL,
'matrix' => [
'en' => 'USD',
'hr' => 'HRK',
],
])
->save();
}
public function testDefault() {
$this
->assertInstanceOf(StoreInterface::class, $this->store);
$this
->assertEqual($this->store
->getDefaultCurrencyCode(), $this->currentCurrency
->getCurrency());
$this
->assertEqual('USD', $this->store
->getDefaultCurrencyCode());
$this
->assertEqual('USD', $this->currentCurrency
->getCurrency());
$this
->assertEqual('HRK', $this
->config('commerce_currency_resolver.settings')
->get('currency_default'));
}
public function testNoStore() {
$this
->assertEqual('HRK', $this
->config('commerce_currency_resolver.settings')
->get('currency_default'));
$this
->assertEqual('USD', $this->store
->getDefaultCurrencyCode());
$this
->assertEqual('USD', $this->currentCurrency
->getCurrency());
$this
->assertEqual(1, $this->store
->id());
$store = Store::load($this->store
->id());
$store
->delete();
$this
->assertEmpty(Store::load(1));
$this
->resetCurrencyContainer();
$this
->assertEqual('HRK', $this->currentCurrency
->getCurrency());
}
public function testLanguage() {
$this
->assertEqual('USD', $this->currentCurrency
->getCurrency());
$this
->config('commerce_currency_resolver.settings')
->set('currency_mapping', 'lang')
->save();
$this
->assertEqual('hr', $this->languageManager
->getCurrentLanguage()
->getId());
$this
->resetCurrencyContainer();
$this
->assertEqual('HRK', $this->currentCurrency
->getCurrency());
$this
->config('system.site')
->set('default_langcode', 'en')
->save();
$this
->resetCurrencyContainer();
$this
->assertEqual('USD', $this->currentCurrency
->getCurrency());
}
}