Ejemplo n.º 1
0
 /**
  * Convert SOAP operation arguments into format acceptable by service method.
  *
  * @param string $serviceClass
  * @param string $serviceMethod
  * @param array $arguments
  * @return array
  */
 protected function _prepareRequestData($serviceClass, $serviceMethod, $arguments)
 {
     /** SoapServer wraps parameters into array. Thus this wrapping should be removed to get access to parameters. */
     $arguments = reset($arguments);
     $arguments = $this->_dataObjectConverter->convertStdObjectToArray($arguments);
     return $this->_serializer->getInputData($serviceClass, $serviceMethod, $arguments);
 }
 public function testConvertSoapStdObjectToArray()
 {
     $stdObject = json_decode(json_encode($this->getCustomerDetails()->__toArray()), false);
     $addresses = $stdObject->addresses;
     unset($stdObject->addresses);
     $stdObject->addresses = new \stdClass();
     $stdObject->addresses->item = $addresses;
     $response = $this->dataObjectConverter->convertStdObjectToArray($stdObject);
     //Check array conversion
     $this->assertTrue(is_array($response['customer']));
     $this->assertTrue(is_array($response['addresses']));
     $this->assertEquals(2, count($response['addresses']['item']));
     //Check if data is correct
     $this->assertEquals(self::FIRSTNAME, $response['customer']['firstname']);
     $this->assertEquals(self::GROUP_ID, $response['customer']['group_id']);
     foreach ($response['addresses']['item'] as $key => $address) {
         $region = $address['region'];
         $this->assertEquals(self::REGION, $region['region']);
         $this->assertEquals(self::REGION_CODE, $region['region_code']);
         $this->assertEquals(self::REGION_ID, $region['region_id']);
         $this->assertEquals($this->expectedStreet[$key], $address['street']);
     }
 }