Пример #1
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);
     }
 }
 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]);
 }
Пример #3
0
 /**
  * @expectedException \Exception
  */
 public function testTypeNotFound()
 {
     $definitions = $this->reader->readFile(__DIR__ . '/resources/base-wsdl-import.wsdl');
     $this->assertNotNull($definitions->findBinding('StockQuoteSoap2', 'http://www.example.com'));
 }
Пример #4
0
 private function fillHeader(Header $header, Message $message, \DOMElement $node)
 {
     $this->fillAbstractHeader($header, $message, $node);
     foreach ($node->childNodes as $childNode) {
         if ($childNode->namespaceURI == self::SOAP_NS && $childNode->localName == 'headerfault') {
             list($name, $ns) = DefinitionsReader::splitParts($node, $node->getAttribute("message"));
             $hMessage = $message->getDefinition()->findMessage($name, $ns);
             $headerFault = new HeaderFault();
             $this->fillAbstractHeader($headerFault, $hMessage, $childNode);
             $header->addFault($headerFault);
         }
     }
 }