67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
 | 
						|
namespace Magento\Tax\Model\Rate;
 | 
						|
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
use Magento\Tax\Model\Rate\Provider;
 | 
						|
 | 
						|
class SourceTest extends \Magento\TestFramework\Indexer\TestCase
 | 
						|
{
 | 
						|
    public static function setUpBeforeClass(): void
 | 
						|
    {
 | 
						|
        $db = Bootstrap::getInstance()->getBootstrap()
 | 
						|
            ->getApplication()
 | 
						|
            ->getDbInstance();
 | 
						|
        if (!$db->isDbDumpExists()) {
 | 
						|
            throw new \LogicException('DB dump does not exist.');
 | 
						|
        }
 | 
						|
        $db->restoreFromDbDump();
 | 
						|
 | 
						|
        parent::setUpBeforeClass();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @magentoDbIsolation disabled
 | 
						|
     */
 | 
						|
    public function testToOptionArray()
 | 
						|
    {
 | 
						|
        /** @var \Magento\Tax\Model\ResourceModel\Calculation\Rate\Collection $collection */
 | 
						|
        $collection = Bootstrap::getObjectManager()->get(
 | 
						|
            \Magento\Tax\Model\ResourceModel\Calculation\Rate\Collection::class
 | 
						|
        );
 | 
						|
 | 
						|
        $taxRateProvider = Bootstrap::getObjectManager()->get(Provider::class);
 | 
						|
        $expectedResult = [];
 | 
						|
        /** @var $taxRate \Magento\Tax\Model\Calculation\Rate */
 | 
						|
        foreach ($collection as $taxRate) {
 | 
						|
            $expectedResult[] = ['value' => $taxRate->getId(), 'label' => $taxRate->getCode()];
 | 
						|
            if (count($expectedResult) >= $taxRateProvider->getPageSize()) {
 | 
						|
                break;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /** @var \Magento\Tax\Model\Rate\Source $source */
 | 
						|
        if (empty($expectedResult)) {
 | 
						|
            $this->fail('Preconditions failed: At least one tax rate should be available.');
 | 
						|
        }
 | 
						|
        $source = Bootstrap::getObjectManager()->get(\Magento\Tax\Model\Rate\Source::class);
 | 
						|
        $this->assertEquals(
 | 
						|
            $expectedResult,
 | 
						|
            $source->toOptionArray(),
 | 
						|
            'Tax rate options are invalid.'
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * teardown
 | 
						|
     */
 | 
						|
    protected function tearDown(): void
 | 
						|
    {
 | 
						|
        parent::tearDown();
 | 
						|
    }
 | 
						|
}
 |