Skip to content

Commit 34f827d

Browse files
committed
MQE:171 Update xml schema and references for data operations
1 parent 3980852 commit 34f827d

File tree

4 files changed

+56
-23
lines changed

4 files changed

+56
-23
lines changed

etc/di.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@
155155
</virtualType>
156156
<virtualType name="Magento\AcceptanceTestFramework\Config\SchemaLocator\DataProfile" type="Magento\AcceptanceTestFramework\Config\SchemaLocator">
157157
<arguments>
158-
<argument name="schemaPath" xsi:type="string">Magento/AcceptanceTestFramework/DataGenerator/etc/DataProfileSchema.xsd</argument>
158+
<argument name="schemaPath" xsi:type="string">Magento/AcceptanceTestFramework/DataGenerator/etc/dataProfileSchema.xsd</argument>
159159
</arguments>
160160
</virtualType>
161161
<virtualType name="Magento\AcceptanceTestFramework\Config\Reader\DataProfile" type="Magento\AcceptanceTestFramework\Config\Reader\Filesystem">
@@ -174,7 +174,7 @@
174174
</arguments>
175175
</virtualType>
176176

177-
<!-- Configuration for Metadata.xml -->
177+
<!-- Configuration for Data Operation Metadata.xml -->
178178

179179
<type name="Magento\AcceptanceTestFramework\DataGenerator\Parsers\MetadataParser">
180180
<arguments>
@@ -188,7 +188,7 @@
188188
</virtualType>
189189
<virtualType name="Magento\AcceptanceTestFramework\Config\SchemaLocator\Metadata" type="Magento\AcceptanceTestFramework\Config\SchemaLocator">
190190
<arguments>
191-
<argument name="schemaPath" xsi:type="string">Magento/AcceptanceTestFramework/DataGenerator/etc/EntityMetadata.xsd</argument>
191+
<argument name="schemaPath" xsi:type="string">Magento/AcceptanceTestFramework/DataGenerator/etc/dataOperation.xsd</argument>
192192
</arguments>
193193
</virtualType>
194194
<virtualType name="Magento\AcceptanceTestFramework\Config\Reader\Metadata" type="Magento\AcceptanceTestFramework\Config\Reader\Filesystem">

src/Magento/AcceptanceTestFramework/DataGenerator/Managers/JsonDefinitionManager.php

Lines changed: 51 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,27 @@ class JsonDefinitionManager
1212
private static $jsonDefinitionManager;
1313
private $jsonDefinitions;
1414

