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']);
     }
 }
예제 #2
0
 /**
  * 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 AbstractObject) {
         $result = $this->_dataObjectConverter->convertKeysToCamelCase($data->__toArray());
     } elseif (is_array($data)) {
         foreach ($data as $key => $value) {
             $result[$key] = $value instanceof AbstractObject ? $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);
 }