Skip to content

Commit 84fada8

Browse files
committed
MQE-545: [Unit Test] OperationDefinitionObjectHandler.php
- CR Changes, using objects and constants in lieu of literal data definition.
1 parent 047ee1a commit 84fada8

File tree

1 file changed

+121
-70
lines changed

1 file changed

+121
-70
lines changed

dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/OperationDefinitionObjectHandlerTest.php

Lines changed: 121 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
namespace tests\unit\Magento\FunctionalTestFramework\DataGenerator\Handlers;
88

99
use AspectMock\Test as AspectMock;
10+
use Magento\FunctionalTestingFramework\DataGenerator\Objects\OperationDefinitionObject;
1011
use Magento\FunctionalTestingFramework\DataGenerator\Objects\OperationElement;
1112
use Magento\FunctionalTestingFramework\ObjectManager;
1213
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
@@ -21,64 +22,95 @@ class OperationDefinitionObjectHandlerTest extends TestCase
2122
{
2223
public function testGetAllObjects()
2324
{
25+
// Define data variables
26+
$testDataTypeName1 = "operationDataTypeName";
27+
$testDataTypeName2 = "operationDataTypeName2";
28+
$testAuth = "adminOAuth";
29+
$testUrl = "V1/object";
30+
$testOperationType = "create";
31+
$testMethod = "POST";
32+
$testSuccessRegex = "/messages-message-success/";
33+
$testContentType = "application/json";
34+
$testHeaderParam = "testParameter";
35+
$testHeaderValue = "testHeader";
36+
// Nested data variables
37+
$nestedObjectKey = "object";
38+
$nestedObjectType = "objectType";
39+
$nestedEntryKey1 = "id";
40+
$nestedEntryValue1 = "integer";
41+
$nestedEntryKey2 = "name";
42+
$nestedEntryValue2 = "string";
43+
$nestedEntryRequired2 = "true";
44+
$nestedEntryKey3 = "active";
45+
$nestedEntryValue3 = "boolean";
46+
// Two Level nested data variables
47+
$objectArrayKey = "ObjectArray";
48+
$twiceNestedObjectKey = "nestedObjectKey";
49+
$twiceNestedObjectType = "nestedObjectType";
50+
$twiceNestedEntryKey = "nestedFieldKey";
51+
$twiceNestedEntryValue = "string";
52+
2453
// Operation Metadata. BE CAREFUL WHEN EDITING, Objects defined below rely on values in this array.
25-
$mockData = ["operation" => [
54+
55+
$mockData = [OperationDefinitionObjectHandler::ENTITY_OPERATION_ROOT_TAG => [
2656
"testOperationName" => [
27-
"dataType" => "operationDataTypeName",
28-
"type" => "create",
29-
"auth" => "adminOauth",
30-
"url" => "/V1/object/",
31-
"method" => "POST",
32-
"successRegex" => "/messages-message-success/",
33-
"contentType" => [
57+
OperationDefinitionObjectHandler::ENTITY_OPERATION_DATA_TYPE => $testDataTypeName1,
58+
OperationDefinitionObjectHandler::ENTITY_OPERATION_TYPE => $testOperationType,
59+
OperationDefinitionObjectHandler::ENTITY_OPERATION_AUTH => $testAuth,
60+
OperationDefinitionObjectHandler::ENTITY_OPERATION_URL => $testUrl,
61+
OperationDefinitionObjectHandler::ENTITY_OPERATION_METHOD => $testMethod,
62+
OperationDefinitionObjectHandler::ENTITY_OPERATION_SUCCESS_REGEX => $testSuccessRegex,
63+
OperationDefinitionObjectHandler::ENTITY_OPERATION_CONTENT_TYPE => [
3464
0 => [
35-
"value" => "application/json"
65+
"value" => $testContentType
3666
]
3767
],
38-
"header" => [
68+
OperationDefinitionObjectHandler::ENTITY_OPERATION_HEADER => [
3969
0 => [
40-
"param" => "testParameter",
41-
"value" => "testHeader"
70+
OperationDefinitionObjectHandler::ENTITY_OPERATION_HEADER_PARAM => $testHeaderParam,
71+
OperationDefinitionObjectHandler::ENTITY_OPERATION_HEADER_VALUE => $testHeaderValue,
4272
]
4373
],
44-
"param" => [
74+
OperationDefinitionObjectHandler::ENTITY_OPERATION_URL_PARAM => [
4575
0 => [
46-
"key" => "testUrlParamKey",
47-
"value" => "testUrlParamValue"
76+
OperationDefinitionObjectHandler::ENTITY_OPERATION_URL_PARAM_KEY => "testUrlParamKey",
77+
OperationDefinitionObjectHandler::ENTITY_OPERATION_URL_PARAM_VALUE => "testUrlParamValue"
4878
]
4979
],
50-
"object" => [
80+
OperationDefinitionObjectHandler::ENTITY_OPERATION_OBJECT => [
5181
0 => [
52-
"key" => "object",
53-
"dataType" => "objectType",
54-
"field" => [
82+
OperationDefinitionObjectHandler::ENTITY_OPERATION_OBJECT_KEY => $nestedObjectKey,
83+
OperationDefinitionObjectHandler::ENTITY_OPERATION_DATA_TYPE => $nestedObjectType,
84+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY => [
5585
0 => [
56-
"key" => "id",
57-
"value" => "integer"
86+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_KEY => $nestedEntryKey1,
87+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE => $nestedEntryValue1
5888
],
5989
1 => [
60-
"key" => "name",
61-
"value" => "string",
62-
"required" => "true"
90+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_KEY => $nestedEntryKey2,
91+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE => $nestedEntryValue2,
92+
OperationDefinitionObjectHandler::ENTITY_OPERATION_REQUIRED => $nestedEntryRequired2
6393
],
6494
2 => [
65-
"key" => "active",
66-
"value" => "boolean"
95+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_KEY => $nestedEntryKey3,
96+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE => $nestedEntryValue3
6797
]
6898
]
6999
]
70100
],
71-
"array" => [
101+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ARRAY => [
72102
0 => [
73-
"key" => "ObjectArray",
74-
"object" => [
103+
OperationDefinitionObjectHandler::ENTITY_OPERATION_OBJECT_KEY => $objectArrayKey,
104+
OperationDefinitionObjectHandler::ENTITY_OPERATION_OBJECT => [
75105
0 => [
76-
"key" => "nestedObjectKey",
77-
"dataType" => "nestedObjectType",
78-
"field" => [
106+
OperationDefinitionObjectHandler::ENTITY_OPERATION_OBJECT_KEY => $twiceNestedObjectKey,
107+
OperationDefinitionObjectHandler::ENTITY_OPERATION_DATA_TYPE => $twiceNestedObjectType,
108+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY => [
79109
0 => [
80-
"key" => "nestedFieldKey",
81-
"value" => "string"
110+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_KEY =>
111+
$twiceNestedEntryKey,
112+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE =>
113+
$twiceNestedEntryValue
82114
]
83115
]
84116
]
@@ -87,24 +119,24 @@ public function testGetAllObjects()
87119
]
88120
],
89121
"testOperationName2" => [
90-
"dataType" => "operationDataTypeName2",
91-
"type" => "create",
92-
"field" => [
122+
OperationDefinitionObjectHandler::ENTITY_OPERATION_DATA_TYPE => $testDataTypeName2,
123+
OperationDefinitionObjectHandler::ENTITY_OPERATION_TYPE => $testOperationType,
124+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY => [
93125
0 => [
94-
"key" => "id",
95-
"value" => "integer"
126+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_KEY => "id",
127+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE => "integer"
96128
],
97129
1 => [
98-
"key" => "name",
99-
"value" => "string"
130+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_KEY => "name",
131+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE => "string"
100132
]
101133
],
102-
"array" => [
134+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ARRAY => [
103135
0 => [
104-
"key" => "arrayKey",
105-
"value" => [
136+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ARRAY_KEY => "arrayKey",
137+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ARRAY_VALUE => [
106138
0 => [
107-
"value" => "string"
139+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE => "string"
108140
]
109141
]
110142
]
@@ -113,33 +145,51 @@ public function testGetAllObjects()
113145
]];
114146

115147
//prepare OperationElements to compare against.
116-
$expectedNestedMetadata1 = new OperationElement("id", "integer", "field", false, [], null);
117-
$expectedNestedMetadata2 = new OperationElement("name", "string", "field", true, [], null);
118-
$expectedNestedMetadata3 = new OperationElement("active", "boolean", "field", false, [], null);
148+
$field = OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY;
149+
150+
$expectedNestedMetadata1 = new OperationElement($nestedEntryKey1, $nestedEntryValue1, $field, false, [], null);
151+
$expectedNestedMetadata2 = new OperationElement(
152+
$nestedEntryKey2,
153+
$nestedEntryValue2,
154+
$field,
155+
$nestedEntryRequired2,
156+
[],
157+
null
158+
);
159+
$expectedNestedMetadata3 = new OperationElement($nestedEntryKey3, $nestedEntryValue3, $field, false, [], null);
119160
$expectedOperation1 = new OperationElement(
120-
"object",
121-
"objectType",
122-
"object",
161+
$nestedObjectKey,
162+
$nestedObjectType,
163+
OperationDefinitionObjectHandler::ENTITY_OPERATION_OBJECT,
123164
false,
124165
[],
125166
[0 => $expectedNestedMetadata1, 1 => $expectedNestedMetadata2, 2 =>$expectedNestedMetadata3]
126167
);
127168

128-
$twoLevelNestedMetadata = new OperationElement("nestedFieldKey", "string", "field", false, [], null);
169+
$twoLevelNestedMetadata = new OperationElement(
170+
$twiceNestedEntryKey,
171+
$twiceNestedEntryValue,
172+
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY,
173+
false,
174+
[],
175+
null
176+
);
177+
129178
$oneLevelNestedMetadata = new OperationElement(
130-
"nestedObjectKey",
131-
"nestedObjectType",
132-
"object",
179+
$twiceNestedObjectKey,
180+
$twiceNestedObjectType,
181+
OperationDefinitionObjectHandler::ENTITY_OPERATION_OBJECT,
133182
false,
134183
[],
135184
[0 => $twoLevelNestedMetadata]
136185
);
186+
137187
$expectedOperation2 = new OperationElement(
138-
"ObjectArray",
139-
"nestedObjectType",
140-
"nestedObjectKey",
188+
$objectArrayKey,
189+
$twiceNestedObjectType,
190+
$twiceNestedObjectKey,
141191
false,
142-
["nestedObjectKey" => $oneLevelNestedMetadata],
192+
[$twiceNestedObjectKey => $oneLevelNestedMetadata],
143193
null
144194
);
145195

@@ -149,25 +199,26 @@ public function testGetAllObjects()
149199
// get Operations
150200
$operationDefinitionManager = OperationDefinitionObjectHandler::getInstance();
151201
$operations = $operationDefinitionManager->getAllObjects();
152-
$operationByName = $operationDefinitionManager->getOperationDefinition("create", "operationDataTypeName");
202+
$operationByName = $operationDefinitionManager->getOperationDefinition($testOperationType, $testDataTypeName1);
153203

154204
// perform asserts on $operations
155205
$this->assertCount(2, $operations);
156-
$this->assertArrayHasKey("createoperationDataTypeName", $operations);
157-
$this->assertArrayHasKey("createoperationDataTypeName2", $operations);
206+
$this->assertArrayHasKey($testOperationType . $testDataTypeName1, $operations);
207+
$this->assertArrayHasKey($testOperationType . $testDataTypeName2, $operations);
158208

159209
// perform asserts on $createOperationByName
160210
$this->assertEquals(
161-
[0 => 'testParameter: testHeader', 1 => "Content-Type: application/json"],
211+
[0 => "{$testHeaderParam}: {$testHeaderValue}",
212+
1 => OperationDefinitionObject::HTTP_CONTENT_TYPE_HEADER . ": {$testContentType}"],
162213
$operationByName->getHeaders()
163214
);
164-
$this->assertEquals("create", $operationByName->getOperation());
165-
$this->assertEquals("POST", $operationByName->getApiMethod());
166-
$this->assertEquals("V1/object", $operationByName->getApiUrl());
167-
$this->assertEquals("operationDataTypeName", $operationByName->getDataType());
168-
$this->assertEquals("application/json", $operationByName->getContentType());
169-
$this->assertEquals("adminOauth", $operationByName->getAuth());
170-
$this->assertEquals("/messages-message-success/", $operationByName->getSuccessRegex());
215+
$this->assertEquals($testOperationType, $operationByName->getOperation());
216+
$this->assertEquals($testMethod, $operationByName->getApiMethod());
217+
$this->assertEquals($testUrl, $operationByName->getApiUrl());
218+
$this->assertEquals($testDataTypeName1, $operationByName->getDataType());
219+
$this->assertEquals($testContentType, $operationByName->getContentType());
220+
$this->assertEquals($testAuth, $operationByName->getAuth());
221+
$this->assertEquals($testSuccessRegex, $operationByName->getSuccessRegex());
171222

172223
// perform asserts on the instantiated metadata in the $createOperationByName
173224
$this->assertEquals($expectedOperation1, $operationByName->getOperationMetadata()[0]);

0 commit comments

Comments
 (0)