Skip to content

Commit 5f05f4e

Browse files
oshmyheliukshiftedreality
authored andcommitted
MAGECLOUD-4269: Refactor ValidateConfiguration to pass string levels (magento#652)
1 parent 9e88440 commit 5f05f4e

File tree

5 files changed

+55
-7
lines changed

5 files changed

+55
-7
lines changed

scenario/build/generate.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,21 @@
66
<arguments>
77
<argument name="logger" xsi:type="object">Psr\Log\LoggerInterface</argument>
88
<argument name="validators" xsi:type="array">
9-
<item name="500" xsi:type="array">
9+
<item name="critical" xsi:type="array">
1010
<item name="composer" xsi:type="object" priority="100">Magento\MagentoCloud\Config\Validator\Build\ComposerFile</item>
1111
<item name="stage-config" xsi:type="object" priority="200">Magento\MagentoCloud\Config\Validator\Build\StageConfig</item>
1212
</item>
13-
<item name="300" xsi:type="array">
13+
<item name="warning" xsi:type="array">
1414
<item name="config-file-exists" xsi:type="object" priority="100">Magento\MagentoCloud\Config\Validator\Build\ConfigFileExists</item>
1515
<item name="deprecated-ini" xsi:type="object" priority="200">Magento\MagentoCloud\Config\Validator\Build\UnsupportedBuildOptionsIni</item>
1616
<item name="modules-exists" xsi:type="object" priority="300">Magento\MagentoCloud\Config\Validator\Build\ModulesExists</item>
1717
<item name="appropriate-version" xsi:type="object" priority="400">Magento\MagentoCloud\Config\Validator\Build\AppropriateVersion</item>
1818
<item name="scd-options-ignorance" xsi:type="object" priority="500">Magento\MagentoCloud\Config\Validator\Build\ScdOptionsIgnorance</item>
1919
<item name="ideal-state" xsi:type="object" priority="600">Magento\MagentoCloud\Config\Validator\IdealState</item>
2020
</item>
21+
<item name="notice" xsi:type="array">
22+
<item name="ideal-state" xsi:type="object" priority="600">Magento\MagentoCloud\Config\Validator\IdealState</item>
23+
</item>
2124
</argument>
2225
</arguments>
2326
</step>

scenario/deploy.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@
2121
<arguments>
2222
<argument name="logger" xsi:type="object">Psr\Log\LoggerInterface</argument>
2323
<argument name="validators" xsi:type="array">
24-
<item name="500" xsi:type="array">
24+
<item name="critical" xsi:type="array">
2525
<item name="database-configuration" xsi:type="object">Magento\MagentoCloud\Config\Validator\Deploy\DatabaseConfiguration</item>
2626
<item name="search-configuration" xsi:type="object">Magento\MagentoCloud\Config\Validator\Deploy\SearchConfiguration</item>
2727
<item name="resource-configuration" xsi:type="object">Magento\MagentoCloud\Config\Validator\Deploy\ResourceConfiguration</item>
2828
<item name="session-configuration" xsi:type="object">Magento\MagentoCloud\Config\Validator\Deploy\SessionConfiguration</item>
2929
<item name="elasticsuite-integrity" xsi:type="object">Magento\MagentoCloud\Config\Validator\Deploy\ElasticSuiteIntegrity</item>
3030
</item>
31-
<item name="300" xsi:type="array">
31+
<item name="warning" xsi:type="array">
3232
<item name="report-dir-nesting-level" xsi:type="object">Magento\MagentoCloud\Config\Validator\Deploy\ReportDirNestingLevel</item>
3333
<item name="admin-data" xsi:type="object">Magento\MagentoCloud\Config\Validator\Deploy\AdminData</item>
3434
<item name="php-version" xsi:type="object">Magento\MagentoCloud\Config\Validator\Deploy\PhpVersion</item>
@@ -43,7 +43,7 @@
4343
<item name="service-version" xsi:type="object">Magento\MagentoCloud\Config\Validator\Deploy\ServiceVersion</item>
4444
<item name="service-eol-warning" xsi:type="object">ServiceEol.Warnings</item>
4545
</item>
46-
<item name="250" xsi:type="array">
46+
<item name="notice" xsi:type="array">
4747
<item name="service-eol-notice" xsi:type="object">ServiceEol.Notices</item>
4848
</item>
4949
</argument>

scenario/post-deploy.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<arguments>
66
<argument name="logger" xsi:type="object">Psr\Log\LoggerInterface</argument>
77
<argument name="validators" xsi:type="array">
8-
<item name="300" xsi:type="array">
8+
<item name="warning" xsi:type="array">
99
<item name="debug-logging" xsi:type="object" priority="100">Magento\MagentoCloud\Config\Validator\Deploy\DebugLogging</item>
1010
</item>
1111
</argument>

src/Step/ValidateConfiguration.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
namespace Magento\MagentoCloud\Step;
99

10+
use Magento\MagentoCloud\App\Logger;
1011
use Magento\MagentoCloud\Config\Validator\Result\Error;
1112
use Magento\MagentoCloud\Config\ValidatorInterface;
1213
use Psr\Log\LoggerInterface;
@@ -64,7 +65,8 @@ public function execute()
6465
}
6566

6667
/**
67-
* Returns all validation messages grouped by validation level
68+
* Returns all validation messages grouped by validation level.
69+
* Converts validation level to integer value using @see Logger::toMonologLevel() method
6870
*
6971
* @return array
7072
*/
@@ -74,6 +76,7 @@ private function collectMessages(): array
7476

7577
/* @var $validators ValidatorInterface[] */
7678
foreach ($this->validators as $level => $validators) {
79+
$level = Logger::toMonologLevel($level);
7780
foreach ($validators as $name => $validator) {
7881
if (!$validator instanceof ValidatorInterface) {
7982
$this->logger->info(sprintf('Validator "%s" was skipped', $name));

src/Test/Unit/Step/ValidateConfigurationTest.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,48 @@ public function testExecuteWithWarningAndCriticalMessage()
146146
$step->execute();
147147
}
148148

149+
public function testExecuteTypeStringLevel()
150+
{
151+
$this->expectException(StepException::class);
152+
$this->expectExceptionMessage('Fix configuration with given suggestions');
153+
154+
$this->loggerMock->expects($this->once())
155+
->method('notice')
156+
->with('Validating configuration');
157+
$this->loggerMock->expects($this->exactly(2))
158+
->method('log')
159+
->withConsecutive(
160+
[
161+
Logger::NOTICE,
162+
'Fix configuration with given suggestions:'
163+
. PHP_EOL . '- some notice'
164+
. PHP_EOL . ' some notice suggestion'
165+
],
166+
[
167+
Logger::WARNING,
168+
'Fix configuration with given suggestions:'
169+
. PHP_EOL . '- some warning'
170+
. PHP_EOL . ' some warning suggestion'
171+
]
172+
);
173+
174+
$step = new ValidateConfiguration(
175+
$this->loggerMock,
176+
[
177+
'critical' => [
178+
$this->createValidatorWithError('Critical error', 'some critical suggestion'),
179+
],
180+
'warning' => [
181+
$this->createValidatorWithError('some warning', 'some warning suggestion'),
182+
],
183+
'notice' => [
184+
$this->createValidatorWithError('some notice', 'some notice suggestion'),
185+
],
186+
]
187+
);
188+
$step->execute();
189+
}
190+
149191
/**
150192
* @param string $error
151193
* @param string $suggestion

0 commit comments

Comments
 (0)