TotalBaseCalculatorTest.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Tax\Test\Unit\Model\Calculation;
  7. class TotalBaseCalculatorTest extends RowBaseAndTotalBaseCalculatorTestCase
  8. {
  9. /** @var \PHPUnit_Framework_MockObject_MockObject */
  10. protected $totalBaseCalculator;
  11. public function testCalculateWithTaxInPrice()
  12. {
  13. $this->initTotalBaseCalculator();
  14. $this->totalBaseCalculator->expects($this->exactly(3))
  15. ->method('deltaRound')->will($this->returnValue(0));
  16. $this->initMocks(true);
  17. $this->assertSame(
  18. $this->taxDetailsItem,
  19. $this->calculate($this->totalBaseCalculator)
  20. );
  21. $this->assertEquals(self::UNIT_PRICE_INCL_TAX_ROUNDED, $this->taxDetailsItem->getPriceInclTax());
  22. }
  23. public function testCalculateWithTaxInPriceNoRounding()
  24. {
  25. $this->initTotalBaseCalculator();
  26. $this->totalBaseCalculator->expects($this->exactly(3))
  27. ->method('deltaRound')->will($this->returnValue(0));
  28. $this->initMocks(true);
  29. $this->assertSame(
  30. $this->taxDetailsItem,
  31. $this->calculate($this->totalBaseCalculator, false)
  32. );
  33. $this->assertEquals(self::UNIT_PRICE_INCL_TAX, $this->taxDetailsItem->getPriceInclTax());
  34. }
  35. public function testCalculateWithTaxNotInPrice()
  36. {
  37. $this->initTotalBaseCalculator();
  38. $this->totalBaseCalculator->expects($this->exactly(2))
  39. ->method('deltaRound')->will($this->returnValue(0));
  40. $this->initMocks(false);
  41. $this->assertSame(
  42. $this->taxDetailsItem,
  43. $this->calculate($this->totalBaseCalculator)
  44. );
  45. }
  46. private function initTotalBaseCalculator()
  47. {
  48. $taxClassService = $this->createMock(\Magento\Tax\Api\TaxClassManagementInterface::class);
  49. $this->totalBaseCalculator = $this->getMockBuilder(\Magento\Tax\Model\Calculation\TotalBaseCalculator::class)
  50. ->setMethods(['deltaRound'])
  51. ->setConstructorArgs(
  52. [
  53. 'taxClassService' => $taxClassService,
  54. 'taxDetailsItemDataObjectFactory' => $this->taxItemDetailsDataObjectFactory,
  55. 'appliedTaxDataObjectFactory' => $this->appliedTaxDataObjectFactory,
  56. 'appliedTaxRateDataObjectFactory' => $this->appliedTaxRateDataObjectFactory,
  57. 'calculationTool' => $this->mockCalculationTool,
  58. 'config' => $this->mockConfig,
  59. 'storeId' => self::STORE_ID,
  60. 'addressRateRequest' => $this->addressRateRequest
  61. ]
  62. )
  63. ->getMock();
  64. }
  65. }