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