Beispiel #1
0
 public function testCompositeDelegatesAddingComplexTypesToSubStrategies()
 {
     $strategy = new Zend_Soap_Wsdl_Strategy_Composite(array(), "Zend_Soap_Wsdl_Strategy_AnyType");
     $strategy->connectTypeToStrategy("Zend_Soap_Wsdl_Book", "Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex");
     $strategy->connectTypeToStrategy("Zend_Soap_Wsdl_Cookie", "Zend_Soap_Wsdl_Strategy_DefaultComplexType");
     $wsdl = new Zend_Soap_Wsdl("SomeService", "http://example.com");
     $strategy->setContext($wsdl);
     $this->assertEquals("tns:Zend_Soap_Wsdl_Book", $strategy->addComplexType("Zend_Soap_Wsdl_Book"));
     $this->assertEquals("tns:Zend_Soap_Wsdl_Cookie", $strategy->addComplexType("Zend_Soap_Wsdl_Cookie"));
     $this->assertEquals("xsd:anyType", $strategy->addComplexType("Zend_Soap_Wsdl_Anything"));
 }
Beispiel #2
0
 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;
 }