# Web Services Addressing 1.0 Core and SOAP Binding Test Cases

Test cases from Arun Gupta (Sun) interleaved with Mark's features ticked off against the Web Services Addressing Test Suite Testcases

## Core

1. "none" URI (2.1) - REQUIRED
   1. For a request-response primitive using SOAP/HTTP, a service endpoint receives a message with wsa:ReplyTo set to "none" URI. The service endpoint MUST not send a protocol response back and generate an HTTP 202 response only. t1200
2. Endpoint Reference Infoset Representation (2.2) - REQUIRED
   1. Create an EPR "eprReply" as given below

      `<wsa:EndpointReference>
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      </wsa:EndpointReference>`

      The client sets [reply endpoint] to "eprReply" and invokes the service endpoint. Verify that the wsa:Reply-To is set to

      `<wsa:Reply-To xmlns:wsa="http://www.w3.org/2005/08/addressing/">
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      </wsa:Reply-To>` t1202

   2. `Add "eprFault"` t1203

   3. Create an EPR "eprReply" as given below

      `<wsa:EndpointReference>
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      <wsa:ReferenceParameters>
      <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
      </wsa:ReferenceParameters>
      </wsa:EndpointReference>`

      The client sets [reply endpoint] to "eprReply" and invokes the service endpoint. Verify that the wsa:Reply-To is set to

      `<wsa:Reply-To xmlns:wsa="http://www.w3.org/2005/08/addressing/">
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      <wsa:ReferenceParameters>
      <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
      </wsa:ReferenceParameters>
      </wsa:Reply-To>` t1206

   4. Create an EPR "eprReply" as given below

      `<wsa:EndpointReference>
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      <wsa:ReferenceParameters>
      <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
      </wsa:ReferenceParameters>
      <wsa:Metadata>
      <wsdl:definitions>
      ...
      </wsdl:definitions>
      </wsa:Metadata>
      </wsa:EndpointReference>`

      The client sets [reply endpoint] to "eprReply" and invokes the service endpoint. Verify that the wsa:Reply-To is set to

      `<wsa:Reply-To xmlns:wsa="http://www.w3.org/2005/08/addressing/">
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      <wsa:ReferenceParameters>
      <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
      </wsa:ReferenceParameters>
      <wsa:Metadata>
      <wsdl:definitions>
      ...
      </wsdl:definitions>
      </wsa:Metadata>
      </wsa:Reply-To>` t1207

3. Endpoint Reference Extensibility (2.5) - REQUIRED
   1. Create an EPR "eprReply" as given below

      `<wsa:EndpointReference xmlns:fabrikam="..." fabrikam:name="reply endpoint">
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      <wsa:ReferenceParameters fabrikam:total="1">
      <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
      </wsa:ReferenceParameters>
      <wsa:Metadata fabrikam:total="1">
      <wsdl:definitions>
      ...
      </wsdl:definitions>
      </wsa:Metadata>
      <fabrikam:otherMetadata>
      </fabrikam:otherMetadata>
      </wsa:EndpointReference>`

      The client sets [reply endpoint] to "eprReply" and invokes the service endpoint. Verify that service endpoint is able to process the [reply endpoint] EPR correctly. t1208

4. XML Infoset Representation of Message Addressing Properties (3.2) - REQUIRED To Be Defined
5. wsa:To defaulting (3.2) - REQUIRED
   1. For a request/response primitive using SOAP/HTTP, configure the service endpoint such that wsa:To is not generated in the response message. The client should receive the response using the channel specified by the SOAP protocol binding. For instance, SOAP 1.1/1.2 puts the reply message in HTTP response. t1230
6. wsa:ReplyTo defaulting (3.2) - REQUIRED
   1. For a request/response primitive using SOAP/HTTP, configure the client such that wsa:Reply-To is not generated (this may not be easy unless a hand-crafted message is used). The client should receive the response using the channel specified by the SOAP protocol binding. For instance, SOAP 1.1/1.2 puts the reply message in HTTP response. t1230
