/** * @group ZF-5330 */ public function testDumpOrXmlOnlyAfterGeneratedAutoDiscoverWsdl() { $server = new Zend_Soap_AutoDiscover(); try { $server->dump(false); $this->fail(); } catch (Exception $e) { $this->assertTrue($e instanceof Zend_Soap_AutoDiscover_Exception); } try { $server->toXml(); $this->fail(); } catch (Exception $e) { $this->assertTrue($e instanceof Zend_Soap_AutoDiscover_Exception); } }
public function autodiscoverWsdlDocument($wsClassName = null, $log = FALSE) { $wsClassName = self::generateWSClassName($wsClassName); $wsdlStrategy = new Zend_Soap_Wsdl_Strategy_Composite(); $wsdlStrategy->connectTypeToStrategy('Logic_WebService_Object_Bonus[]', Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex); $wsdlStrategy->connectTypeToStrategy('Logic_WebService_Object_DepositData[]', Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex); $wsdlStrategy->connectTypeToStrategy('Logic_WebService_Handler_Response_Step[]', Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex); $wsdlStrategy->connectTypeToStrategy('Logic_WebService_Handler_Response_Option[]', Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex); $wsdlStrategy->connectTypeToStrategy('Logic_WebService_Object_DepositDuration[]', Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex); //$wsdlStrategy->connectTypeToStrategy('Logic_WebService_Handler_Response_Option', Zend_Soap_Wsdl_Strategy_AnyType); $wsdlStrategy->connectTypeToStrategy('float[]', Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence); $wsdlStrategy->connectTypeToStrategy('string[]', Zend_Soap_Wsdl_Strategy_AnyType); $autodisc = new Zend_Soap_AutoDiscover($wsdlStrategy); $autodisc->setClass($wsClassName); $autodisc->dump(APPLICATION_PATH . '/../tmp/' . $wsClassName . '.tmp'); if (!is_readable(APPLICATION_PATH . '/../tmp/' . $wsClassName . '.tmp')) { throw new SoapFault('No "/../tmp/' . $wsClassName . '.tmp" or fail is unreadable', '007'); } $return = file_get_contents(APPLICATION_PATH . '/../tmp/' . $wsClassName . '.tmp'); if ($return === false && $log) { throw new SoapFault('Error during reading of WSDL, fail: "/../tmp/' . $wsClassName . '.tmp"', '008'); } return $return; }