Which faults are testable

Here's a quick cut at which of the predefined faults in section 5 of the
SOAP binding are testable or not.  Strictly speaking "not testable"
means "testing this really means testing some aspect of an endpoint's
application logic, not anything we specify."

Except as noted, none of these faults is REQUIRED.  In the case of the
Invalid Addressing Header faults, the subsubcode is OPTIONAL.  I believe
this means:

    * REQUIRED faults must be produced by all implementations.  However,
      only two implementations need to include the subsubcode in their
      faults.  This can be handled by having two versions of the test,
      one of which fails if the subsubcode is absent.  All
      implementations must pass the weaker version, at least two must
      pass the stronger version.
    * For each test for an OPTIONAL fault, there must be at least two
      implementations that pass it.  It doesn't have to always be the
      same two implementations.

So, without further ado:

    * Invalid Addressing Header/Invalid Address:  Testable.  Send a
      request message with a [response endpoint] whose wsa:Address is
      (e.g.) complex content.  Under HTTP, this should produce a fault
      with the given fault code and subcode
    * Invalid Addressing Header/Invalid EPR: May not be testable.  I
      believe that this is aimed at semantic errors (this EPR is
      well-formed, but I don't like it).  We don't specify when this
      happens, only that it can.
    * Invalid Addressing Header/Invalid Cardinality (required by SOAP
      3.2, subsubcode optional): Testable  Send a message with (e.g.) 2
      wsa:To elements.
    * Invalid Addressing Header/Missing Address in EPR: Testable.  Send
      a message with a [response endpoint] with no wsa:Address element.
    * Invalid Addressing Header/Duplicate Message ID: Not testable.  We
      don't specify that anyone MUST send this fault.  In fact, we
      explicitly /don't/ specify behavior in the face of a duplicate ID.
    * Invalid Addressing Header/Action Mismatch: Testable (required by
      SOAP:2.4):  Send a message with one URI for the SOAP action HTTP
      header, a different URI for wsa:Action.
    * Message Addressing Header Required: Testable.  Send a request
      message with no wsa:Action to an endpoint advertising
      UsingAddressing with wsa:Required = true.
    * Destination unreachable: Not testable.  Reachability depends on
      the implementation.
    * Action Not Supported: Not testable:  What actions are supported is
      up to the implementation.
    * Endpoint Unavailable: Not testable: Availability is up to the
      implementation.

Received on Tuesday, 8 November 2005 07:32:17 UTC