From df5454712c85d74796b24f4a57b2b8acdc01d50c Mon Sep 17 00:00:00 2001 From: CarliPinell Date: Thu, 6 Jul 2023 13:16:06 -0400 Subject: [PATCH] QA observations solved. New Helper added to change Key Names --- ProcessMaker/Events/UserUpdated.php | 2 ++ ProcessMaker/Helpers/ArrayHelper.php | 15 +++++++++ .../ProcessMaker/Helpers/ArrayHelperTest.php | 33 +++++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/ProcessMaker/Events/UserUpdated.php b/ProcessMaker/Events/UserUpdated.php index 26487c757e..95fe1decc7 100644 --- a/ProcessMaker/Events/UserUpdated.php +++ b/ProcessMaker/Events/UserUpdated.php @@ -30,6 +30,8 @@ public function __construct(User $user, array $changes, array $original) $this->user = $user; $this->changes = array_diff_key($changes, array_flip($this::REMOVE_KEYS)); $this->original = array_diff_key($original, array_flip($this::REMOVE_KEYS)); + $this->changes = ArrayHelper::replaceKeyInArray($changes, 'title', 'job_title'); + $this->original = ArrayHelper::replaceKeyInArray($original, 'title', 'job_title'); } /** diff --git a/ProcessMaker/Helpers/ArrayHelper.php b/ProcessMaker/Helpers/ArrayHelper.php index 0eb2417eaf..0a1d4c66b7 100644 --- a/ProcessMaker/Helpers/ArrayHelper.php +++ b/ProcessMaker/Helpers/ArrayHelper.php @@ -39,4 +39,19 @@ public static function getArrayDifferencesWithFormat(array $changedArray, array $arrayDiff = $arrayHelper->formatChanges($displayChanges, $displayOriginal); return $arrayDiff; } + + /** + * This method replace an old key with a new key in Array given. + * @param array $array + * @param string $oldKey + * @param string $newKey + * @return array + */ + public static function replaceKeyInArray(array $array, string $oldKey, string $newKey) { + if (array_key_exists($oldKey, $array)) { + $array[$newKey] = $array[$oldKey]; + unset($array[$oldKey]); + } + return $array; + } } diff --git a/tests/unit/ProcessMaker/Helpers/ArrayHelperTest.php b/tests/unit/ProcessMaker/Helpers/ArrayHelperTest.php index 5db0b2fcb1..fa5307c4b2 100644 --- a/tests/unit/ProcessMaker/Helpers/ArrayHelperTest.php +++ b/tests/unit/ProcessMaker/Helpers/ArrayHelperTest.php @@ -71,4 +71,37 @@ public function testGetArrayDifferencesWithFormat() ] )); } + + public function testReplaceKeyInArray() + { + //Case 1: Existing Key + $myArray = [ + 'name' => 'John', + 'title' => 'Musician' + ]; + $oldKey = 'title'; + $newKey = 'job_title'; + $this->assertEquals( + [ + 'name' => 'John', + 'job_title' => 'Musician' + ], + ArrayHelper::replaceKeyInArray($myArray, $oldKey, $newKey) + ); + + //Case 2: Not Existing Key + $myArray = [ + 'name' => 'John', + 'title' => 'Musician' + ]; + $oldKey = 'titles'; + $newKey = 'job_title'; + $this->assertEquals( + [ + 'name' => 'John', + 'title' => 'Musician' + ], + ArrayHelper::replaceKeyInArray($myArray, $oldKey, $newKey) + ); + } }