77namespace tests \unit \Magento \FunctionalTestFramework \DataGenerator \Handlers ;
88
99use AspectMock \Test as AspectMock ;
10+ use Magento \FunctionalTestingFramework \DataGenerator \Objects \OperationDefinitionObject ;
1011use Magento \FunctionalTestingFramework \DataGenerator \Objects \OperationElement ;
1112use Magento \FunctionalTestingFramework \ObjectManager ;
1213use 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