![]() 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-weee/Test/Unit/Pricing/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Weee\Test\Unit\Pricing; use Magento\Framework\DataObject; use Magento\Framework\Pricing\PriceCurrencyInterface; use Magento\Framework\Pricing\SaleableInterface; use Magento\Weee\Helper\Data; use Magento\Weee\Model\Tax; use Magento\Weee\Pricing\TaxAdjustment; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class TaxAdjustmentTest extends TestCase { /** * @var TaxAdjustment */ protected $adjustment; /** * @var Data|MockObject */ protected $weeeHelperMock; /** * @var \Magento\Tax\Helper\Data|MockObject */ protected $taxHelperMock; /** * @var PriceCurrencyInterface|MockObject */ protected $priceCurrencyMock; /** * @var int */ protected $sortOrder = 5; protected function setUp(): void { $this->weeeHelperMock = $this->createMock(Data::class); $this->taxHelperMock = $this->createMock(\Magento\Tax\Helper\Data::class); $this->priceCurrencyMock = $this->getMockForAbstractClass(PriceCurrencyInterface::class); $this->priceCurrencyMock->expects($this->any()) ->method('convertAndRound') ->willReturnCallback( function ($arg) { return round($arg * 0.5, 2); } ); $this->priceCurrencyMock->expects($this->any()) ->method('convert') ->willReturnCallback( function ($arg) { return $arg * 0.5; } ); $this->adjustment = new TaxAdjustment( $this->weeeHelperMock, $this->taxHelperMock, $this->priceCurrencyMock, $this->sortOrder ); } public function testGetAdjustmentCode() { $this->assertEquals(TaxAdjustment::ADJUSTMENT_CODE, $this->adjustment->getAdjustmentCode()); } public function testIsIncludedInBasePrice() { $this->assertFalse($this->adjustment->isIncludedInBasePrice()); } /** * @param bool $taxDisplayExclTax * @param bool $isWeeeTaxable * @param bool $weeeDisplayConfig * @param bool $expectedResult * @dataProvider isIncludedInDisplayPriceDataProvider */ public function testIsIncludedInDisplayPrice( $taxDisplayExclTax, $isWeeeTaxable, $weeeDisplayConfig, $expectedResult ) { $this->weeeHelperMock->expects($this->any()) ->method('isEnabled') ->willReturn(true); $this->weeeHelperMock->expects($this->any()) ->method('isTaxable') ->willReturn($isWeeeTaxable); $this->taxHelperMock->expects($this->any()) ->method('displayPriceExcludingTax') ->willReturn($taxDisplayExclTax); $displayTypes = [ Tax::DISPLAY_EXCL, ]; $this->weeeHelperMock->expects($this->any()) ->method('typeOfDisplay') ->with($displayTypes) ->willReturn($weeeDisplayConfig); $this->assertEquals($expectedResult, $this->adjustment->isIncludedInDisplayPrice()); } /** * @return array */ public function isIncludedInDisplayPriceDataProvider() { return [ 'display_incl_tax' => [ 'tax_display_excl_tax' => false, 'is_weee_taxable' => true, 'weee_display_config' => false, 'expected_result' => true, ], 'display_incl_tax_excl_weee' => [ 'tax_display_excl_tax' => false, 'is_weee_taxable' => true, 'weee_display_config' => true, 'expected_result' => false, ], 'display_excl_tax' => [ 'tax_display_excl_tax' => true, 'is_weee_taxable' => true, 'weee_display_config' => true, 'expected_result' => false, ], 'display_excl_tax_incl_weee' => [ 'tax_display_excl_tax' => true, 'is_weee_taxable' => true, 'weee_display_config' => false, 'expected_result' => false, ], ]; } /** * @param float $amount * @param DataObject[] $weeeAttributes * @param float $expectedResult * @dataProvider applyAdjustmentDataProvider */ public function testApplyAdjustment($amount, $weeeAttributes, $expectedResult) { $object = $this->getMockForAbstractClass(SaleableInterface::class); $this->weeeHelperMock->expects($this->any()) ->method('getProductWeeeAttributes') ->willReturn($weeeAttributes); $this->assertEquals($expectedResult, $this->adjustment->applyAdjustment($amount, $object)); } /** * @return array */ public function applyAdjustmentDataProvider() { return [ [ 'amount' => 10, 'weee_attributes' => [ new DataObject( [ 'tax_amount' => 5, ] ), new DataObject( [ 'tax_amount' => 2.5, ] ), ], 'expected_result' => 13.75, ], ]; } }