Skip to content

Commit 3d78f2b

Browse files
authored
Merge pull request #5575 from magento-architects/external-dependency-test
[architects] ECP-516: External Dependency Static Test
2 parents ea7af78 + 90e2924 commit 3d78f2b

File tree

21 files changed

+432
-462
lines changed

21 files changed

+432
-462
lines changed

app/code/Magento/AsynchronousOperations/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
},
77
"require": {
88
"magento/framework": "*",
9+
"magento/framework-message-queue": "*",
910
"magento/framework-bulk": "*",
1011
"magento/module-authorization": "*",
1112
"magento/module-backend": "*",

app/code/Magento/MediaStorage/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"require": {
88
"php": "~7.1.3||~7.2.0||~7.3.0",
99
"magento/framework": "*",
10+
"magento/framework-bulk": "*",
1011
"magento/module-backend": "*",
1112
"magento/module-config": "*",
1213
"magento/module-store": "*",

app/code/Magento/MessageQueue/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
},
77
"require": {
88
"magento/framework": "*",
9+
"magento/framework-message-queue": "*",
910
"magento/magento-composer-installer": "*",
1011
"php": "~7.1.3||~7.2.0||~7.3.0"
1112
},

app/code/Magento/MysqlMq/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
},
77
"require": {
88
"magento/framework": "*",
9+
"magento/framework-message-queue": "*",
910
"magento/magento-composer-installer": "*",
1011
"magento/module-store": "*",
1112
"php": "~7.1.3||~7.2.0||~7.3.0"

app/code/Magento/WebapiAsync/composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"require": {
88
"php": "~7.1.3||~7.2.0||~7.3.0",
99
"magento/framework": "*",
10+
"magento/framework-message-queue": "*",
1011
"magento/module-webapi": "*",
1112
"magento/module-asynchronous-operations": "*"
1213
},

dev/tests/static/framework/Magento/TestFramework/Dependency/AnalyticsConfigRule.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function getDependencyInfo($currentModule, $fileType, $file, &$contents)
3030
$module = implode('\\', array_slice($classParts, 0, 2));
3131
if (strtolower($currentModule) !== strtolower($module)) {
3232
$dependenciesInfo[] = [
33-
'module' => $module,
33+
'modules' => [$module],
3434
'type' => RuleInterface::TYPE_HARD,
3535
'source' => $file,
3636
];

dev/tests/static/framework/Magento/TestFramework/Dependency/DbRule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public function getDependencyInfo($currentModule, $fileType, $file, &$contents)
5252
}
5353
if (strtolower($currentModule) !== strtolower($this->_moduleTableMap[$table])) {
5454
$dependenciesInfo[] = [
55-
'module' => $this->_moduleTableMap[$table],
55+
'modules' => [$this->_moduleTableMap[$table]],
5656
'type' => \Magento\TestFramework\Dependency\RuleInterface::TYPE_HARD,
5757
'source' => $table,
5858
];
@@ -61,7 +61,7 @@ public function getDependencyInfo($currentModule, $fileType, $file, &$contents)
6161
}
6262
foreach ($unKnowTables as $tables) {
6363
foreach ($tables as $table) {
64-
$dependenciesInfo[] = ['module' => 'Unknown', 'source' => $table];
64+
$dependenciesInfo[] = ['modules' => ['Unknown'], 'source' => $table];
6565
}
6666
}
6767
return $dependenciesInfo;

dev/tests/static/framework/Magento/TestFramework/Dependency/DiRule.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public function getDependencyInfo($currentModule, $fileType, $file, &$contents)
9393
continue;
9494
}
9595
$dependenciesInfo[] = [
96-
'module' => $referenceModule,
96+
'modules' => [$referenceModule],
9797
'type' => $type,
9898
'source' => $matches['class'],
9999
];

dev/tests/static/framework/Magento/TestFramework/Dependency/LayoutRule.php