7. wsa:RelatesTo/@RelationshipType defaulting (3.2) - REQUIRED To Be Defined
8. Comparing IRIs (3.2.1) - REQUIRED
To Be Defined
9. Formulating a normal Reply (3.3) - REQUIRED
   1. Create an EPR "eprReply`"` as given below

      `<wsa:EndpointReference xmlns:fabrikam="..." >
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      <wsa:ReferenceParameters>
      <fabrikam:success wsa:isReferenceParameter="true">123456789<fabrikam:success>
      </wsa:ReferenceParameters>
      </wsa:EndpointReference>`

      The client sets [reply endpoint] to "eprReply" and invokes the service endpoint. The expected behavior is:

      - Service endpoint sends the normal response back to the client in the HTTP response.
      - On the client, validate the reference parameter received is `<fabrikam:success wsa:isReferenceParameter="true">123456789<fabrikam:success>`. t1232
10. Formulating a Fault Reply (3.3) - REQUIRED
    1. Create an EPR "eprFault" with

       `<wsa:EndpointReference xmlns:fabrikam="..." >
       <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
       <wsa:ReferenceParameters>
       <fabrikam:failure>123456789<fabrikam:failure>
       </wsa:ReferenceParameters>
       </wsa:EndpointReference>`

       The client sets [fault endpoint] to "eprFault" and invokes the service endpoint. The expected behavior is:

       - Service endpoint sends a fault response back to the client in the HTTP response.
       - On the client, validate the reference parameter received is `<fabrikam:failure wsa:isReferenceParameter="true">123456789<fabrikam:failure>.` t1233
    2. Create an EPR "eprReply`"` with

       `<wsa:EndpointReference xmlns:fabrikam="..." >
       <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
       <wsa:ReferenceParameters>
       <fabrikam:success wsa:isReferenceParameter="true">123456789<fabrikam:success>
       </wsa:ReferenceParameters>
       </wsa:EndpointReference>`

       The client sets [reply endpoint] to "eprReply", does not set [fault endpoint] and invokes the service endpoint. The expected behavior is:

       - Service endpoint sends a fault response back to the client in the HTTP response.
       - On the client, validate the reference parameter received is `<fabrikam:success wsa:isReferenceParameter="true">123456789<fabrikam:success>`. t1234

##
SOAP Binding

1. SOAP 1.2 Feature interaction with Action (2.4) - REQUIRED
   1. From the client, generate a SOAP 1.2 message where http://www.w3.org/2003/05/soap/features/action/Action feature has a non-null value. On the service endpoint, http://www.w3.org/20050/08/addressing/features/Action feature should exactly match that value. t1201
2. SOAP 1.2 Message Addressing Property binding (3.4) - REQUIRED To Be Defined
3. SOAP 1.2 Anonymous Address (3.5) - REQUIRED
   1. Create an EPR "eprReply`"` as given below

      `<wsa:EndpointReference>
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      </wsa:EndpointReference>`

      The client sets [reply endpoint] to "eprReply" and invokes the service endpoint. The expected behavior is:

      - Service endpoint sends the normal response back to the client in the HTTP response.
      t1231
   2. Create an EPR "eprFault`"` as given below

      `<wsa:EndpointReference>
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      </wsa:EndpointReference>`

      The client sets [fault endpoint] to "eprFault" and invokes the service endpoint. The expected behavior is:

      - Service endpoint sends the fault response back to the client in the HTTP response.
      t1233
4. SOAP 1.1 Message Addressing Property binding (4.2) - REQUIRED To Be Defined
5. SOAP 1.1 interaction with Action (4.2) - REQUIRED
   1. From the client, generate a SOAP 1.1 message with non-null [action] message addressing property. On the service endpoint, SOAPAction HTTP header must match the [action] property value.
   2. From the client, generate a SOAP 1.1 message with empty [action] message addressing property. On the service endpoint, SOAPAction HTTP header must match the [action] property value. (??)
6. SOAP 1.1 Anonymous Address (3.5) - REQUIRED
   1. Create an EPR "eprReply`"` as given below

      `<wsa:EndpointReference>
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      </wsa:EndpointReference>`

      The client sets [reply endpoint] to "eprReply" and invokes the service endpoint. The expected behavior is:

      - Service endpoint sends the normal response back to the client in the HTTP response.
      To Be Defined
   2. Create an EPR "eprFault`"` as given below

      `<wsa:EndpointReference>
      <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      </wsa:EndpointReference>`

      The client sets [fault endpoint] to "eprFault" and invokes the service endpoint. The expected behavior is:

      - Service endpoint sends the fault response back to the client in the HTTP response.
      To Be Defined
7. Faults (5) - OPTIONAL (except as below) To Be Defined
8. InvalidAddressingFailure Fault (5, 3.2) - REQUIRED
   1. Generate request messages with exactly one of the following properties duplicate in each message:
      - [source endpoint]
      - [destination]
      - [reply endpoint]
      - [fault endpoint]
      - [action]
      - [message id]

      In each case, the service endpoint must generate a fault with following properties:

      [Code] `S:Sender
      ` [Subcode] `wsa:InvalidAddressingHeader
      ` [Subsubcode] `wsa:InvalidCardinality
      ` [Reason] "A header representing a Message Addressing Property is not valid and the message cannot be processed"
      [Details] `<wsa:ProblemHeader>` element that conveys a copy of the offending header
      To Be Defined

Last updated: October 14, 2005 02:54 PM - pdowney