7
7
namespace tests \unit \Magento \FunctionalTestFramework \DataGenerator \Handlers ;
8
8
9
9
use AspectMock \Test as AspectMock ;
10
+ use Magento \FunctionalTestingFramework \DataGenerator \Objects \OperationDefinitionObject ;
10
11
use Magento \FunctionalTestingFramework \DataGenerator \Objects \OperationElement ;
11
12
use Magento \FunctionalTestingFramework \ObjectManager ;
12
13
use Magento \FunctionalTestingFramework \ObjectManagerFactory ;
@@ -21,64 +22,95 @@ class OperationDefinitionObjectHandlerTest extends TestCase
21
22
{
22
23
public function testGetAllObjects ()
23
24
{
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
+
24
53
// 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 => [
26
56
"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 => [
34
64
0 => [
35
- "value " => " application/json "
65
+ "value " => $ testContentType
36
66
]
37
67
],
38
- " header " => [
68
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_HEADER => [
39
69
0 => [
40
- " param " => " testParameter " ,
41
- " value " => " testHeader "
70
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_HEADER_PARAM => $ testHeaderParam ,
71
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_HEADER_VALUE => $ testHeaderValue ,
42
72
]
43
73
],
44
- " param " => [
74
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_URL_PARAM => [
45
75
0 => [
46
- " key " => "testUrlParamKey " ,
47
- " value " => "testUrlParamValue "
76
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_URL_PARAM_KEY => "testUrlParamKey " ,
77
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_URL_PARAM_VALUE => "testUrlParamValue "
48
78
]
49
79
],
50
- " object " => [
80
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_OBJECT => [
51
81
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 => [
55
85
0 => [
56
- " key " => " id " ,
57
- " value " => " integer "
86
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ENTRY_KEY => $ nestedEntryKey1 ,
87
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ENTRY_VALUE => $ nestedEntryValue1
58
88
],
59
89
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
63
93
],
64
94
2 => [
65
- " key " => " active " ,
66
- " value " => " boolean "
95
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ENTRY_KEY => $ nestedEntryKey3 ,
96
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ENTRY_VALUE => $ nestedEntryValue3
67
97
]
68
98
]
69
99
]
70
100
],
71
- " array " => [
101
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ARRAY => [
72
102
0 => [
73
- " key " => " ObjectArray " ,
74
- " object " => [
103
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_OBJECT_KEY => $ objectArrayKey ,
104
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_OBJECT => [
75
105
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 => [
79
109
0 => [
80
- "key " => "nestedFieldKey " ,
81
- "value " => "string "
110
+ OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_KEY =>
111
+ $ twiceNestedEntryKey ,
112
+ OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE =>
113
+ $ twiceNestedEntryValue
82
114
]
83
115
]
84
116
]
@@ -87,24 +119,24 @@ public function testGetAllObjects()
87
119
]
88
120
],
89
121
"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 => [
93
125
0 => [
94
- " key " => "id " ,
95
- " value " => "integer "
126
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ENTRY_KEY => "id " ,
127
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ENTRY_VALUE => "integer "
96
128
],
97
129
1 => [
98
- " key " => "name " ,
99
- " value " => "string "
130
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ENTRY_KEY => "name " ,
131
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ENTRY_VALUE => "string "
100
132
]
101
133
],
102
- " array " => [
134
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ARRAY => [
103
135
0 => [
104
- " key " => "arrayKey " ,
105
- " value " => [
136
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ARRAY_KEY => "arrayKey " ,
137
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ARRAY_VALUE => [
106
138
0 => [
107
- " value " => "string "
139
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_ENTRY_VALUE => "string "
108
140
]
109
141
]
110
142
]
@@ -113,33 +145,51 @@ public function testGetAllObjects()
113
145
]];
114
146
115
147
//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 );
119
160
$ expectedOperation1 = new OperationElement (
120
- " object " ,
121
- " objectType " ,
122
- " object " ,
161
+ $ nestedObjectKey ,
162
+ $ nestedObjectType ,
163
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_OBJECT ,
123
164
false ,
124
165
[],
125
166
[0 => $ expectedNestedMetadata1 , 1 => $ expectedNestedMetadata2 , 2 =>$ expectedNestedMetadata3 ]
126
167
);
127
168
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
+
129
178
$ oneLevelNestedMetadata = new OperationElement (
130
- " nestedObjectKey " ,
131
- " nestedObjectType " ,
132
- " object " ,
179
+ $ twiceNestedObjectKey ,
180
+ $ twiceNestedObjectType ,
181
+ OperationDefinitionObjectHandler:: ENTITY_OPERATION_OBJECT ,
133
182
false ,
134
183
[],
135
184
[0 => $ twoLevelNestedMetadata ]
136
185
);
186
+
137
187
$ expectedOperation2 = new OperationElement (
138
- " ObjectArray " ,
139
- " nestedObjectType " ,
140
- " nestedObjectKey " ,
188
+ $ objectArrayKey ,
189
+ $ twiceNestedObjectType ,
190
+ $ twiceNestedObjectKey ,
141
191
false ,
142
- [" nestedObjectKey " => $ oneLevelNestedMetadata ],
192
+ [$ twiceNestedObjectKey => $ oneLevelNestedMetadata ],
143
193
null
144
194
);
145
195
@@ -149,25 +199,26 @@ public function testGetAllObjects()
149
199
// get Operations
150
200
$ operationDefinitionManager = OperationDefinitionObjectHandler::getInstance ();
151
201
$ operations = $ operationDefinitionManager ->getAllObjects ();
152
- $ operationByName = $ operationDefinitionManager ->getOperationDefinition (" create " , " operationDataTypeName " );
202
+ $ operationByName = $ operationDefinitionManager ->getOperationDefinition ($ testOperationType , $ testDataTypeName1 );
153
203
154
204
// perform asserts on $operations
155
205
$ 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 );
158
208
159
209
// perform asserts on $createOperationByName
160
210
$ this ->assertEquals (
161
- [0 => 'testParameter: testHeader ' , 1 => "Content-Type: application/json " ],
211
+ [0 => "{$ testHeaderParam }: {$ testHeaderValue }" ,
212
+ 1 => OperationDefinitionObject::HTTP_CONTENT_TYPE_HEADER . ": {$ testContentType }" ],
162
213
$ operationByName ->getHeaders ()
163
214
);
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 ());
171
222
172
223
// perform asserts on the instantiated metadata in the $createOperationByName
173
224
$ this ->assertEquals ($ expectedOperation1 , $ operationByName ->getOperationMetadata ()[0 ]);
0 commit comments