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); }
/** * 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(); }