15+
const ENTITY_OPERATION_ROOT_TAG = 'operation';
16+
const ENTITY_OPERATION_TYPE = 'type';
17+
const ENTITY_OPERATION_DATA_TYPE = 'dataType';
18+
const ENTITY_OPERATION_URL = 'url';
19+
const ENTITY_OPERATION_METHOD = 'method';
20+
const ENTITY_OPERATION_AUTH = 'auth';
21+
const ENTITY_OPERATION_HEADER = 'header';
22+
const ENTITY_OPERATION_HEADER_PARAM = 'param';
23+
const ENTITY_OPERATION_HEADER_VALUE = 'value';
24+
const ENTITY_OPERATION_URL_PARAM = 'param';
25+
const ENTITY_OPERATION_URL_PARAM_TYPE = 'type';
26+
const ENTITY_OPERATION_URL_PARAM_KEY = 'key';
27+
const ENTITY_OPERATION_URL_PARAM_VALUE = 'value';
28+
const ENTITY_OPERATION_ENTRY = 'entry';
29+
const ENTITY_OPERATION_ENTRY_KEY = 'key';
30+
const ENTITY_OPERATION_ENTRY_VALUE = 'value';
31+
const ENTITY_OPERATION_ARRAY = 'array';
32+
const ENTITY_OPERATION_ARRAY_KEY = 'key';
33+
const ENTITY_OPERATION_ARRAY_VALUE = 'value';
34+
35+
1536
public static function getInstance()
1637
{
1738
if (!self::$jsonDefinitionManager) {
@@ -30,37 +51,49 @@ private function getObjects()
3051
{
3152
$objectManager = ObjectManagerFactory::getObjectManager();
3253
$metadataParser = $objectManager->create(MetadataParser::class);
33-
foreach ($metadataParser->readMetadata()['metadata'] as $jsonDefName => $jsonDefArray) {
34-
$operation = $jsonDefArray['operation'];
35-
$dataType = $jsonDefArray['dataType'];
36-
$url = $jsonDefArray['url'] ?? null;
37-
$method = $jsonDefArray['method'] ?? null;
38-
$auth = $jsonDefArray['auth'] ?? null;
54+
foreach ($metadataParser->readMetadata()[JsonDefinitionManager::ENTITY_OPERATION_ROOT_TAG] as
55+
$jsonDefName => $jsonDefArray) {
56+
$operation = $jsonDefArray[JsonDefinitionManager::ENTITY_OPERATION_TYPE];
57+
$dataType = $jsonDefArray[JsonDefinitionManager::ENTITY_OPERATION_DATA_TYPE];
58+
$url = $jsonDefArray[JsonDefinitionManager::ENTITY_OPERATION_URL] ?? null;
59+
$method = $jsonDefArray[JsonDefinitionManager::ENTITY_OPERATION_METHOD] ?? null;
60+
$auth = $jsonDefArray[JsonDefinitionManager::ENTITY_OPERATION_AUTH] ?? null;
3961
$headers = [];
4062
$params = [];
4163
$jsonMetadata = [];
4264

43-
if (array_key_exists('header', $jsonDefArray)) {
44-
foreach ($jsonDefArray['header'] as $headerEntry) {
45-
$headers[] = $headerEntry['param'] . ': ' . $headerEntry['value'];
65+
if (array_key_exists(JsonDefinitionManager::ENTITY_OPERATION_HEADER, $jsonDefArray)) {
66+
foreach ($jsonDefArray[JsonDefinitionManager::ENTITY_OPERATION_HEADER] as $headerEntry) {
67+
$headers[] = $headerEntry[JsonDefinitionManager::ENTITY_OPERATION_HEADER_PARAM] . ': ' .
68+
$headerEntry[JsonDefinitionManager::ENTITY_OPERATION_HEADER_VALUE];
4669
}
4770
}
4871

49-
if (array_key_exists('param', $jsonDefArray)) {
50-
foreach ($jsonDefArray['param'] as $paramEntry) {
51-
$params[$paramEntry['type']][$paramEntry['key']] = $paramEntry['value'];
72+
if (array_key_exists(JsonDefinitionManager::ENTITY_OPERATION_URL_PARAM, $jsonDefArray)) {
73+
foreach ($jsonDefArray[JsonDefinitionManager::ENTITY_OPERATION_URL_PARAM] as $paramEntry) {
74+
$params[$paramEntry[JsonDefinitionManager::ENTITY_OPERATION_URL_PARAM_TYPE]]
75+
[$paramEntry[JsonDefinitionManager::ENTITY_OPERATION_URL_PARAM_KEY]] =
76+
$paramEntry[JsonDefinitionManager::ENTITY_OPERATION_URL_PARAM_VALUE];
5277
}
5378
}
5479

55-
if (array_key_exists('entry', $jsonDefArray)) {
56-
foreach ($jsonDefArray['entry'] as $jsonEntryType) {
57-
$jsonMetadata[] = new JsonElement($jsonEntryType['key'], $jsonEntryType['value'], 'entry');
80+
if (array_key_exists(JsonDefinitionManager::ENTITY_OPERATION_ENTRY, $jsonDefArray)) {
81+
foreach ($jsonDefArray[JsonDefinitionManager::ENTITY_OPERATION_ENTRY] as $jsonEntryType) {
82+
$jsonMetadata[] = new JsonElement(
83+
$jsonEntryType[JsonDefinitionManager::ENTITY_OPERATION_ENTRY_KEY],
84+
$jsonEntryType[JsonDefinitionManager::ENTITY_OPERATION_ENTRY_VALUE],
85+
JsonDefinitionManager::ENTITY_OPERATION_ENTRY
86+
);
5887
}
5988
}
6089

61-
if (array_key_exists('array', $jsonDefArray)) {
62-
foreach ($jsonDefArray['array'] as $jsonEntryType) {
63-
$jsonMetadata[] = new JsonElement($jsonEntryType['key'], $jsonEntryType['value'], 'array');
90+
if (array_key_exists(JsonDefinitionManager::ENTITY_OPERATION_ARRAY, $jsonDefArray)) {
91+
foreach ($jsonDefArray[JsonDefinitionManager::ENTITY_OPERATION_ARRAY] as $jsonEntryType) {
92+
$jsonMetadata[] = new JsonElement(
93+
$jsonEntryType[JsonDefinitionManager::ENTITY_OPERATION_ARRAY_KEY],
94+
$jsonEntryType[JsonDefinitionManager::ENTITY_OPERATION_ARRAY_VALUE],
95+
JsonDefinitionManager::ENTITY_OPERATION_ARRAY
96+
);
6497
}
6598
}
6699

src/Magento/AcceptanceTestFramework/DataGenerator/etc/EntityMetadata.xsd renamed to src/Magento/AcceptanceTestFramework/DataGenerator/etc/dataOperation.xsd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<xs:element name="config">
44
<xs:complexType>
55
<xs:sequence>
6-
<xs:element name="metadata" maxOccurs="unbounded" minOccurs="0">
6+
<xs:element name="operation" maxOccurs="unbounded" minOccurs="0">
77
<xs:complexType>
88
<xs:choice maxOccurs="unbounded">
99
<xs:element name="entry" maxOccurs="unbounded" minOccurs="0">
@@ -48,7 +48,7 @@
4848
</xs:choice>
4949
<xs:attribute type="xs:string" name="name"/>
5050
<xs:attribute type="xs:string" name="dataType" use="required"/>
51-
<xs:attribute type="operationEnum" name="operation" use="required"/>
51+
<xs:attribute type="operationEnum" name="type" use="required"/>
5252
<xs:attribute type="xs:string" name="url"/>
5353
<xs:attribute type="xs:string" name="auth"/>
5454
<xs:attribute type="xs:string" name="method"/>

0 commit comments

Comments
 (0)