Skip to content

Commit 2e1f815

Browse files
authored
Merge pull request #706 from magento/MQE-2129
MQE-2129: Error creating data entity due to decryption error
2 parents 679943f + 85580a8 commit 2e1f815

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/PersistedObjectHandler.php

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
} 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+
}
265281
}

0 commit comments

Comments
 (0)