Skip to content

Commit 6a121d6

Browse files
committed
MQE-2247: Implement additional <section> and <operation> entity use cases in SVC tool
Added use case for parameterized attribute added
1 parent e0a2c03 commit 6a121d6

File tree

6 files changed

+52
-4
lines changed

6 files changed

+52
-4
lines changed

src/Analyzer/Mftf/SectionAnalyzer.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class SectionAnalyzer extends AbstractEntityAnalyzer
2424
const MFTF_ELEMENT_ELEMENT = "{}element";
2525
const MFTF_DATA_TYPE = 'section';
2626
const MFTF_DATA_DIRECTORY = '/Mftf/Section/';
27+
const MFTF_ELEMENT_PARAM = 'parameterized';
2728

2829
/**
2930
* operations array
@@ -34,7 +35,7 @@ class SectionAnalyzer extends AbstractEntityAnalyzer
3435
AbstractEntityAnalyzer::DEFAULT_OPERATION_KEY => SectionElementChanged::class,
3536
'selector' => SectionElementSelectorChanged::class,
3637
'type' => SectionElementTypeChanged::class,
37-
'parameterized' => SectionElementParameterizedChanged::class
38+
self::MFTF_ELEMENT_PARAM => SectionElementParameterizedChanged::class
3839
];
3940

4041
/**
@@ -109,6 +110,20 @@ public function analyze(Registry $registryBefore, Registry $registryAfter)
109110
self::$operations,
110111
"$operationTarget/$beforeFieldKey"
111112
);
113+
114+
// validate parameterized added
115+
$beforeAttributes = $beforeField['attributes'];
116+
$afterAttributes = $matchingElement['attributes'];
117+
118+
if (isset($afterAttributes[self::MFTF_ELEMENT_PARAM])) {
119+
if (!isset($beforeAttributes[self::MFTF_ELEMENT_PARAM])) {
120+
$operation = new SectionElementParameterizedChanged(
121+
$filenames,
122+
"$operationTarget/$beforeFieldKey/". self::MFTF_ELEMENT_PARAM
123+
);
124+
$this->getReport()->add(MftfReport::MFTF_REPORT_CONTEXT, $operation);
125+
}
126+
}
112127
}
113128
}
114129
$this->findAddedElementsInArray(

tests/Unit/Console/Command/CompareSourceCommandMftfTest.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -442,9 +442,18 @@ public function changesDataProvider()
442442
],
443443
'Patch change is detected.'
444444
],
445-
'section-element-parameterized-changed' => [
446-
$pathToFixtures . '/section-element-parameterized-changed/source-code-before',
447-
$pathToFixtures . '/section-element-parameterized-changed/source-code-after',
445+
'section-element-parameterized-added' => [
446+
$pathToFixtures . '/section-element-parameterized-added/source-code-before',
447+
$pathToFixtures . '/section-element-parameterized-added/source-code-after',
448+
[
449+
'Mftf (MAJOR)',
450+
'Section/SampleSection/element1/parameterized | <section> <element> parameterized was changed | M250'
451+
],
452+
'Major change is detected.'
453+
],
454+
'section-element-parameterized-removed' => [
455+
$pathToFixtures . '/section-element-parameterized-removed/source-code-before',
456+
$pathToFixtures . '/section-element-parameterized-removed/source-code-after',
448457
[
449458
'Mftf (MAJOR)',
450459
'Section/SampleSection/element1/parameterized | <section> <element> parameterized was changed | M250'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
9+
<section name="SampleSection">
10+
<element name="element1" type="block" selector="span:nth-of-type({{var}})"/>
11+
</section>
12+
</sections>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
9+
<section name="SampleSection">
10+
<element name="element1" type="block" selector="span:nth-of-type({{var}})" parameterized="true"/>
11+
</section>
12+
</sections>

0 commit comments

Comments
 (0)