Skip to content

Commit ad0bc5f

Browse files
committed
MC-33394: Deliver major change Elasticsearch stories
- fix validation on upgrade
1 parent b8fb540 commit ad0bc5f

File tree

2 files changed

+22
-20
lines changed

2 files changed

+22
-20
lines changed

setup/src/Magento/Setup/Model/SearchConfig.php

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77

88
namespace Magento\Setup\Model;
99

10+
use Magento\Framework\ObjectManagerInterface;
1011
use Magento\Framework\Setup\Option\AbstractConfigOption;
1112
use Magento\Framework\Validation\ValidationException;
12-
use Magento\Search\Model\SearchEngine\Validator as SearchEngineValidator;
13-
use Magento\Search\Setup\CompositeInstallConfig as InstallConfig;
13+
use Magento\Search\Model\SearchEngine\Validator;
14+
use Magento\Search\Setup\CompositeInstallConfig;
1415
use Magento\Setup\Exception as SetupException;
1516

1617
/**
@@ -24,28 +25,20 @@ class SearchConfig
2425
private $searchConfigOptionsList;
2526

2627
/**
27-
* @var InstallConfig
28+
* @var ObjectManagerInterface
2829
*/
29-
private $installConfig;
30-
31-
/**
32-
* @var SearchEngineValidator
33-
*/
34-
private $searchValidator;
30+
private $objectManager;
3531

3632
/**
33+
* @param ObjectManagerInterface $objectManager
3734
* @param SearchConfigOptionsList $searchConfigOptionsList
38-
* @param InstallConfig $installConfig
39-
* @param SearchEngineValidator $searchValidator
4035
*/
4136
public function __construct(
42-
SearchConfigOptionsList $searchConfigOptionsList,
43-
InstallConfig $installConfig,
44-
SearchEngineValidator $searchValidator
37+
ObjectManagerInterface $objectManager,
38+
SearchConfigOptionsList $searchConfigOptionsList
4539
) {
40+
$this->objectManager = $objectManager;
4641
$this->searchConfigOptionsList = $searchConfigOptionsList;
47-
$this->installConfig = $installConfig;
48-
$this->searchValidator = $searchValidator;
4942
}
5043

5144
/**
@@ -62,7 +55,9 @@ public function saveConfiguration(array $inputOptions)
6255
$this->validateSearchEngineSelection($searchConfigOptions);
6356
}
6457
try {
65-
$this->installConfig->configure($searchConfigOptions);
58+
/** @var CompositeInstallConfig $installConfig */
59+
$installConfig = $this->objectManager->get(CompositeInstallConfig::class);
60+
$installConfig->configure($searchConfigOptions);
6661
} catch (\Exception $e) {
6762
throw new SetupException($e->getMessage());
6863
}
@@ -77,7 +72,9 @@ public function saveConfiguration(array $inputOptions)
7772
*/
7873
public function validateSearchEngine(array $config = [])
7974
{
80-
$validationErrors = $this->searchValidator->validate($config);
75+
/** @var Validator $searchValidator */
76+
$searchValidator = $this->objectManager->get(Validator::class);
77+
$validationErrors = $searchValidator->validate($config);
8178
if (!empty($validationErrors)) {
8279
throw new ValidationException(__(implode(PHP_EOL, $validationErrors)));
8380
}

setup/src/Magento/Setup/Test/Unit/Model/SearchConfigTest.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
namespace Magento\Setup\Test\Unit\Model;
99

10+
use Magento\Framework\ObjectManagerInterface;
1011
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1112
use Magento\Search\Model\SearchEngine\Validator;
1213
use Magento\Search\Setup\CompositeInstallConfig;
@@ -45,15 +46,19 @@ protected function setUp()
4546
$this->searchEngineValidatorMock = $this->getMockBuilder(Validator::class)
4647
->disableOriginalConstructor()
4748
->getMock();
49+
$objectManagerMock = $this->getMockForAbstractClass(ObjectManagerInterface::class);
50+
$objectManagerMock->expects($this->any())->method('get')->willReturnMap([
51+
[CompositeInstallConfig::class, $this->installConfigMock],
52+
[Validator::class, $this->searchEngineValidatorMock]
53+
]);
4854

4955
$objectManager = new ObjectManager($this);
5056
$this->searchConfigOptionsList = $objectManager->getObject(SearchConfigOptionsList::class);
5157
$this->searchConfig = $objectManager->getObject(
5258
SearchConfig::class,
5359
[
60+
'objectManager' => $objectManagerMock,
5461
'searchConfigOptionsList' => $this->searchConfigOptionsList,
55-
'installConfig' => $this->installConfigMock,
56-
'searchValidator' =>$this->searchEngineValidatorMock
5762
]
5863
);
5964
}

0 commit comments

Comments
 (0)