public function testConvertKeysToCamelCase() { //Unpack as an array and convert keys to camelCase to match property names in WSDL $response = $this->dataObjectConverter->convertKeysToCamelCase($this->getCustomerDetails()->__toArray()); //Check if keys are correctly converted to camel case wherever necessary $this->assertEquals(self::FIRSTNAME, $response['customer']['firstname']); $this->assertEquals(self::GROUP_ID, $response['customer']['groupId']); foreach ($response['addresses'] as $key => $address) { $region = $address['region']; $this->assertEquals(self::REGION, $region['region']); $this->assertEquals(self::REGION_CODE, $region['regionCode']); $this->assertEquals(self::REGION_ID, $region['regionId']); $this->assertEquals($this->expectedStreet[$key], $address['street']); } }
/** * Convert service response into format acceptable by SoapServer. * * @param object|array|string|int|float|null $data * @return array * @throws \InvalidArgumentException */ protected function _prepareResponseData($data) { if ($data instanceof AbstractSimpleObject) { $result = $this->_dataObjectConverter->convertKeysToCamelCase($data->__toArray()); } elseif (is_array($data)) { foreach ($data as $key => $value) { $result[$key] = $value instanceof AbstractSimpleObject ? $this->_dataObjectConverter->convertKeysToCamelCase($value->__toArray()) : $value; } } elseif (is_scalar($data) || is_null($data)) { $result = $data; } else { throw new \InvalidArgumentException("Service returned result in invalid format."); } return array(self::RESULT_NODE_NAME => $result); }