1
1
<?php
2
- /**
3
- * Copyright © Magento, Inc. All rights reserved.
4
- * See COPYING.txt for license details.
5
- */
2
+
6
3
namespace Magento \AcceptanceTestFramework \DataGenerator \Api ;
7
4
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 ;
10
7
use Magento \AcceptanceTestFramework \DataGenerator \Objects \EntityDataObject ;
8
+ use Magento \AcceptanceTestFramework \DataGenerator \Objects \JsonDefinition ;
11
9
use Magento \AcceptanceTestFramework \Util \ApiClientUtil ;
12
10
13
11
class ApiExecutor
14
12
{
15
13
/**
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
+ **/
20
17
private $ operation ;
21
18
22
19
/**
23
- * Entity data object
24
- *
25
- * @var EntityDataObject
20
+ * The entity object data being created, updated, or deleted.
21
+ * @var EntityDataObject $entityObject
26
22
*/
27
23
private $ entityObject ;
28
24
29
25
/**
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
33
28
*/
34
29
private $ jsonDefinition ;
35
30
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 ' ];
42
32
43
33
/**
44
34
* ApiSubObject constructor.
35
+ * @constructor
45
36
* @param string $operation
46
37
* @param EntityDataObject $entityObject
47
38
*/
@@ -50,16 +41,15 @@ public function __construct($operation, $entityObject)
50
41
$ this ->operation = $ operation ;
51
42
$ this ->entityObject = $ entityObject ;
52
43
53
- $ this ->jsonDefinition = JsonDefinitionManager ::getInstance ()->getJsonDefinition (
44
+ $ this ->jsonDefinition = JsonDefinitionObjectHandler ::getInstance ()->getJsonDefinition (
54
45
$ this ->operation ,
55
46
$ this ->entityObject ->getType ()
56
47
);
57
48
}
58
49
59
50
/**
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
63
53
*/
64
54
public function executeRequest ()
65
55
{
@@ -127,7 +117,7 @@ private function getAuthorizationHeader($authUrl)
127
117
*/
128
118
private function getJsonDataArray ($ entityObject , $ jsonDefMetadata = null )
129
119
{
130
- $ jsonArrayMetadata = !$ jsonDefMetadata ? JsonDefinitionManager ::getInstance ()->getJsonDefinition (
120
+ $ jsonArrayMetadata = !$ jsonDefMetadata ? JsonDefinitionObjectHandler ::getInstance ()->getJsonDefinition (
131
121
$ this ->operation ,
132
122
$ entityObject ->getType ()
133
123
)->getJsonMetadata () : $ jsonDefMetadata ;
@@ -137,7 +127,7 @@ private function getJsonDataArray($entityObject, $jsonDefMetadata = null)
137
127
foreach ($ jsonArrayMetadata as $ jsonElement ) {
138
128
$ jsonElementType = $ jsonElement ->getValue ();
139
129
140
- if (in_array ($ jsonElementType , $ this -> primitives )) {
130
+ if (in_array ($ jsonElementType , ApiExecutor:: PRIMITIVE_TYPES )) {
141
131
$ jsonArray [$ jsonElement ->getKey ()] = $ this ->castValue (
142
132
$ jsonElementType ,
143
133
$ entityObject ->getDataByName ($ jsonElement ->getKey ())
@@ -146,7 +136,7 @@ private function getJsonDataArray($entityObject, $jsonDefMetadata = null)
146
136
$ entityNamesOfType = $ entityObject ->getLinkedEntitiesOfType ($ jsonElementType );
147
137
148
138
foreach ($ entityNamesOfType as $ entityName ) {
149
- $ linkedEntityObj = DataManager ::getInstance ()->getEntity ($ entityName );
139
+ $ linkedEntityObj = DataObjectHandler ::getInstance ()->getObject ($ entityName );
150
140
$ jsonDataSubArray = self ::getJsonDataArray ($ linkedEntityObj );
151
141
152
142
if ($ jsonElement ->getType () == 'array ' ) {
@@ -162,24 +152,22 @@ private function getJsonDataArray($entityObject, $jsonDefMetadata = null)
162
152
}
163
153
164
154
/**
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.
167
156
* @return string
168
157
*/
169
- private function getEncodedJsonString ()
158
+ public function getEncodedJsonString ()
170
159
{
171
160
$ jsonArray = $ this ->getJsonDataArray ($ this ->entityObject , $ this ->jsonDefinition ->getJsonMetadata ());
172
161
173
162
return json_encode ([$ this ->entityObject ->getType () => $ jsonArray ], JSON_PRETTY_PRINT );
174
163
}
175
164
176
- // @codingStandardsIgnoreStart
177
165
/**
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.
180
168
* @param string $type
181
169
* @param string $value
182
- * @return mixed
170
+ * @return bool|float|int|string
183
171
*/
184
172
private function castValue ($ type , $ value )
185
173
{
@@ -201,5 +189,4 @@ private function castValue($type, $value)
201
189
202
190
return $ newVal ;
203
191
}
204
- // @codingStandardsIgnoreEnd
205
192
}
0 commit comments