@@ -86,17 +86,6 @@ public function createEntity(
8686 foreach ($ dependentObjectKeys as $ objectKey ) {
8787 $ retrievedDependentObjects [] = $ this ->retrieveEntity ($ objectKey , $ scope );
8888 }
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- }
10089
10190 $ retrievedEntity = DataObjectHandler::getInstance ()->getObject ($ entity );
10291
@@ -107,6 +96,8 @@ public function createEntity(
10796 );
10897 }
10998
99+ $ overrideFields = $ this ->resolveOverrideFields ($ overrideFields );
100+
110101 $ persistedObject = new DataPersistenceHandler (
111102 $ retrievedEntity ,
112103 $ retrievedDependentObjects ,
@@ -262,4 +253,29 @@ public function clearSuiteObjects()
262253 {
263254 $ this ->suiteObjects = [];
264255 }
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+ } else {
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+ }
265281}
0 commit comments