From b1adef436b3efdb72efe309849e8b51741317ad6 Mon Sep 17 00:00:00 2001 From: Tom Reece Date: Wed, 31 Jul 2019 15:12:25 -0500 Subject: [PATCH] MQE-1306: Can not get actual entity data --- .../Objects/EntityDataObjectTest.php | 17 +++++++++++++++++ .../DataGenerator/Objects/EntityDataObject.php | 13 ++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) 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; } /**