61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
namespace Magento\Tax\Model\Rate;
 | 
						|
 | 
						|
use Magento\Tax\Model\Calculation\Rate;
 | 
						|
use Magento\Tax\Model\Rate\Provider;
 | 
						|
use Magento\Tax\Model\ResourceModel\Calculation\Rate\Collection;
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
use Magento\Framework\Api\SearchCriteriaBuilder;
 | 
						|
 | 
						|
/**
 | 
						|
 * Class ProviderTest provides coverage
 | 
						|
 * of Tax Rate model options provider.
 | 
						|
 */
 | 
						|
class ProviderTest extends \PHPUnit\Framework\TestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Test of requesting tax rates by search criteria.
 | 
						|
     */
 | 
						|
    public function testToOptionArray()
 | 
						|
    {
 | 
						|
        $objectManager = Bootstrap::getObjectManager();
 | 
						|
        $optionsCount = 1;
 | 
						|
 | 
						|
        /** @var Collection $collection */
 | 
						|
        $collection = $objectManager->get(Collection::class);
 | 
						|
        $expectedResult = [];
 | 
						|
 | 
						|
        /** @var $taxRate Rate */
 | 
						|
        foreach ($collection as $taxRate) {
 | 
						|
            $expectedResult[] = ['value' => $taxRate->getId(), 'label' => $taxRate->getCode()];
 | 
						|
            if (count($expectedResult) >= $optionsCount) {
 | 
						|
                break;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /** @var Source $source */
 | 
						|
        if (empty($expectedResult)) {
 | 
						|
            $this->fail('Preconditions failed: At least one tax rate should be available.');
 | 
						|
        }
 | 
						|
 | 
						|
        $provider = $objectManager->get(Provider::class);
 | 
						|
 | 
						|
        /** @var SearchCriteriaBuilder $searchCriteriaBuilder */
 | 
						|
        $searchCriteriaBuilder =  $objectManager->create(SearchCriteriaBuilder::class);
 | 
						|
        $searchCriteriaBuilder->setPageSize($optionsCount);
 | 
						|
        $searchCriteriaBuilder->setCurrentPage(1);
 | 
						|
 | 
						|
        $searchCriteria = $searchCriteriaBuilder->create();
 | 
						|
 | 
						|
        $this->assertEquals(
 | 
						|
            $expectedResult,
 | 
						|
            $provider->toOptionArray($searchCriteria),
 | 
						|
            'Tax rate options are invalid.'
 | 
						|
        );
 | 
						|
    }
 | 
						|
}
 |