16 private $lowestPriceOptionsProvider;
35 $className = \Magento\ConfigurableProduct\Model\Product\Type\Configurable::class;
36 $this->configurable = $this->createPartialMock(
$className, [
'getUsedProducts']);
38 $className = \Magento\ConfigurableProduct\Pricing\Price\PriceResolverInterface::class;
39 $this->priceResolver = $this->getMockForAbstractClass(
$className, [],
'',
false,
true,
true, [
'resolvePrice']);
41 $this->lowestPriceOptionsProvider = $this->createMock(LowestPriceOptionsProviderInterface::class);
47 'priceResolver' => $this->priceResolver,
48 'configurable' => $this->configurable,
49 'lowestPriceOptionsProvider' => $this->lowestPriceOptionsProvider,
65 \
Magento\Catalog\Model\Product::class
66 )->disableOriginalConstructor()->getMock();
68 $product->expects($this->never())->method(
'getSku');
71 return $this->getMockBuilder(\
Magento\Catalog\Model\Product::class)
72 ->disableOriginalConstructor()
76 $this->lowestPriceOptionsProvider->expects($this->once())->method(
'getProducts')->willReturn(
$products);
78 ->method(
'resolvePrice')
79 ->willReturnOnConsecutiveCalls(...$variantPrices);
81 $actualPrice = $this->resolver->resolvePrice(
$product);
82 self::assertSame($expectedPrice, $actualPrice);
91 'Single variant at price 0.00 (float), should return 0.00 (float)' => [
95 $expectedPrice = 0.00,
97 'Single variant at price 5 (integer), should return 5.00 (float)' => [
101 $expectedPrice = 5.00,
103 'Single variants at price null (null), should return 0.00 (float)' => [
107 $expectedPrice = 0.00,
109 'Multiple variants at price 0, 10, 20, should return 0.00 (float)' => [
115 $expectedPrice = 0.00,
117 'Multiple variants at price 10, 0, 20, should return 0.00 (float)' => [
123 $expectedPrice = 0.00,
resolvePriceDataProvider()
testResolvePrice($variantPrices, $expectedPrice)