Skip to content

Commit 44962f8

Browse files
committed
Merge branch 'sprint-develop' of github.com:magento-pangolin/magento2-acceptance-test-framework into MQE-148
# Conflicts: # src/Magento/AcceptanceTestFramework/DataGenerator/Api/ApiExecutor.php # src/Magento/AcceptanceTestFramework/DataGenerator/Api/EntityApiHandler.php # src/Magento/AcceptanceTestFramework/DataGenerator/Managers/DataManager.php # src/Magento/AcceptanceTestFramework/DataGenerator/Managers/JsonDefinitionManager.php # src/Magento/AcceptanceTestFramework/DataGenerator/Objects/EntityDataObject.php # src/Magento/AcceptanceTestFramework/DataGenerator/Objects/JsonDefinition.php # src/Magento/AcceptanceTestFramework/DataGenerator/Objects/JsonElement.php # src/Magento/AcceptanceTestFramework/DataGenerator/Parsers/DataProfileSchemaParser.php # src/Magento/AcceptanceTestFramework/DataGenerator/Parsers/OperationMetadataParser.php # src/Magento/AcceptanceTestFramework/PageObject/Page/Page.php # src/Magento/AcceptanceTestFramework/PageObject/Page/PageInterface.php # src/Magento/AcceptanceTestFramework/PageObject/Section/Section.php # src/Magento/AcceptanceTestFramework/PageObject/Section/SectionInterface.php # src/Magento/AcceptanceTestFramework/Test/CestDataConstants.php # src/Magento/AcceptanceTestFramework/Test/Handlers/CestObjectHandler.php # src/Magento/AcceptanceTestFramework/Test/Objects/ActionObject.php # src/Magento/AcceptanceTestFramework/Test/Objects/CestHookObject.php # src/Magento/AcceptanceTestFramework/Test/Objects/TestObject.php # src/Magento/AcceptanceTestFramework/Test/TestDataParser.php # src/Magento/AcceptanceTestFramework/Util/ApiClientUtil.php # src/Magento/AcceptanceTestFramework/XmlParser/PageParser.php
2 parents 7eeaca8 + 918b2f9 commit 44962f8

37 files changed

+1169
-1284
lines changed

.env.example

Lines changed: 0 additions & 5 deletions
This file was deleted.

bootstrap.php

Lines changed: 0 additions & 17 deletions
This file was deleted.

composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
"php": "~7.0",
88
"codeception/codeception": "2.2|2.3",
99
"flow/jsonpath": ">0.2",
10-
"fzaninotto/faker": "^1.6",
11-
"vlucas/phpdotenv": "~2.4"
10+
"fzaninotto/faker": "^1.6"
1211
},
1312
"require-dev": {
1413
"squizlabs/php_codesniffer": "1.5.3",

etc/di.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,12 @@
8282

8383
<virtualType name="Magento\AcceptanceTestFramework\Config\SchemaLocator\Page" type="Magento\AcceptanceTestFramework\Config\SchemaLocator">
8484
<arguments>
85-
<argument name="schemaPath" xsi:type="string">Magento/AcceptanceTestFramework/PageObject/etc/PageObject.xsd</argument>
85+
<argument name="schemaPath" xsi:type="string">Magento/AcceptanceTestFramework/Page/etc/PageObject.xsd</argument>
8686
</arguments>
8787
</virtualType>
8888
<virtualType name="Magento\AcceptanceTestFramework\Config\SchemaLocator\Section" type="Magento\AcceptanceTestFramework\Config\SchemaLocator">
8989
<arguments>
90-
<argument name="schemaPath" xsi:type="string">Magento/AcceptanceTestFramework/PageObject/etc/SectionObject.xsd</argument>
90+
<argument name="schemaPath" xsi:type="string">Magento/AcceptanceTestFramework/Page/etc/SectionObject.xsd</argument>
9191
</arguments>
9292
</virtualType>
9393
<virtualType name="Magento\AcceptanceTestFramework\Config\Reader\Page" type="Magento\AcceptanceTestFramework\Config\Reader\Filesystem">
@@ -176,7 +176,7 @@
176176

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

179-
<type name="Magento\AcceptanceTestFramework\DataGenerator\Parsers\MetadataParser">
179+
<type name="Magento\AcceptanceTestFramework\DataGenerator\Parsers\OperationMetadataParser">
180180
<arguments>
181181
<argument name="metadata" xsi:type="object">Magento\AcceptanceTestFramework\DataProfile\Config\Metadata</argument>
182182
</arguments>
@@ -197,9 +197,9 @@
197197
<argument name="converter" xsi:type="object">Magento\AcceptanceTestFramework\Config\Converter</argument>
198198
<argument name="schemaLocator" xsi:type="object">Magento\AcceptanceTestFramework\Config\SchemaLocator\Metadata</argument>
199199
<argument name="idAttributes" xsi:type="array">
200-
<item name="/config/metadata" xsi:type="string">name</item>
201-
<item name="/config/metadata/entry" xsi:type="string">key</item>
202-
<item name="/config/metadata/array" xsi:type="string">key</item>
200+
<item name="/config/operation" xsi:type="string">name</item>
201+
<item name="/config/operation/entry" xsi:type="string">key</item>
202+
<item name="/config/operation/array" xsi:type="string">key</item>
203203
</argument>
204204
<argument name="fileName" xsi:type="string">*-meta.xml</argument>
205205
<argument name="defaultScope" xsi:type="string">Metadata</argument>

src/Magento/AcceptanceTestFramework/DataGenerator/Api/ApiExecutor.php

Lines changed: 24 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,38 @@
11
<?php
2-
/**
3-
* Copyright © Magento, Inc. All rights reserved.
4-
* See COPYING.txt for license details.
5-
*/
2+
63
namespace Magento\AcceptanceTestFramework\DataGenerator\Api;
74

8-
use Magento\AcceptanceTestFramework\DataGenerator\Managers\DataManager;
9-
use Magento\AcceptanceTestFramework\DataGenerator\Managers\JsonDefinitionManager;
5+
use Magento\AcceptanceTestFramework\DataGenerator\Handlers\DataObjectHandler;
6+
use Magento\AcceptanceTestFramework\DataGenerator\Handlers\JsonDefinitionObjectHandler;
107
use Magento\AcceptanceTestFramework\DataGenerator\Objects\EntityDataObject;
8+
use Magento\AcceptanceTestFramework\DataGenerator\Objects\JsonDefinition;
119
use Magento\AcceptanceTestFramework\Util\ApiClientUtil;
1210

1311
class ApiExecutor
1412
{
1513
/**
16-
* Entity operation root tag.
17-
*
18-
* @var string
19-
*/
14+
* Describes the operation for the executor ('create','update','delete')
15+
* @var string $operation
16+
**/
2017
private $operation;
2118

2219
/**
23-
* Entity data object
24-
*
25-
* @var EntityDataObject
20+
* The entity object data being created, updated, or deleted.
21+
* @var EntityDataObject $entityObject
2622
*/
2723
private $entityObject;
2824

2925
/**
30-
* Json definition of an object.
31-
*
32-
* @var \Magento\AcceptanceTestFramework\DataGenerator\Objects\JsonDefinition
26+
* The json definitions used to map the operation.
27+
* @var JsonDefinition $jsonDefinition
3328
*/
3429
private $jsonDefinition;
3530

36-
/**
37-
* Primitive types for casting values.
38-
*
39-
* @var array
40-
*/
41-
private $primitives = ['string', 'boolean', 'integer', 'double', 'array'];
31+
const PRIMITIVE_TYPES = ['string', 'boolean', 'integer', 'double', 'array'];
4232

4333
/**
4434
* ApiSubObject constructor.
35+
* @constructor
4536
* @param string $operation
4637
* @param EntityDataObject $entityObject
4738
*/
@@ -50,16 +41,15 @@ public function __construct($operation, $entityObject)
5041
$this->operation = $operation;
5142
$this->entityObject = $entityObject;
5243

53-
$this->jsonDefinition = JsonDefinitionManager::getInstance()->getJsonDefinition(
44+
$this->jsonDefinition = JsonDefinitionObjectHandler::getInstance()->getJsonDefinition(
5445
$this->operation,
5546
$this->entityObject->getType()
5647
);
5748
}
5849

5950
/**
60-
* Method responsible for execution requests.
61-
*
62-
* @return string|bool
51+
* Executes an api request based on parameters given by constructor.
52+
* @return string | null
6353
*/
6454
public function executeRequest()
6555
{
@@ -127,7 +117,7 @@ private function getAuthorizationHeader($authUrl)
127117
*/
128118
private function getJsonDataArray($entityObject, $jsonDefMetadata = null)
129119
{
130-
$jsonArrayMetadata = !$jsonDefMetadata ? JsonDefinitionManager::getInstance()->getJsonDefinition(
120+
$jsonArrayMetadata = !$jsonDefMetadata ? JsonDefinitionObjectHandler::getInstance()->getJsonDefinition(
131121
$this->operation,
132122
$entityObject->getType()
133123
)->getJsonMetadata() : $jsonDefMetadata;
@@ -137,7 +127,7 @@ private function getJsonDataArray($entityObject, $jsonDefMetadata = null)
137127
foreach ($jsonArrayMetadata as $jsonElement) {
138128
$jsonElementType = $jsonElement->getValue();
139129

140-
if (in_array($jsonElementType, $this->primitives)) {
130+
if (in_array($jsonElementType, ApiExecutor::PRIMITIVE_TYPES)) {
141131
$jsonArray[$jsonElement->getKey()] = $this->castValue(
142132
$jsonElementType,
143133
$entityObject->getDataByName($jsonElement->getKey())
@@ -146,7 +136,7 @@ private function getJsonDataArray($entityObject, $jsonDefMetadata = null)
146136
$entityNamesOfType = $entityObject->getLinkedEntitiesOfType($jsonElementType);
147137

148138
foreach ($entityNamesOfType as $entityName) {
149-
$linkedEntityObj = DataManager::getInstance()->getEntity($entityName);
139+
$linkedEntityObj = DataObjectHandler::getInstance()->getObject($entityName);
150140
$jsonDataSubArray = self::getJsonDataArray($linkedEntityObj);
151141

152142
if ($jsonElement->getType() == 'array') {
@@ -162,24 +152,22 @@ private function getJsonDataArray($entityObject, $jsonDefMetadata = null)
162152
}
163153

164154
/**
165-
* Encodes data to json string.
166-
*
155+
* This function retrieves an array representative of json body for a request and returns it encoded as a string.
167156
* @return string
168157
*/
169-
private function getEncodedJsonString()
158+
public function getEncodedJsonString()
170159
{
171160
$jsonArray = $this->getJsonDataArray($this->entityObject, $this->jsonDefinition->getJsonMetadata());
172161

173162
return json_encode([$this->entityObject->getType() => $jsonArray], JSON_PRETTY_PRINT);
174163
}
175164

176-
// @codingStandardsIgnoreStart
177165
/**
178-
* Casting value based on type.
179-
*
166+
* This function takes a string value and its corresponding type and returns the string cast
167+
* into its the type passed.
180168
* @param string $type
181169
* @param string $value
182-
* @return mixed
170+
* @return bool|float|int|string
183171
*/
184172
private function castValue($type, $value)
185173
{
@@ -201,5 +189,4 @@ private function castValue($type, $value)
201189

202190
return $newVal;
203191
}
204-
// @codingStandardsIgnoreEnd
205192
}

src/Magento/AcceptanceTestFramework/DataGenerator/Api/EntityApiHandler.php

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
<?php
2-
/**
3-
* Copyright © Magento, Inc. All rights reserved.
4-
* See COPYING.txt for license details.
5-
*/
62

73
namespace Magento\AcceptanceTestFramework\DataGenerator\Api;
84

@@ -11,21 +7,20 @@
117
class EntityApiHandler
128
{
139
/**
14-
* Original data object.
15-
*
16-
* @var EntityDataObject
10+
* Entity object data to use for create, delete, or update.
11+
* @var EntityDataObject $entityObject
1712
*/
1813
private $entityObject;
1914

2015
/**
21-
* New data object.
22-
*
23-
* @var EntityDataObject
16+
* Resulting created object from create or update.
17+
* @var EntityDataObject $createdObject
2418
*/
2519
private $createdObject;
2620

2721
/**
2822
* ApiPersistenceHandler constructor.
23+
* @constructor
2924
* @param EntityDataObject $entityObject
3025
*/
3126
public function __construct($entityObject)
@@ -34,9 +29,8 @@ public function __construct($entityObject)
3429
}
3530

3631
/**
37-
* Method responsible for creating entity.
38-
*
39-
* @return void
32+
* Function which executes a create request based on specific operation metadata
33+
* @return string | false
4034
*/
4135
public function createEntity()
4236
{
@@ -49,12 +43,13 @@ public function createEntity()
4943
json_decode($result, true),
5044
null
5145
);
46+
47+
return $result;
5248
}
5349

5450
/**
55-
* Method responsible for deleting entity.
56-
*
57-
* @return bool|string
51+
* Function which executes a delete request based on specific operation metadata
52+
* @return string | false
5853
*/
5954
public function deleteEntity()
6055
{

src/Magento/AcceptanceTestFramework/DataGenerator/DataGeneratorConstants.php

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)