magento2-docker/dev/tests/integration/testsuite/Magento/Tax/Model/Rate/SourceTest.php

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();
}
}