23 private $objectManagerHelper;
28 private $dependencyDecorator;
38 private $dependencyInfoProviderMock;
43 private $indexerRegistryMock;
50 $this->objectManagerHelper =
new ObjectManagerHelper($this);
52 $this->indexerMock = $this->getMockBuilder(IndexerInterface::class)
53 ->getMockForAbstractClass();
55 $this->dependencyInfoProviderMock = $this->getMockBuilder(DependencyInfoProviderInterface::class)
56 ->getMockForAbstractClass();
58 $this->indexerRegistryMock = $this->getMockBuilder(IndexerRegistry::class)
59 ->disableOriginalConstructor()
62 $this->dependencyDecorator = $this->objectManagerHelper->getObject(
63 DependencyDecorator::class,
65 'indexer' => $this->indexerMock,
66 'dependencyInfoProvider' => $this->dependencyInfoProviderMock,
67 'indexerRegistry' => $this->indexerRegistryMock,
80 $indexerMock = $this->getMockBuilder(Indexer::class)
81 ->disableOriginalConstructor()
83 $dependencyDecorator = $this->objectManagerHelper->getObject(
84 DependencyDecorator::class,
86 'indexer' => $indexerMock,
87 'dependencyInfoProvider' => $this->dependencyInfoProviderMock,
88 'indexerRegistry' => $this->indexerRegistryMock,
92 ->expects($this->once())
96 $this->assertSame(
$result, $dependencyDecorator->{$methodName}(...$params));
105 [
'getData', [], [
'field_id' =>
'field_value']],
106 [
'setId', [
'newId'],
true]
118 ->expects($this->once())
119 ->method($methodName)
122 $this->assertSame(
$result, $this->dependencyDecorator->{$methodName}());
131 [
'getId',
'indexer_1'],
132 [
'getViewId',
'view1'],
133 [
'getActionClass',
'className'],
134 [
'getDescription',
'some_text'],
135 [
'getFields', [
'one',
'two']],
136 [
'getSources', [
'one',
'two']],
137 [
'getHandlers', [
'one',
'two']],
138 [
'getView', $this->getMockBuilder(View::class)->disableOriginalConstructor()->getMock()],
139 [
'getState', $this->getMockBuilder(StateInterface::class)->getMockForAbstractClass()],
140 [
'isScheduled',
true],
144 [
'getStatus',
'valid'],
145 [
'getLatestUpdated',
'42'],
157 ->expects($this->once())
158 ->method($methodName)
160 $this->assertEmpty($this->dependencyDecorator->{$methodName}(...$params));
169 [
'setScheduled', [
true]],
181 ->expects($this->once())
182 ->method($methodName)
184 $this->assertEquals($this->dependencyDecorator, $this->dependencyDecorator->{$methodName}(...$params));
196 $this->getMockBuilder(StateInterface::class)
197 ->getMockForAbstractClass()
200 [
'load', [
'indexer_1']],
207 ->expects($this->once())
208 ->method(
'reindexAll')
210 $this->dependencyDecorator->reindexAll();
215 $indexerId =
'indexer_1';
216 $dependentIds = [
'indexer_2',
'indexer_3'];
218 foreach ($dependentIds as $dependentId) {
221 ->method(
'invalidate');
222 $calls[] = [$dependentId,
$indexer];
225 ->expects($this->once())
226 ->method(
'invalidate')
230 ->willReturn($indexerId);
231 $this->dependencyInfoProviderMock
232 ->expects($this->once())
233 ->method(
'getIndexerIdsToRunAfter')
235 ->willReturn($dependentIds);
236 $this->indexerRegistryMock
237 ->expects($this->exactly(count($dependentIds)))
239 ->willReturnMap($calls);
240 $this->dependencyDecorator->invalidate();
246 $indexerId =
'indexer_1';
247 $dependentIds = [
'indexer_2',
'indexer_3'];
249 foreach ($dependentIds as $dependentId) {
252 ->method(
'reindexRow')
254 $calls[] = [$dependentId,
$indexer];
257 ->expects($this->once())
258 ->method(
'reindexRow')
262 ->willReturn($indexerId);
263 $this->dependencyInfoProviderMock
264 ->expects($this->once())
265 ->method(
'getIndexerIdsToRunAfter')
267 ->willReturn($dependentIds);
268 $this->indexerRegistryMock
269 ->expects($this->exactly(count($dependentIds)))
271 ->willReturnMap($calls);
272 $this->dependencyDecorator->reindexRow($inputId);
277 $inputIds = [100200, 100300];
278 $indexerId =
'indexer_1';
279 $dependentIds = [
'indexer_2',
'indexer_3'];
281 foreach ($dependentIds as $dependentId) {
284 ->method(
'reindexList')
286 $calls[] = [$dependentId,
$indexer];
289 ->expects($this->once())
290 ->method(
'reindexList')
294 ->willReturn($indexerId);
295 $this->dependencyInfoProviderMock
296 ->expects($this->once())
297 ->method(
'getIndexerIdsToRunAfter')
299 ->willReturn($dependentIds);
300 $this->indexerRegistryMock
301 ->expects($this->exactly(count($dependentIds)))
303 ->willReturnMap($calls);
304 $this->dependencyDecorator->reindexList($inputIds);
310 private function getIndexerMock()
312 $indexer = $this->getMockBuilder(IndexerInterface::class)
313 ->getMockForAbstractClass();
testTransitMethods(string $methodName, $result)
testOverload(string $methodName, array $params=[], $result=null)
transitMethodsWithParamsAndEmptyReturnDataProvider()
testTransitMethodsWithParamsAndEmptyReturn(string $methodName, array $params)
transitMethodsWithParamsAndSelfReturnDataProvider()
testTransitMethodsWithParamsAndSelfReturn(string $methodName, array $params)
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
transitMethodsDataProvider()