public function testSimple() { $definitions = $this->wsdl->readFile(__DIR__ . '/res/easy.wsdl'); $service = $definitions->getService('easy'); $port = $service->getPort('easySOAP'); $soapService = $this->soap->getServiceByPort($port); $this->assertEquals('http://www.example.org/location', $soapService->getAddress()); $this->assertEquals('document', $soapService->getStyle()); $this->assertEquals('http://schemas.xmlsoap.org/soap/http', $soapService->getTransport()); $this->assertArrayHasKey('run', $soapService->getOperations()); $soapOperation = $soapService->getOperations()['run']; $this->assertEquals('http://www.example.org/run', $soapOperation->getAction()); $this->assertEquals('document', $soapOperation->getStyle()); $this->assertInstanceOf('GoetasWebservices\\XML\\WSDLReader\\Wsdl\\Binding\\Operation', $soapOperation->getOperation()); $input = $soapOperation->getInput(); $body = $input->getBody(); $this->assertEquals([], $body->getEncoding()); $this->assertEquals('literal', $body->getUse()); $this->assertEquals('', $body->getNamespace()); $bodyParts = $body->getParts(); $this->assertCount(1, $bodyParts); $this->assertInstanceOf('GoetasWebservices\\XML\\WSDLReader\\Wsdl\\Message\\Part', $bodyParts['requestParams']); $this->assertEquals('run', $bodyParts['requestParams']->getElement()->getName()); $output = $soapOperation->getOutput(); $body = $output->getBody(); $this->assertEquals([], $body->getEncoding()); $this->assertEquals('literal', $body->getUse()); $this->assertEquals('', $body->getNamespace()); $bodyParts = $body->getParts(); $this->assertCount(1, $bodyParts); $this->assertInstanceOf('GoetasWebservices\\XML\\WSDLReader\\Wsdl\\Message\\Part', $bodyParts['responseParams']); $this->assertEquals('runResponse', $bodyParts['responseParams']->getElement()->getName()); $faults = $soapOperation->getFaults(); $this->assertCount(2, $faults); $this->assertArrayHasKey('f1', $faults); $this->assertArrayHasKey('f2', $faults); $headers = $soapOperation->getOutput()->getHeaders(); $this->assertCount(1, $headers); $this->assertInstanceOf('GoetasWebservices\\XML\\SOAPReader\\Soap\\Header', $headers[0]); $this->assertCount(1, $headers[0]->getFaults()); $this->assertInstanceOf('GoetasWebservices\\XML\\SOAPReader\\Soap\\HeaderFault', $headers[0]->getFaults()[0]); }
public function testReadFile() { $events = array(); $this->dispatcher->addListener("#", function (Event $e, $name) use(&$events) { $events[] = [$e, $name]; }); $this->reader->readFile(__DIR__ . '/resources/base-wsdl-events.wsdl'); $expected = []; $expected[] = ['definitions_start', 'GoetasWebservices\\XML\\WSDLReader\\Events\\DefinitionsEvent']; $expected[] = ['service', 'GoetasWebservices\\XML\\WSDLReader\\Events\\ServiceEvent']; $expected[] = ['service.port', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Service\\PortEvent']; $expected[] = ['message', 'GoetasWebservices\\XML\\WSDLReader\\Events\\MessageEvent']; $expected[] = ['message.part', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Message\\PartEvent']; $expected[] = ['message', 'GoetasWebservices\\XML\\WSDLReader\\Events\\MessageEvent']; $expected[] = ['message.part', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Message\\PartEvent']; $expected[] = ['portType', 'GoetasWebservices\\XML\\WSDLReader\\Events\\PortTypeEvent']; $expected[] = ['portType.operation', 'GoetasWebservices\\XML\\WSDLReader\\Events\\PortType\\OperationEvent']; $expected[] = ['portType.operation.param', 'GoetasWebservices\\XML\\WSDLReader\\Events\\PortType\\ParamEvent']; $expected[] = ['portType.operation.param', 'GoetasWebservices\\XML\\WSDLReader\\Events\\PortType\\ParamEvent']; $expected[] = ['portType.operation', 'GoetasWebservices\\XML\\WSDLReader\\Events\\PortType\\OperationEvent']; $expected[] = ['portType.operation.param', 'GoetasWebservices\\XML\\WSDLReader\\Events\\PortType\\ParamEvent']; $expected[] = ['portType.operation.param', 'GoetasWebservices\\XML\\WSDLReader\\Events\\PortType\\ParamEvent']; $expected[] = ['portType.operation.fault', 'GoetasWebservices\\XML\\WSDLReader\\Events\\PortType\\FaultEvent']; $expected[] = ['binding', 'GoetasWebservices\\XML\\WSDLReader\\Events\\BindingEvent']; $expected[] = ['binding.operation', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Binding\\OperationEvent']; $expected[] = ['binding.operation.message', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Binding\\MessageEvent']; $expected[] = ['binding.operation.message', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Binding\\MessageEvent']; $expected[] = ['binding.operation', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Binding\\OperationEvent']; $expected[] = ['binding.operation.message', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Binding\\MessageEvent']; $expected[] = ['binding.operation.message', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Binding\\MessageEvent']; $expected[] = ['binding.operation.fault', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Binding\\FaultEvent']; $expected[] = ['binding.operation.fault', 'GoetasWebservices\\XML\\WSDLReader\\Events\\Binding\\FaultEvent']; $expected[] = ['definitions_end', 'GoetasWebservices\\XML\\WSDLReader\\Events\\DefinitionsEvent']; $this->assertCount(count($expected), $events); foreach ($expected as $index => $expectedData) { list($event, $name) = $events[$index]; $this->assertInstanceOf('Symfony\\Component\\EventDispatcher\\Event', $event); $this->assertInstanceOf('GoetasWebservices\\XML\\WSDLReader\\Events\\WsdlEvent', $event); $this->assertInstanceOf($expectedData[1], $event, "Event name '{$expectedData['0']}'"); $this->assertEquals($expectedData[0], $name); } }
/** * @expectedException \Exception */ public function testTypeNotFound() { $definitions = $this->reader->readFile(__DIR__ . '/resources/base-wsdl-import.wsdl'); $this->assertNotNull($definitions->findBinding('StockQuoteSoap2', 'http://www.example.com')); }