Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RowBaseCalculatorTest.php
Go to the documentation of this file.
1 <?php
8 
9 use \Magento\Tax\Model\Calculation\RowBaseCalculator;
10 
16 {
18  protected $rowBaseCalculator;
19 
20  public function testCalculateWithTaxInPrice()
21  {
22  $this->initMocks(true);
23  $this->initRowBaseCalculator();
24  $this->rowBaseCalculator->expects($this->atLeastOnce())
25  ->method('deltaRound')->will($this->returnValue(0));
26 
27  $this->assertSame(
28  $this->taxDetailsItem,
29  $this->calculate($this->rowBaseCalculator, true)
30  );
31  $this->assertEquals(self::UNIT_PRICE_INCL_TAX_ROUNDED, $this->taxDetailsItem->getPriceInclTax());
32 
33  $this->assertSame(
34  $this->taxDetailsItem,
35  $this->calculate($this->rowBaseCalculator, false)
36  );
37  $this->assertEquals(self::UNIT_PRICE_INCL_TAX, $this->taxDetailsItem->getPriceInclTax());
38  }
39 
41  {
42  $this->initMocks(false);
43  $this->initRowBaseCalculator();
44  $this->rowBaseCalculator->expects($this->atLeastOnce())
45  ->method('deltaRound');
46 
47  $this->assertSame(
48  $this->taxDetailsItem,
49  $this->calculate($this->rowBaseCalculator)
50  );
51  }
52 
53  private function initRowBaseCalculator()
54  {
55  $taxClassService = $this->createMock(\Magento\Tax\Api\TaxClassManagementInterface::class);
56  $this->rowBaseCalculator = $this->getMockBuilder(\Magento\Tax\Model\Calculation\RowBaseCalculator::class)
57  ->setMethods(['deltaRound'])
58  ->setConstructorArgs(
59  [
60  'taxClassService' => $taxClassService,
61  'taxDetailsItemDataObjectFactory' => $this->taxItemDetailsDataObjectFactory,
62  'appliedTaxDataObjectFactory' => $this->appliedTaxDataObjectFactory,
63  'appliedTaxRateDataObjectFactory' => $this->appliedTaxRateDataObjectFactory,
64  'calculationTool' => $this->mockCalculationTool,
65  'config' => $this->mockConfig,
66  'storeId' => self::STORE_ID,
67  'addressRateRequest' => $this->addressRateRequest
68  ]
69  )
70  ->getMock();
71  }
72 }