31 private $adapterFactory;
36 private $indexStructure;
41 private $indexNameResolver;
51 private $scopeResolver;
56 private $scopeInterface;
65 $this->adapter = $this->getMockBuilder(\
Magento\Elasticsearch\Model\Adapter\Elasticsearch::class)
66 ->disableOriginalConstructor()
69 $this->adapterFactory = $this->getMockBuilder(\
Magento\Elasticsearch\Model\Adapter\ElasticsearchFactory::class)
70 ->disableOriginalConstructor()
71 ->setMethods([
'create'])
74 $this->adapterFactory->expects($this->any())
76 ->willReturn($this->adapter);
78 $this->batch = $this->getMockBuilder(\
Magento\Framework\Indexer\SaveHandler\Batch::class)
79 ->disableOriginalConstructor()
82 $this->indexStructure = $this->getMockBuilder(\
Magento\Framework\Indexer\IndexStructureInterface::class)
83 ->disableOriginalConstructor()
86 $this->indexNameResolver = $this->getMockBuilder(
87 \
Magento\Elasticsearch\Model\Adapter\Index\IndexNameResolver::class
89 ->disableOriginalConstructor()
92 $this->client = $this->getMockBuilder(\
Magento\Elasticsearch\Model\Client\Elasticsearch::class)
93 ->setMethods([
'ping'])
94 ->disableOriginalConstructor()
97 $this->scopeResolver = $this->getMockForAbstractClass(
98 \
Magento\Framework\
App\ScopeResolverInterface::class,
104 $this->scopeInterface = $this->getMockForAbstractClass(
114 \
Magento\Elasticsearch\Model\Indexer\IndexerHandler::class,
116 'indexStructure' => $this->indexStructure,
117 'adapter' => $this->adapter,
118 'indexNameResolver' => $this->indexNameResolver,
119 'batch' => $this->batch,
120 'data' => [
'indexer_id' =>
'catalogsearch_fulltext'],
122 'scopeResolver' => $this->scopeResolver
129 $this->adapter->expects($this->any())
133 $this->client->expects($this->any())
137 $result = $this->model->isAvailable();
147 $dimension = $this->getMockBuilder(\
Magento\Framework\Search\Request\Dimension::class)
148 ->disableOriginalConstructor()
150 $dimension->expects($this->once())
152 ->willReturn($dimensionValue);
153 $this->scopeResolver->expects($this->once())
155 ->willReturn($this->scopeInterface);
156 $this->scopeInterface->expects($this->once())
158 ->willReturn($dimensionValue);
160 $result = $this->model->deleteIndex([$dimension],
new \ArrayIterator([$documentId]));
162 $this->assertEquals($this->model,
$result);
169 $documents = new \ArrayIterator([$documentId]);
171 $dimension = $this->getMockBuilder(\
Magento\Framework\Search\Request\Dimension::class)
172 ->disableOriginalConstructor()
174 $dimension->expects($this->once())
176 ->willReturn($dimensionValue);
178 $this->batch->expects($this->once())
180 ->with($documents, 500)
183 $this->adapter->expects($this->once())
184 ->method(
'prepareDocsPerStore')
185 ->with([], $dimensionValue)
186 ->willReturn([$documentId]);
187 $this->adapter->expects($this->once())
189 ->with([$documentId]);
190 $this->scopeResolver->expects($this->once())
192 ->willReturn($this->scopeInterface);
193 $this->scopeInterface->expects($this->once())
195 ->willReturn($dimensionValue);
197 $result = $this->model->saveIndex([$dimension], $documents);
199 $this->assertEquals($this->model,
$result);
207 $dimensionValue =
'SomeDimension';
209 $dimension = $this->getMockBuilder(\
Magento\Framework\Search\Request\Dimension::class)
210 ->disableOriginalConstructor()
212 $dimension->expects($this->any())
214 ->willReturn($dimensionValue);
216 $this->adapter->expects($this->any())
217 ->method(
'cleanIndex');
219 $result = $this->model->cleanIndex([$dimension]);
221 $this->assertEquals($this->model,
$result);
231 \
Magento\Elasticsearch\Model\Indexer\IndexerHandler::class,
233 'adapterFactory' => $this->adapterFactory,
234 'batch' => $this->batch,
235 'data' => [
'indexer_id' =>
'else_indexer_id'],
238 $dimensionValue =
'SomeDimension';
240 $dimension = $this->getMockBuilder(\
Magento\Framework\Search\Request\Dimension::class)
241 ->disableOriginalConstructor()
243 $dimension->expects($this->any())
245 ->willReturn($dimensionValue);
247 $this->adapter->expects($this->any())
248 ->method(
'cleanIndex');
250 $result = $model->cleanIndex([$dimension]);
252 $this->assertEquals($model,
$result);
testCleanIndexCatalogSearchFullText()