/** * @group ZF-8948 * @group ZF-5766 */ public function testRecursiveWsdlDependencies() { $this->server->setComplexTypeStrategy(new \Zend\Soap\Wsdl\ComplexTypeStrategy\ArrayOfTypeSequence()); $this->server->setClass('\\ZendTest\\Soap\\TestAsset\\Recursion'); $this->bindWsdl($this->server->generate()); // <types> // <xsd:schema targetNamespace="http://localhost/my_script.php"> // <xsd:complexType name="Zend_Soap_AutoDiscover_Recursion"> // <xsd:all> // <xsd:element name="recursion" type="tns:Zend_Soap_AutoDiscover_Recursion"/> $this->assertSpecificNodeNumberInXPath(1, '//wsdl:types/xsd:schema/xsd:complexType[@name="Recursion"]/xsd:all/' . 'xsd:element[@name="recursion" and @type="tns:Recursion"]'); $this->assertValidWSDL($this->dom); $this->testDocumentNodes(); }
public function testGetTypes() { $wsdlFilename = __DIR__ . '/TestAsset/GetTypesWsdlTest.wsdl'; $autodiscover = new AutoDiscover(); $autodiscover->setServiceName('ExampleService'); $autodiscover->setComplexTypeStrategy(new \Zend\Soap\Wsdl\ComplexTypeStrategy\ArrayOfTypeComplex()); $autodiscover->setClass('\\ZendTest\\Soap\\TestAsset\\AutoDiscoverTestClass2'); $autodiscover->setUri('http://example.com'); $wsdl = $autodiscover->generate(); $wsdl->dump($wsdlFilename); $server = new Server($wsdlFilename); $server->setClass('\\ZendTest\\Soap\\TestAsset\\AutoDiscoverTestClass2'); $client = new Client\Local($server, $wsdlFilename); $soapClient = $client->getSoapClient(); $typesArray = $soapClient->__getTypes(); $this->assertCount(2, $typesArray); $count = 0; foreach ($typesArray as $element) { if (strpos($element, 'struct AutoDiscoverTestClass1') === 0 or strpos($element, 'AutoDiscoverTestClass1 ArrayOfAutoDiscoverTestClass1') === 0) { $count++; } } $this->assertEquals(2, $count, 'Invalid types'); unlink($wsdlFilename); }