18 private $storeManagerMock;
23 private $resourceMock;
28 private $customerSessionMock;
33 private $metadataPoolMock;
38 private $baseSelectProcessorMock;
47 $this->storeManagerMock = $this->getMockBuilder(\
Magento\
Store\Model\StoreManagerInterface::class)
48 ->disableOriginalConstructor()
49 ->getMockForAbstractClass();
50 $this->resourceMock = $this->getMockBuilder(\
Magento\Framework\
App\ResourceConnection::class)
51 ->disableOriginalConstructor()->getMock();
52 $this->customerSessionMock = $this->getMockBuilder(\
Magento\Customer\Model\Session::class)
53 ->disableOriginalConstructor()
55 $this->metadataPoolMock = $this->getMockBuilder(\
Magento\Framework\EntityManager\MetadataPool::class)
56 ->disableOriginalConstructor()
58 $this->baseSelectProcessorMock =
60 ->disableOriginalConstructor()
61 ->getMockForAbstractClass();
63 $this->indexScopeResolverMock = $this->createMock(
64 \
Magento\Framework\Search\Request\IndexScopeResolverInterface::class
66 $this->dimensionMock = $this->createMock(\
Magento\Framework\Indexer\Dimension::class);
67 $this->dimensionFactoryMock = $this->createMock(\
Magento\Framework\Indexer\DimensionFactory::class);
68 $this->dimensionFactoryMock->method(
'create')->willReturn($this->dimensionMock);
69 $storeMock = $this->createMock(\
Magento\
Store\Api\Data\StoreInterface::class);
70 $storeMock->method(
'getId')->willReturn(1);
71 $storeMock->method(
'getWebsiteId')->willReturn(1);
72 $this->storeManagerMock->method(
'getStore')->willReturn($storeMock);
74 $this->model = new \Magento\Catalog\Model\ResourceModel\Product\Indexer\LinkedProductSelectBuilderByIndexPrice(
75 $this->storeManagerMock,
77 $this->customerSessionMock,
78 $this->metadataPoolMock,
79 $this->baseSelectProcessorMock,
80 $this->indexScopeResolverMock,
81 $this->dimensionFactoryMock
88 $metadata = $this->getMockBuilder(\
Magento\Framework\EntityManager\EntityMetadataInterface::class)
89 ->disableOriginalConstructor()
90 ->getMockForAbstractClass();
91 $connection = $this->getMockBuilder(\
Magento\Framework\DB\Adapter\AdapterInterface::class)
92 ->getMockForAbstractClass();
93 $select = $this->getMockBuilder(\
Magento\Framework\DB\Select::class)
94 ->disableOriginalConstructor()
96 $storeMock = $this->getMockBuilder(\
Magento\
Store\Api\Data\StoreInterface::class)
97 ->getMockForAbstractClass();
98 $this->storeManagerMock->expects($this->once())->method(
'getStore')->willReturn($storeMock);
99 $this->customerSessionMock->expects($this->once())->method(
'getCustomerGroupId')->willReturn(1);
101 $select->expects($this->any())->method(
'from')->willReturnSelf();
102 $select->expects($this->any())->method(
'joinInner')->willReturnSelf();
103 $select->expects($this->any())->method(
'where')->willReturnSelf();
104 $select->expects($this->exactly(2))->method(
'order')->willReturnSelf();
105 $select->expects($this->once())->method(
'limit')->willReturnSelf();
106 $this->resourceMock->expects($this->any())->method(
'getConnection')->willReturn(
$connection);
107 $this->metadataPoolMock->expects($this->once())->method(
'getMetadata')->willReturn($metadata);
108 $metadata->expects($this->once())->method(
'getLinkField')->willReturn(
'row_id');
109 $this->resourceMock->expects($this->any())->method(
'getTableName');
110 $this->baseSelectProcessorMock->expects($this->once())->method(
'process')->willReturnSelf();