public function testCreate() { $wsdlName = 'wsdlName'; $endpointUrl = 'endpointUrl'; $this->_objectManagerMock->expects($this->once())->method('create')->with('Magento\\Webapi\\Model\\Soap\\Wsdl', array('name' => $wsdlName, 'uri' => $endpointUrl)); $this->_soapWsdlFactory->create($wsdlName, $endpointUrl); }
protected function setUp() { $this->_soapConfigMock = $this->getMockBuilder('Magento\\Webapi\\Model\\Soap\\Config')->disableOriginalConstructor()->getMock(); $_wsdlMock = $this->getMockBuilder('Magento\\Webapi\\Model\\Soap\\Wsdl')->disableOriginalConstructor()->setMethods(array('addSchemaTypeSection', 'addService', 'addPortType', 'addBinding', 'addSoapBinding', 'addElement', 'addComplexType', 'addMessage', 'addPortOperation', 'addBindingOperation', 'addSoapOperation', 'toXML'))->getMock(); $this->_wsdlFactoryMock = $this->getMockBuilder('Magento\\Webapi\\Model\\Soap\\Wsdl\\Factory')->setMethods(array('create'))->disableOriginalConstructor()->getMock(); $this->_wsdlFactoryMock->expects($this->any())->method('create')->will($this->returnValue($_wsdlMock)); $this->_cacheMock = $this->getMockBuilder('Magento\\Webapi\\Model\\Cache\\Type')->disableOriginalConstructor()->getMock(); $this->_cacheMock->expects($this->any())->method('load')->will($this->returnValue(false)); $this->_cacheMock->expects($this->any())->method('save')->will($this->returnValue(true)); $this->_typeProcessor = $this->getMock('Magento\\Webapi\\Model\\Config\\ClassReflector\\TypeProcessor', array(), array(), '', false); $this->_wsdlGenerator = new \Magento\Webapi\Model\Soap\Wsdl\Generator($this->_soapConfigMock, $this->_wsdlFactoryMock, $this->_cacheMock, $this->_typeProcessor); parent::setUp(); }
/** * Generate WSDL file based on requested services. * * @param array $requestedServices * @param string $endPointUrl * @return string * @throws \Magento\Webapi\Exception */ protected function _generate($requestedServices, $endPointUrl) { $this->_collectCallInfo($requestedServices); $wsdl = $this->_wsdlFactory->create(self::WSDL_NAME, $endPointUrl); $wsdl->addSchemaTypeSection(); $faultMessageName = $this->_addGenericFaultComplexTypeNodes($wsdl); foreach ($requestedServices as $serviceClass => $serviceData) { $portTypeName = $this->getPortTypeName($serviceClass); $bindingName = $this->getBindingName($serviceClass); $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($serviceClass); $serviceName = $this->getServiceName($serviceClass); $wsdl->addService($serviceName, $portName, Wsdl::TYPES_NS . ':' . $bindingName, $endPointUrl, SOAP_1_2); foreach ($serviceData['methods'] as $methodName => $methodData) { $operationName = $this->getOperationName($serviceClass, $methodName); $bindingDataPrototype = array('use' => 'literal'); $inputBinding = $bindingDataPrototype; $inputMessageName = $this->_createOperationInput($wsdl, $operationName, $methodData); $outputMessageName = false; $outputBinding = false; if (isset($methodData['interface']['out']['parameters'])) { $outputBinding = $bindingDataPrototype; $outputMessageName = $this->_createOperationOutput($wsdl, $operationName, $methodData); } $faultBinding = array_merge($bindingDataPrototype, array('name' => Fault::NODE_DETAIL_WRAPPER)); $wsdl->addPortOperation($portType, $operationName, $inputMessageName, $outputMessageName, array('message' => $faultMessageName, 'name' => Fault::NODE_DETAIL_WRAPPER)); $bindingOperation = $wsdl->addBindingOperation($binding, $operationName, $inputBinding, $outputBinding, $faultBinding, SOAP_1_2); $wsdl->addSoapOperation($bindingOperation, $operationName, SOAP_1_2); } } return $wsdl->toXML(); }
protected function setUp() { $this->_soapConfigMock = $this->getMockBuilder('Magento\\Webapi\\Model\\Soap\\Config')->disableOriginalConstructor()->getMock(); $_wsdlMock = $this->getMockBuilder('Magento\\Webapi\\Model\\Soap\\Wsdl')->disableOriginalConstructor()->setMethods(['addSchemaTypeSection', 'addService', 'addPortType', 'addBinding', 'addSoapBinding', 'addElement', 'addComplexType', 'addMessage', 'addPortOperation', 'addBindingOperation', 'addSoapOperation', 'toXML'])->getMock(); $this->_wsdlFactoryMock = $this->getMockBuilder('Magento\\Webapi\\Model\\Soap\\Wsdl\\Factory')->setMethods(['create'])->disableOriginalConstructor()->getMock(); $this->_wsdlFactoryMock->expects($this->any())->method('create')->will($this->returnValue($_wsdlMock)); $this->_cacheMock = $this->getMockBuilder('Magento\\Webapi\\Model\\Cache\\Type')->disableOriginalConstructor()->getMock(); $this->_cacheMock->expects($this->any())->method('load')->will($this->returnValue(false)); $this->_cacheMock->expects($this->any())->method('save')->will($this->returnValue(true)); $this->_typeProcessor = $this->getMock('Magento\\Framework\\Reflection\\TypeProcessor', [], [], '', false); $this->storeManagerMock = $this->getMockBuilder('Magento\\Framework\\Store\\StoreManagerInterface')->setMethods(['getStore'])->disableOriginalConstructor()->getMockForAbstractClass(); $storeMock = $this->getMockBuilder('Magento\\Store\\Model\\Store')->setMethods(['getCode', '__wakeup'])->disableOriginalConstructor()->getMock(); $this->storeManagerMock->expects($this->any())->method('getStore')->will($this->returnValue($storeMock)); $storeMock->expects($this->any())->method('getCode')->will($this->returnValue('store_code')); $helper = new \Magento\TestFramework\Helper\ObjectManager($this); $this->_wsdlGenerator = $helper->getObject('Magento\\Webapi\\Model\\Soap\\Wsdl\\Generator', ['apiConfig' => $this->_soapConfigMock, 'wsdlFactory' => $this->_wsdlFactoryMock, 'cache' => $this->_cacheMock, 'typeProcessor' => $this->_typeProcessor, 'storeManagerMock' => $this->storeManagerMock]); parent::setUp(); }