Beispiel #1
0
 /**
  * Assert operation message (input/output) and that message node is present in WSDL
  *
  * @param DOMElement $operationMessage
  * @param $methodName
  * @param $expectedDoc
  * @return DOMElement
  */
 protected function _assertMessage(DOMElement $operationMessage, $methodName, $expectedDoc)
 {
     $wsdlNs = Wsdl::WSDL_NS;
     $tns = Wsdl::TYPES_NS;
     $xsdNs = Wsdl::XSD_NS;
     $this->assertTrue($operationMessage->hasAttribute('message'));
     $messageName = str_replace("{$tns}:", '', $operationMessage->getAttribute('message'));
     $this->assertEquals(Wsdl::TYPES_NS . ':' . $messageName, $operationMessage->getAttribute('message'));
     $messageTypeName = $this->_autoDiscover->getElementComplexTypeName($messageName);
     $complexTypeXpath = "//{$wsdlNs}:types/{$xsdNs}:schema/{$xsdNs}:complexType[@name='%s']";
     /** @var DOMElement $messageComplexType */
     $messageComplexType = $this->_xpath->query(sprintf($complexTypeXpath, $messageTypeName))->item(0);
     $this->assertNotNull($messageComplexType, sprintf('Complex type for "%s" operation was not found in WSDL.', $methodName));
     $this->_assertDocumentation($expectedDoc, $messageComplexType);
     /** @var DOMElement $message */
     $expression = "//{$wsdlNs}:message[@name='{$messageName}']";
     $message = $this->_xpath->query($expression)->item(0);
     $this->assertNotNull($message, sprintf('Message "%s" not found in WSDL.', $messageName));
     $partXpath = "{$wsdlNs}:part[@element='{$tns}:{$messageName}']";
     $messagePart = $this->_xpath->query($partXpath, $message)->item(0);
     $this->assertNotNull($messagePart, sprintf('Message part not found in "%s".', $messageName));
     return $messageComplexType;
 }