22 private $commonTaxCollector;
68 $this->taxConfig = $this->getMockBuilder(\
Magento\
Tax\Model\Config::class)
69 ->disableOriginalConstructor()
70 ->setMethods([
'getShippingTaxClass',
'shippingPriceIncludesTax'])
73 $this->store = $this->getMockBuilder(\
Magento\Store\Model\Store::class)
74 ->disableOriginalConstructor()
75 ->setMethods([
'__wakeup'])
78 $this->quote = $this->getMockBuilder(\
Magento\Quote\Model\Quote::class)
79 ->disableOriginalConstructor()
80 ->setMethods([
'__wakeup',
'getStore'])
83 $this->quote->expects($this->any())
85 ->will($this->returnValue($this->store));
87 $this->address = $this->getMockBuilder(\
Magento\Quote\Model\Quote\Address::class)
88 ->disableOriginalConstructor()
91 $this->address->expects($this->any())
93 ->will($this->returnValue($this->quote));
96 \
Magento\
Tax\Model\Sales\Quote\ItemDetails::class
99 $this->quoteDetailsItemDataObjectFactoryMock
100 = $this->createPartialMock(\
Magento\
Tax\Api\Data\QuoteDetailsItemInterfaceFactory::class,
$methods);
101 $this->quoteDetailsItemDataObjectFactoryMock->expects($this->any())
103 ->willReturn($this->quoteDetailsItemDataObject);
104 $this->taxClassKeyDataObjectFactoryMock =
105 $this->createPartialMock(\
Magento\
Tax\Api\Data\TaxClassKeyInterfaceFactory::class,
$methods);
106 $this->taxClassKeyDataObjectFactoryMock->expects($this->any())
108 ->willReturn($this->taxClassKeyDataObject);
110 \
Magento\
Tax\Model\Sales\Total\Quote\CommonTaxCollector::class,
112 'taxConfig' => $this->taxConfig,
113 'quoteDetailsItemDataObjectFactory' => $this->quoteDetailsItemDataObjectFactoryMock,
114 'taxClassKeyDataObjectFactory' => $this->taxClassKeyDataObjectFactoryMock
130 $shippingPriceInclTax
132 $shippingAssignmentMock = $this->createMock(\
Magento\Quote\Api\Data\ShippingAssignmentInterface::class);
134 'getShippingDiscountAmount',
135 'getShippingTaxCalculationAmount',
136 'setShippingTaxCalculationAmount',
138 'setBaseShippingTaxCalculationAmount',
139 'getBaseShippingAmount',
140 'getBaseShippingDiscountAmount' 142 $totalsMock = $this->createPartialMock(\
Magento\Quote\Model\Quote\Address\Total::class,
$methods);
143 $shippingMock = $this->createMock(\
Magento\Quote\Api\Data\ShippingInterface::class);
144 $shippingAssignmentMock->expects($this->once())->method(
'getShipping')->willReturn($shippingMock);
145 $shippingMock->expects($this->once())->method(
'getAddress')->willReturn($this->address);
146 $baseShippingAmount =
$addressData[
'base_shipping_amount'];
148 $totalsMock->expects($this->any())->method(
'getShippingTaxCalculationAmount')->willReturn(
$shippingAmount);
149 $this->taxConfig->expects($this->any())
150 ->method(
'getShippingTaxClass')
152 ->will($this->returnValue($shippingTaxClass));
153 $this->taxConfig->expects($this->any())
154 ->method(
'shippingPriceIncludesTax')
156 ->will($this->returnValue($shippingPriceInclTax));
158 ->expects($this->atLeastOnce())
159 ->method(
'getShippingDiscountAmount')
164 ->expects($this->once())
165 ->method(
'getBaseShippingDiscountAmount')
166 ->willReturn($baseShippingAmount);
167 $expectedDiscountAmount = $baseShippingAmount;
169 $totalsMock->expects($this->never())->method(
'getBaseShippingDiscountAmount');
174 $totalsMock->setData($key,
$value);
177 $this->quoteDetailsItemDataObject,
178 $this->commonTaxCollector->getShippingDataObject($shippingAssignmentMock, $totalsMock, $useBaseCurrency)
182 $this->assertEquals($expectedDiscountAmount, $this->quoteDetailsItemDataObject->getDiscountAmount());
194 'shipping_amount' => 0,
195 'base_shipping_amount' => 0,
197 'use_base_currency' =>
false,
198 'shipping_tax_class' =>
'shippingTaxClass',
199 'shippingPriceInclTax' =>
true,
201 'none_zero_none_base' => [
203 'shipping_amount' => 10,
204 'base_shipping_amount' => 5,
206 'use_base_currency' =>
false,
207 'shipping_tax_class' =>
'shippingTaxClass',
208 'shippingPriceInclTax' =>
true,
210 'none_zero_base' => [
212 'shipping_amount' => 10,
213 'base_shipping_amount' => 5,
215 'use_base_currency' =>
true,
216 'shipping_tax_class' =>
'shippingTaxClass',
217 'shippingPriceInclTax' =>
true,
$quoteDetailsItemDataObject
testGetShippingDataObject(array $addressData, $useBaseCurrency, $shippingTaxClass, $shippingPriceInclTax)
$quoteDetailsItemDataObjectFactoryMock
getShippingDataObjectDataProvider()
$taxClassKeyDataObjectFactoryMock