diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Objects/EntityDataObjectTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Objects/EntityDataObjectTest.php index 5b63f0c94..802a6c108 100644 --- a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Objects/EntityDataObjectTest.php +++ b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Objects/EntityDataObjectTest.php @@ -120,6 +120,23 @@ public function testGetLinkedEntities() $this->assertEquals("linkedEntity2", $dataObject->getLinkedEntitiesOfType("otherEntityType")[0]); } + public function testGetCamelCaseKeys() + { + $data = [ + "lowercasekey1" => "value1", + "camelCaseKey2" => "value2", + "lowercasekey3" => "value3", + "camelCaseKey4" => "value4" + ]; + + $dataObject = new EntityDataObject("name", "type", $data, null, null, null); + + $this->assertEquals("value1", $dataObject->getDataByName("lowercasekey1", 0)); + $this->assertEquals("value2", $dataObject->getDataByName("camelCaseKey2", 0)); + $this->assertEquals("value3", $dataObject->getDataByName("lowercasekey3", 0)); + $this->assertEquals("value4", $dataObject->getDataByName("camelCaseKey4", 0)); + } + /** * After class functionality * @return void diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/EntityDataObject.php b/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/EntityDataObject.php index 070a08bf1..09c95df9e 100644 --- a/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/EntityDataObject.php +++ b/src/Magento/FunctionalTestingFramework/DataGenerator/Objects/EntityDataObject.php @@ -177,15 +177,22 @@ public function getDataByName($name, $uniquenessFormat) $name_lower = strtolower($name); - if ($this->data !== null && array_key_exists($name_lower, $this->data)) { + if ($this->data === null) { + return null; + } + + if (array_key_exists($name_lower, $this->data)) { $uniquenessData = $this->getUniquenessDataByName($name_lower); if (null === $uniquenessData || $uniquenessFormat == self::NO_UNIQUE_PROCESS) { return $this->data[$name_lower]; } return $this->formatUniqueData($name_lower, $uniquenessData, $uniquenessFormat); + } elseif (array_key_exists($name, $this->data)) { + // Data returned by the API may be camelCase so we need to check for the original $name also. + return $this->data[$name]; + } else { + return null; } - - return null; } /**