@@ -86,17 +86,6 @@ public function createEntity(
86
86
foreach ($ dependentObjectKeys as $ objectKey ) {
87
87
$ retrievedDependentObjects [] = $ this ->retrieveEntity ($ objectKey , $ scope );
88
88
}
89
-
90
- foreach ($ overrideFields as $ index => $ field ) {
91
- try {
92
- $ decrptedField = CredentialStore::getInstance ()->decryptAllSecretsInString ($ field );
93
- if ($ decrptedField !== false ) {
94
- $ overrideFields [$ index ] = $ decrptedField ;
95
- }
96
- } catch (TestFrameworkException $ e ) {
97
- //catch exception if Credentials are not defined
98
- }
99
- }
100
89
101
90
$ retrievedEntity = DataObjectHandler::getInstance ()->getObject ($ entity );
102
91
@@ -107,6 +96,8 @@ public function createEntity(
107
96
);
108
97
}
109
98
99
+ $ overrideFields = $ this ->resolveOverrideFields ($ overrideFields );
100
+
110
101
$ persistedObject = new DataPersistenceHandler (
111
102
$ retrievedEntity ,
112
103
$ retrievedDependentObjects ,
@@ -262,4 +253,29 @@ public function clearSuiteObjects()
262
253
{
263
254
$ this ->suiteObjects = [];
264
255
}
256
+
257
+ /**
258
+ * Resolve secret values in $overrideFields
259
+ *
260
+ * @param array $overrideFields
261
+ * @return array
262
+ */
263
+ private function resolveOverrideFields ($ overrideFields )
264
+ {
265
+ foreach ($ overrideFields as $ index => $ field ) {
266
+ if (is_array ($ field )) {
267
+ $ overrideFields [$ index ] = $ this ->resolveOverrideFields ($ field );
268
+ } elseif (is_string ($ field )) {
269
+ try {
270
+ $ decrptedField = CredentialStore::getInstance ()->decryptAllSecretsInString ($ field );
271
+ if ($ decrptedField !== false ) {
272
+ $ overrideFields [$ index ] = $ decrptedField ;
273
+ }
274
+ } catch (TestFrameworkException $ e ) {
275
+ //catch exception if Credentials are not defined
276
+ }
277
+ }
278
+ }
279
+ return $ overrideFields ;
280
+ }
265
281
}
0 commit comments