128 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
 | 
						|
namespace Magento\CurrencySymbol\Model\System;
 | 
						|
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
 | 
						|
/**
 | 
						|
 * Test for Magento\CurrencySymbol\Model\System\Currencysymbol
 | 
						|
 *
 | 
						|
 * @magentoAppArea adminhtml
 | 
						|
 */
 | 
						|
class CurrencysymbolTest extends \PHPUnit\Framework\TestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @var \Magento\CurrencySymbol\Model\System\Currencysymbol
 | 
						|
     */
 | 
						|
    protected $currencySymbolModel;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $this->currencySymbolModel = Bootstrap::getObjectManager()->create(
 | 
						|
            \Magento\CurrencySymbol\Model\System\Currencysymbol::class
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    protected function tearDown(): void
 | 
						|
    {
 | 
						|
        $this->currencySymbolModel = null;
 | 
						|
        Bootstrap::getObjectManager()->get(\Magento\Framework\App\Config\ReinitableConfigInterface::class)->reinit();
 | 
						|
        Bootstrap::getObjectManager()->create(\Magento\Store\Model\StoreManagerInterface::class)->reinitStores();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Test that getCurrencySymbolsData method returns valid data
 | 
						|
     *
 | 
						|
     * @return void
 | 
						|
     */
 | 
						|
    public function testGetCurrencySymbolsData()
 | 
						|
    {
 | 
						|
        $currencySymbolsData = $this->currencySymbolModel->getCurrencySymbolsData();
 | 
						|
        $this->assertArrayHasKey('USD', $currencySymbolsData, 'Default currency option for USD is missing.');
 | 
						|
        $this->assertArrayHasKey('EUR', $currencySymbolsData, 'Default currency option for EUR is missing.');
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @magentoDbIsolation enabled
 | 
						|
     */
 | 
						|
    public function testSetEmptyCurrencySymbolsData()
 | 
						|
    {
 | 
						|
        $currencySymbolsDataBefore = $this->currencySymbolModel->getCurrencySymbolsData();
 | 
						|
 | 
						|
        $this->currencySymbolModel->setCurrencySymbolsData([]);
 | 
						|
 | 
						|
        $currencySymbolsDataAfter = $this->currencySymbolModel->getCurrencySymbolsData();
 | 
						|
 | 
						|
        //Make sure symbol data is unchanged
 | 
						|
        $this->assertEquals($currencySymbolsDataBefore, $currencySymbolsDataAfter);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @magentoDbIsolation enabled
 | 
						|
     */
 | 
						|
    public function testSetCurrencySymbolsData()
 | 
						|
    {
 | 
						|
        $currencySymbolsData = $this->currencySymbolModel->getCurrencySymbolsData();
 | 
						|
        $this->assertArrayHasKey('EUR', $currencySymbolsData);
 | 
						|
 | 
						|
        //Change currency symbol
 | 
						|
        $currencySymbolsData = [
 | 
						|
            'EUR' => '@',
 | 
						|
        ];
 | 
						|
        $this->currencySymbolModel->setCurrencySymbolsData($currencySymbolsData);
 | 
						|
 | 
						|
        //Verify if the new symbol is set
 | 
						|
        $this->assertEquals(
 | 
						|
            '@',
 | 
						|
            $this->currencySymbolModel->getCurrencySymbolsData()['EUR']['displaySymbol'],
 | 
						|
            'Symbol not set correctly.'
 | 
						|
        );
 | 
						|
 | 
						|
        $this->assertEquals('@', $this->currencySymbolModel->getCurrencySymbol('EUR'), 'Symbol not set correctly.');
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Test that method returns valid data
 | 
						|
     *
 | 
						|
     * @return void
 | 
						|
     */
 | 
						|
    public function testGetCurrencySymbolNonExistent()
 | 
						|
    {
 | 
						|
        $this->assertFalse($this->currencySymbolModel->getCurrencySymbol('AUD'));
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Test that default symbol can be set to use explicitly in the system
 | 
						|
     *
 | 
						|
     * @return void
 | 
						|
     */
 | 
						|
    public function testSetCurrencySymbolLikeParent()
 | 
						|
    {
 | 
						|
        $currencySymbolsData = ['USD' => '$'];
 | 
						|
        $this->currencySymbolModel->setCurrencySymbolsData($currencySymbolsData);
 | 
						|
 | 
						|
        //Verify if the new symbol is set
 | 
						|
        $this->assertEquals(
 | 
						|
            '$',
 | 
						|
            $this->currencySymbolModel->getCurrencySymbolsData()['USD']['displaySymbol'],
 | 
						|
            'Symbol was not correctly set.'
 | 
						|
        );
 | 
						|
 | 
						|
        $this->assertEquals(
 | 
						|
            false,
 | 
						|
            $this->currencySymbolModel->getCurrencySymbolsData()['USD']['inherited'],
 | 
						|
            'Symbol\'s inheritance was not correctly set.'
 | 
						|
        );
 | 
						|
    }
 | 
						|
}
 |