示例#1
0
 public function testCreate()
 {
     $wsdlName = 'wsdlName';
     $endpointUrl = 'endpointUrl';
     $this->_objectManagerMock->expects($this->once())->method('create')->with('Mage_Webapi_Model_Soap_Wsdl', array('name' => $wsdlName, 'uri' => $endpointUrl));
     $this->_soapWsdlFactory->create($wsdlName, $endpointUrl);
 }
示例#2
0
 /**
  * Generate WSDL file based on requested resources.
  *
  * @param array $requestedResources
  * @param string $endPointUrl
  * @return string
  */
 public function generate($requestedResources, $endPointUrl)
 {
     $this->_collectCallInfo($requestedResources);
     $wsdl = $this->_wsdlFactory->create(self::WSDL_NAME, $endPointUrl);
     $wsdl->addSchemaTypeSection();
     foreach ($requestedResources as $resourceName => $resourceData) {
         $portTypeName = $this->getPortTypeName($resourceName);
         $bindingName = $this->getBindingName($resourceName);
         $portType = $wsdl->addPortType($portTypeName);
         $binding = $wsdl->addBinding($bindingName, Wsdl::TYPES_NS . ':' . $portTypeName);
         $wsdl->addSoapBinding($binding, 'document', 'http://schemas.xmlsoap.org/soap/http', SOAP_1_2);
         $portName = $this->getPortName($resourceName);
         $serviceName = $this->getServiceName($resourceName);
         $wsdl->addService($serviceName, $portName, 'tns:' . $bindingName, $endPointUrl, SOAP_1_2);
         foreach ($resourceData['methods'] as $methodName => $methodData) {
             $operationName = $this->getOperationName($resourceName, $methodName);
             $inputBinding = array('use' => 'literal');
             $inputMessageName = $this->_createOperationInput($wsdl, $operationName, $methodData);
             $outputMessageName = false;
             $outputBinding = false;
             if (isset($methodData['interface']['out']['parameters'])) {
                 $outputBinding = $inputBinding;
                 $outputMessageName = $this->_createOperationOutput($wsdl, $operationName, $methodData);
             }
             $wsdl->addPortOperation($portType, $operationName, $inputMessageName, $outputMessageName);
             $bindingOperation = $wsdl->addBindingOperation($binding, $operationName, $inputBinding, $outputBinding, false, SOAP_1_2);
             $wsdl->addSoapOperation($bindingOperation, $operationName, SOAP_1_2);
             // @TODO: implement faults binding
         }
     }
     return $wsdl->toXML();
 }