Lines changed: 51 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ public function getDependencyInfo($currentModule, $fileType, $file, &$contents)
133133
*
134134
* Ex.: <element module="{module}">
135135
*
136-
* @param $currentModule
137-
* @param $contents
136+
* @param string $currentModule
137+
* @param string $contents
138138
* @return array
139139
*/
140140
protected function _caseAttributeModule($currentModule, &$contents)
@@ -154,8 +154,8 @@ protected function _caseAttributeModule($currentModule, &$contents)
154154
* Ex.: <block class="{name}">
155155
* <block template="{path}">
156156
*
157-
* @param $currentModule
158-
* @param $contents
157+
* @param string $currentModule
158+
* @param string $contents
159159
* @return array
160160
*/
161161
protected function _caseElementBlock($currentModule, &$contents)
@@ -182,8 +182,8 @@ protected function _caseElementBlock($currentModule, &$contents)
182182
* <file>{path}
183183
* <element helper="{name}">
184184
*
185-
* @param $currentModule
186-
* @param $contents
185+
* @param string $currentModule
186+
* @param string $contents
187187
* @return array
188188
*/
189189
protected function _caseElementAction($currentModule, &$contents)
@@ -218,9 +218,9 @@ protected function _caseElementAction($currentModule, &$contents)
218218
*
219219
* Ex.: <layout><{name}>...</layout>
220220
*
221-
* @param $currentModule
222-
* @param $file
223-
* @param $contents
221+
* @param string $currentModule
222+
* @param string $file
223+
* @param string $contents
224224
* @return array
225225
*/
226226
protected function _caseLayoutHandle($currentModule, $file, &$contents)
@@ -235,11 +235,8 @@ protected function _caseLayoutHandle($currentModule, $file, &$contents)
235235
$result = [];
236236
foreach ((array)$xml->xpath('/layout/child::*') as $element) {
237237
$check = $this->_checkDependencyLayoutHandle($currentModule, $area, $element->getName());
238-
$modules = isset($check['module']) ? $check['module'] : null;
238+
$modules = isset($check['modules']) ? $check['modules'] : null;
239239
if ($modules) {
240-
if (!is_array($modules)) {
241-
$modules = [$modules];
242-
}
243240
foreach ($modules as $module) {
244241
$result[$module] = [
245242
'type' => \Magento\Test\Integrity\DependencyTest::TYPE_SOFT,
@@ -256,9 +253,9 @@ protected function _caseLayoutHandle($currentModule, $file, &$contents)
256253
*
257254
* Ex.: <layout_name parent="{name}">
258255
*
259-
* @param $currentModule
260-
* @param $file
261-
* @param $contents
256+
* @param string $currentModule
257+
* @param string $file
258+
* @param string $contents
262259
* @return array
263260
*/
264261
protected function _caseLayoutHandleParent($currentModule, $file, &$contents)
@@ -273,11 +270,8 @@ protected function _caseLayoutHandleParent($currentModule, $file, &$contents)
273270
$result = [];
274271
foreach ((array)$xml->xpath('/layout/child::*/@parent') as $element) {
275272
$check = $this->_checkDependencyLayoutHandle($currentModule, $area, (string)$element);
276-
$modules = isset($check['module']) ? $check['module'] : null;
273+
$modules = isset($check['modules']) ? $check['modules'] : null;
277274
if ($modules) {
278-
if (!is_array($modules)) {
279-
$modules = [$modules];
280-
}
281275
foreach ($modules as $module) {
282276
$result[$module] = [
283277
'type' => \Magento\Test\Integrity\DependencyTest::TYPE_HARD,
@@ -294,9 +288,9 @@ protected function _caseLayoutHandleParent($currentModule, $file, &$contents)
294288
*
295289
* Ex.: <update handle="{name}" />
296290
*
297-
* @param $currentModule
298-
* @param $file
299-
* @param $contents
291+
* @param string $currentModule
292+
* @param string $file
293+
* @param string $contents
300294
* @return array
301295
*/
302296
protected function _caseLayoutHandleUpdate($currentModule, $file, &$contents)
@@ -311,11 +305,8 @@ protected function _caseLayoutHandleUpdate($currentModule, $file, &$contents)
311305
$result = [];
312306
foreach ((array)$xml->xpath('//update/@handle') as $element) {
313307
$check = $this->_checkDependencyLayoutHandle($currentModule, $area, (string)$element);
314-
$modules = isset($check['module']) ? $check['module'] : null;
308+
$modules = isset($check['modules']) ? $check['modules'] : null;
315309
if ($modules) {
316-
if (!is_array($modules)) {
317-
$modules = [$modules];
318-
}
319310
foreach ($modules as $module) {
320311
$result[$module] = [
321312
'type' => \Magento\Test\Integrity\DependencyTest::TYPE_SOFT,
@@ -332,9 +323,9 @@ protected function _caseLayoutHandleUpdate($currentModule, $file, &$contents)
332323
*
333324
* Ex.: <reference name="{name}">
334325
*
335-
* @param $currentModule
336-
* @param $file
337-
* @param $contents
326+
* @param string $currentModule
327+
* @param string $file
328+
* @param string $contents
338329
* @return array
339330
*/
340331
protected function _caseLayoutReference($currentModule, $file, &$contents)
@@ -349,12 +340,14 @@ protected function _caseLayoutReference($currentModule, $file, &$contents)
349340
$result = [];
350341
foreach ((array)$xml->xpath('//reference/@name') as $element) {
351342
$check = $this->_checkDependencyLayoutBlock($currentModule, $area, (string)$element);
352-
$module = isset($check['module']) ? $check['module'] : null;
353-
if ($module) {
354-
$result[$module] = [
355-
'type' => \Magento\TestFramework\Dependency\RuleInterface::TYPE_SOFT,
356-
'source' => (string)$element,
357-
];
343+
$modules = isset($check['modules']) ? $check['modules'] : null;
344+
if ($modules) {
345+
foreach ($modules as $module) {
346+
$result[$module] = [
347+
'type' => \Magento\Test\Integrity\DependencyTest::TYPE_SOFT,
348+
'source' => (string)$element,
349+
];
350+
}
358351
}
359352
}
360353
return $this->_getUniqueDependencies($result);
@@ -363,8 +356,8 @@ protected function _caseLayoutReference($currentModule, $file, &$contents)
363356
/**
364357
* Search dependencies by defined regexp patterns
365358
*
366-
* @param $currentModule
367-
* @param $contents
359+
* @param string $currentModule
360+
* @param string $contents
368361
* @param array $patterns
369362
* @return array
370363
*/
@@ -390,14 +383,14 @@ protected function _checkDependenciesByRegexp($currentModule, &$contents, $patte
390383
* Check layout handle dependency
391384
*
392385
* Return: array(
393-
* 'module' // dependent module
386+
* 'modules' // dependent modules
394387
* 'source' // source text
395388
* )
396389
*
397-
* @param $currentModule
398-
* @param $area
399-
* @param $handle
400-
* @return array
390+
* @param admin $currentModule
391+
* @param string $area
392+
* @param string $handle
393+
* @return string[]
401394
*/
402395
protected function _checkDependencyLayoutHandle($currentModule, $area, $handle)
403396
{
@@ -411,26 +404,26 @@ protected function _checkDependencyLayoutHandle($currentModule, $area, $handle)
411404
// CASE 1: Single dependency
412405
$modules = $this->_mapRouters[$router];
413406
if (!in_array($currentModule, $modules)) {
414-
return ['module' => $modules];
407+
return ['modules' => $modules];
415408
}
416409
}
417410

418411
if (isset($this->_mapLayoutHandles[$area][$handle])) {
419412
// CASE 2: No dependencies
420413
$modules = $this->_mapLayoutHandles[$area][$handle];
421414
if (isset($modules[$currentModule])) {
422-
return ['module' => null];
415+
return ['modules' => []];
423416
}
424417

425418
// CASE 3: Single dependency
426419
if (1 == count($modules)) {
427-
return ['module' => current($modules)];
420+
return ['modules' => $modules];
428421
}
429422

430423
// CASE 4: Default module dependency
431424
$defaultModule = $this->_getDefaultModuleName($area);
432425
if (isset($modules[$defaultModule])) {
433-
return ['module' => $defaultModule];
426+
return ['modules' => [$defaultModule]];
434427
}
435428
}
436429

@@ -441,33 +434,33 @@ protected function _checkDependencyLayoutHandle($currentModule, $area, $handle)
441434
* Check layout block dependency
442435
*
443436
* Return: array(
444-
* 'module' // dependent module
437+
* 'modules' // dependent modules
445438
* 'source' // source text
446439
* )
447440
*
448-
* @param $currentModule
449-
* @param $area
450-
* @param $block
451-
* @return array
441+
* @param string $currentModule
442+
* @param string $area
443+
* @param string $block
444+
* @return string[]
452445
*/
453446
protected function _checkDependencyLayoutBlock($currentModule, $area, $block)
454447
{
455448
if (isset($this->_mapLayoutBlocks[$area][$block])) {
456449
// CASE 1: No dependencies
457450
$modules = $this->_mapLayoutBlocks[$area][$block];
458451
if (isset($modules[$currentModule])) {
459-
return ['module' => null];
452+
return ['modules' => []];
460453
}
461454

462455
// CASE 2: Single dependency
463456
if (1 == count($modules)) {
464-
return ['module' => current($modules)];
457+
return ['modules' => $modules];
465458
}
466459

467460
// CASE 3: Default module dependency
468461
$defaultModule = $this->_getDefaultModuleName($area);
469462
if (isset($modules[$defaultModule])) {
470-
return ['module' => $defaultModule];
463+
return ['modules' => [$defaultModule]];
471464
}
472465
}
473466
return [];
@@ -476,7 +469,7 @@ protected function _checkDependencyLayoutBlock($currentModule, $area, $block)
476469
/**
477470
* Get area from file path
478471
*
479-
* @param $file
472+
* @param string $file
480473
* @return string
481474
*/
482475
protected function _getAreaByFile($file)
@@ -498,7 +491,7 @@ protected function _getUniqueDependencies($dependencies = [])
498491
{
499492
$result = [];
500493
foreach ($dependencies as $module => $value) {
501-
$result[] = ['module' => $module, 'type' => $value['type'], 'source' => $value['source']];
494+
$result[] = ['modules' => [$module], 'type' => $value['type'], 'source' => $value['source']];
502495
}
503496
return $result;
504497
}
@@ -507,7 +500,7 @@ protected function _getUniqueDependencies($dependencies = [])
507500
* Retrieve default module name (by area)
508501
*
509502
* @param string $area
510-
* @return null
503+
* @return string|null
511504
*/
512505
protected function _getDefaultModuleName($area = 'default')
513506
{

0 commit comments

Comments
 (0)