Patch for testcase wsoap:header with required=false

"John Kaputin (gmail)" <[email protected]>
Newsgroups gmane.comp.web.services.description
Message-ID <[email protected]>
I have an action item in the Minutes of the weekly call 25 Jan to create a
test case for the last outstanding test on the Interchange Test Coverage
Report.  This is to test wsoap:header with required=false.

Two candidate test cases are attached as patch files:

1) If you want to include required=false in the message interop testing,
then use MessageTest-5G.patch.txt. This patch file adds an operation to this
WSDL with required=false in the wsoap:header element in each binding. I
could create a new separate testcase, MessageTest-7G, if you prefer.

2) If you just want to check that implementations can parse required=false
in 'good' wsdl (but don't need to use it in the message interop testing),
then use SOAPHeader-1G.patch.txt. This is a cut down version of
MessageTest-5G with just the operation that contains the wsoap:header with
required=false.

regards,
John Kaputin.
MessageTest-5G.patch.txt (text/plain, 2.2 KB)
### Eclipse Workspace Patch 1.0
#P descWork
Index: test-suite/documents/good/MessageTest-5G/SOAPservice.wsdl
===================================================================
RCS file: /sources/public/2002/ws/desc/test-suite/documents/good/MessageTest-5G/SOAPservice.wsdl,v
retrieving revision 1.3
diff -u -r1.3 SOAPservice.wsdl
--- test-suite/documents/good/MessageTest-5G/SOAPservice.wsdl	22 Jan 2007 09:26:19 -0000	1.3
+++ test-suite/documents/good/MessageTest-5G/SOAPservice.wsdl	1 Feb 2007 22:56:37 -0000
@@ -52,6 +52,11 @@
       <input element="xsmt:echoString2"/>
       <output element="xsmt:echoString2Return"/>
     </operation>
+    <operation name="EchoString3" pattern="http://www.w3.org/2006/01/wsdl/in-out">
+      <documentation>Simple echo service - pass in a string, get that string back.</documentation>
+      <input element="xsmt:echoString3"/>
+      <output element="xsmt:echoString3Return"/>
+    </operation>
     <operation name="EchoStringOutFault" pattern="http://www.w3.org/2006/01/wsdl/in-out">
       <documentation><![CDATA[
         Operation is given a string
@@ -84,6 +89,13 @@
         <wsoap:header element="tm:TestSOAPHeader" required="true" mustUnderstand="true"/>
       </output>
     </operation>
+    <operation ref="tns:EchoString3"
+      wsoap:action="http://example.org/message-test/action/EchoString3">
+      <input/>
+      <output>
+        <wsoap:header element="tm:TestSOAPHeader" required="false" mustUnderstand="true"/>
+      </output>
+    </operation>
     <operation ref="tns:EchoStringOutFault"
       wsoap:action="http://example.org/message-test/action/EchoStringOutFault">
       <input/>
@@ -114,6 +126,13 @@
         <wsoap:header element="tm:TestSOAPHeader" required="true"/>
       </output>
     </operation>
+    <operation ref="tns:EchoString3"
+      wsoap:action="http://example.org/message-test/action/EchoString3">
+      <input/>
+      <output>
+        <wsoap:header element="tm:TestSOAPHeader" required="false"/>
+      </output>
+    </operation>
     <operation ref="tns:EchoStringOutFault"
       wsoap:action="http://example.org/message-test/action/EchoStringOutFault">
       <input/>
SOAPHeader-1G.patch.txt (text/plain, 6.5 KB)
### Eclipse Workspace Patch 1.0
#P descWork
Index: test-suite/documents/good/SOAPHeader-1G/SOAPservice.wsdl
===================================================================
RCS file: test-suite/documents/good/SOAPHeader-1G/SOAPservice.wsdl
diff -N test-suite/documents/good/SOAPHeader-1G/SOAPservice.wsdl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ test-suite/documents/good/SOAPHeader-1G/SOAPservice.wsdl	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,64 @@
+<description xmlns="http://www.w3.org/2006/01/wsdl"
+  targetNamespace="http://example.org/message-test" xmlns:tns="http://example.org/message-test"
+  xmlns:wsoap="http://www.w3.org/2006/01/wsdl/soap"
+  xmlns:xsmt="http://example.org/message-test/xsd"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:tm="http://www.w3.org/2002/ws/desc/6/10/test-module">
+  
+  <documentation><![CDATA[
+    This test checks that a wsoap:header element can be specified required="false".
+ ]]></documentation>
+  <types>
+    <import xmlns="http://www.w3.org/2001/XMLSchema" schemaLocation="TestHeader.xsd"
+      namespace="http://www.w3.org/2002/ws/desc/6/10/test-module"/>
+    <xs:schema elementFormDefault="qualified" targetNamespace="http://example.org/message-test/xsd"
+      xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsmt="http://example.org/message-test/xsd">
+      <xs:element name="echoString3" type="xs:string"/>
+      <xs:element name="echoString3Return" type="xs:string"/>
+    </xs:schema>
+  </types>
+  <interface name="SimpleEcho">
+    <documentation>This minimal interface defines four operations, to test bindings for input
+      messages, output messages, and fault messages.</documentation>
+    <operation name="EchoString3" pattern="http://www.w3.org/2006/01/wsdl/in-out">
+      <documentation>Simple echo service - pass in a string, get that string back.</documentation>
+      <input element="xsmt:echoString3"/>
+      <output element="xsmt:echoString3Return"/>
+    </operation>
+  </interface>
+ 
+  <binding name="SimpleEchoSOAPBindingMU" interface="tns:SimpleEcho"
+    type="http://www.w3.org/2006/01/wsdl/soap" wsoap:version="1.2"
+    wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/">
+    <documentation> This binding tests the composition of soap modules specified at various levels. </documentation>
+    <operation ref="tns:EchoString3"
+      wsoap:action="http://example.org/message-test/action/EchoString3">
+      <input/>
+      <output>
+        <wsoap:header element="tm:TestSOAPHeader" required="false" mustUnderstand="true"/>
+      </output>
+    </operation>
+  </binding>
+
+  <binding name="SimpleEchoSOAPBinding" interface="tns:SimpleEcho"
+    type="http://www.w3.org/2006/01/wsdl/soap" wsoap:version="1.2"
+    wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/">
+    <documentation> This binding tests the composition of soap modules specified at various levels. </documentation>
+    <operation ref="tns:EchoString3"
+      wsoap:action="http://example.org/message-test/action/EchoString3">
+      <input/>
+      <output>
+        <wsoap:header element="tm:TestSOAPHeader" required="false"/>
+      </output>
+    </operation>
+
+  </binding>
+  
+  <service name="SOAPHeaderService" interface="tns:SimpleEcho">
+    <documentation>Exercise each endpoint in order.</documentation>
+    <endpoint name="SOAPHeaderMustUnderstand" binding="tns:SimpleEchoSOAPBindingMU"
+      address="http://example.org/SOAPHeader-1G/endpoint-1"/>
+    <endpoint name="SOAPHeader" binding="tns:SimpleEchoSOAPBinding"
+      address="http://example.org/SOAPHeader-1G/endpoint-2"/>
+  </service>
+</description>
Index: test-suite/documents/good/SOAPHeader-1G/TestHeader.xsd
===================================================================
RCS file: test-suite/documents/good/SOAPHeader-1G/TestHeader.xsd
diff -N test-suite/documents/good/SOAPHeader-1G/TestHeader.xsd
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ test-suite/documents/good/SOAPHeader-1G/TestHeader.xsd	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,13 @@
+<xs:schema elementFormDefault="qualified" targetNamespace="http://www.w3.org/2002/ws/desc/6/10/test-module"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:test="http://www.w3.org/2002/ws/desc/6/10/test-module">
+  <xs:element name="TestSOAPHeader">
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:restriction base="xs:anyType">
+	      <xs:anyAttribute namespace='##other' processContents='lax' />
+        </xs:restriction>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
Index: test-suite/documents/good/SOAPHeader-1G/SOAPservice.filename
===================================================================
RCS file: test-suite/documents/good/SOAPHeader-1G/SOAPservice.filename
diff -N test-suite/documents/good/SOAPHeader-1G/SOAPservice.filename
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ test-suite/documents/good/SOAPHeader-1G/SOAPservice.filename	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,1 @@
+<filename>SOAPHeader-1G/SOAPservice.wsdl</filename>
Index: test-suite/documents/good/SOAPHeader-1G/TestMetadata.xml
===================================================================
RCS file: test-suite/documents/good/SOAPHeader-1G/TestMetadata.xml
diff -N test-suite/documents/good/SOAPHeader-1G/TestMetadata.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ test-suite/documents/good/SOAPHeader-1G/TestMetadata.xml	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<TestMetadata xmlns="http://www.w3.org/2006/02/wsdl/TestMetadata">
+	<Identifier>
+		http://dev.w3.org/cvsweb/2002/ws/desc/test-suite/documents/good/SOAPHeader-1G
+	</Identifier>
+	<Title>Good Document SOAPHeader-1G</Title>
+	<Purpose>For testing SOAP extensions</Purpose>
+	<Description>Exercise wsoap:header with required="false".</Description>
+	<Status>accepted</Status>
+	<SpecRef></SpecRef>
+	<Preconditions>none</Preconditions>
+	<Inputs>
+		<Input role="root">SOAPservice.wsdl</Input>
+		<Input role="required-extension">http://www.w3.org/2006/01/wsdl/soap</Input>
+	</Inputs>
+	<ExpectedResults>
+		<Successful>true</Successful>
+	</ExpectedResults>
+	<Version>1.0</Version>
+	<Contributor>
+		<Name>John Kaputin</Name>
+		<Affiliation>IBM</Affiliation>
+		<EMail>[email protected]</EMail>
+	</Contributor>
+	<Rights>http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231</Rights>
+	<Grouping>/documents/good</Grouping>
+	<SeeAlso><Reference>http://www.w3.org/TR/wsdl20</Reference></SeeAlso>
+</TestMetadata>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.