22 private $productAvailabilityChecks;
27 private $orderItemMock;
32 private $orderItemInterfaceMock;
37 private $configurableCheckerMock;
42 private $productTypeConfigurable;
47 private $productTypeSimple;
56 $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
57 $this->orderItemMock = $this->getMockBuilder(Item::class)->disableOriginalConstructor()->getMock();
58 $this->orderItemInterfaceMock = $this->getMockBuilder(OrderItemInterface::class)
59 ->disableOriginalConstructor()
60 ->getMockForAbstractClass();
62 $this->productTypeConfigurable =
'configurable';
63 $this->productTypeSimple =
'simple';
64 $this->configurableCheckerMock = $this->getMockBuilder(ConfigurableChecker::class)
65 ->disableOriginalConstructor()
67 $fakeClass = new \stdClass();
68 $this->productAvailabilityChecks[$this->productTypeConfigurable] = $this->configurableCheckerMock;
69 $this->productAvailabilityChecks[$this->productTypeSimple] = $fakeClass;
72 OrderedProductAvailabilityChecker::class,
74 'productAvailabilityChecks' => $this->productAvailabilityChecks
81 $this->getProductType($this->productTypeConfigurable);
82 $this->isAvailable(
true);
83 $this->assertTrue($this->checker->isAvailable($this->orderItemMock));
88 $this->getProductType($this->productTypeConfigurable);
89 $this->isAvailable(
false);
90 $this->assertFalse($this->checker->isAvailable($this->orderItemMock));
98 $this->getProductType($this->productTypeSimple);
99 $this->checker->isAvailable($this->orderItemMock);
104 $this->getProductType(
'test_type');
105 $this->assertTrue($this->checker->isAvailable($this->orderItemMock));
111 private function getProductType($productType)
113 $this->orderItemMock->expects($this->any())
114 ->method(
'getParentItem')
115 ->willReturn($this->orderItemInterfaceMock);
116 $this->orderItemInterfaceMock->expects($this->any())
117 ->method(
'getProductType')
118 ->willReturn($productType);
124 private function isAvailable(
$result)
126 $this->configurableCheckerMock->expects($this->once())
127 ->method(
'isAvailable')
128 ->with($this->orderItemMock)
testIsAvailableTypeNotChecks()
testIsAvailableException()