# SOAP Builders Round IV : Web Services Interoperability Testing

## Overview

The following tests demonstrate other areas of WSDL interoperability between SOAP-based web service toolkits. The first test suite Group G cover testing the binding of messages based on the MIME multipart mechanism for encapsulation of compound documents. This test area covers SOAP 1.1 messages with attachments in both RPC style and Document Literal style test cases. The Group H also using SOAP 1.1 cover fault messaging where the content of faults thrown by an operation are passed as a parameter to the operation. Group I covers WSDL/XSD testing. Methods for these tests include all the methods used in round 1 and round 2 but use as DOC/LIT soap messages instead of RPC/ENC soap messages. The description overview under each test group have links detailing the test specifications. Results and links to the wsdls and endpoints are included in each group section.

## Group G Tests

## SwA/DIME (attachments)

- SOAP Messages with Attachments The ability to send and receive attachments will be tested using the SOAP Messages with Attachments specification. Two sets of operations and SOAP bindings are defined for test purposes:

- RPC style test cases described in this WSDL document.
- Document/literal style test cases described in this WSDL document.

- Direct Internet Message Encapsulation The ability to send and receive attachments will be tested using DIME packaging in conjunction with the WS-Attachments conventions for packaging SOAP messages. Two sets of operations and SOAP bindings are defined for test purposes:

- RPC style test cases described in this WSDL document.
- Document/literal style test cases described in this WSDL document.

## The procedure

Here are the steps for each test and a corresponding table that illustrates the code being generated and the calls being made.

1. Generate and execute client code based on given wsdl.
2. Execute client against every service for Group G Fault tests.

#### The Tests

Test | Description | Binding Style/Use | Virtuoso URL
Dime Doc/Lit | Series of Tests · echoBase64AsAttachement() · echoAttachementAsBase64() · echoAttachment() · echoAttachments() · echoAttachmentAsString() · echoUnrefAttachments() | Doc/Literal | http://demo.openlinksw.com:8890/r4/groupG/dime/doc/services.wsdl
Dime RPC | Series of Tests · echoBase64AsAttachement() · echoAttachementAsBase64() · echoAttachment() · echoAttachments() · echoAttachmentAsString() | Rpc/encoded | http://demo.openlinksw.com:8890/r4/groupG/dime/rpc/services.wsdl
SwA Doc/Lit |  | Doc/Literal |
SwA RPC |  | Rpc/encoded |

### Group H Tests

### Fault message processing

The Test Specification Document outlines the test cases. WSDL documents:

- simple-rpc-encoded
- complex-rpc-encoded
- simple-doc-literal
- complex-doc-literal
- soapfault

## The procedure

Here are the steps for each test and a corresponding table that illustrates the code being generated and the calls being made.

1. Generate and execute client code based on given wsdl.
2. Execute client against every service for Group H Fault tests.

#### The Tests

Test | Description | Binding Style/Use | Virtuoso URL
simple-rpc-encoded | Series of Tests · echoEmptyFault() · echoStringFault() · echoIntArrayFault() · echoMultipleFaults1(1-4) · echoMultipleFaults2(1-4) · echoMultipleFaults3(1-3) · echoMultipleFaults4(1-3) | Rpc/encoded | http://demo.openlinksw.com:8890/r4/groupH/simple/rpc/services.wsdl
complex-rpc-encoded | Series of Tests · echoSOAPStructFault() · echoBaseStructFault() · echoExtendedStructFault() · echoMultipleFaults1(1-3) · echoMultipleFaults2(1-4) | Rpc/encoded | http://demo.openlinksw.com:8890/r4/groupH/complex/rpc/services.wsdl
simple-doc-literal |  | Doc/Literal | http://demo.openlinksw.com:8890/r4/groupH/simple/doc/services.wsdl
complex-doc-literal |  | Doc/Literal | http://demo.openlinksw.com:8890/r4/groupH/complex/doc/services.wsdl
soapfault |  | SoapFault |

### Group I Tests

### WSDL/XSD testing

The Test Specification Document outlines the test cases. WSDL documents:

- round4XSD.wsdl

## The procedure

Here are the steps for each test and a corresponding table that illustrates the code being generated and the calls being made.

3. Generate and execute client code based on given wsdl.
4. Execute client against every service for Group I WSDL/XSD test.

#### The Tests

Test | Description | Binding Style/Use | Virtuoso URL
WSDL/XSD | Series of Tests echoVoid() echoInteger() echoFloat() echoString(1) echoString(2) echoBase64() echoDate() echoComplexType(1) echoComplexType(2) echoIntegerMultiOccurs() echoFloatMultiOccurs() echoStringMultiOccurs(1) echoStringMultiOccurs(2) echoComplexTypeMultiOccurs(1) echoComplexTypeMultiOccurs(2) echoDecimal() echoBoolean() echoHexBinary() echoComplexTypeAsSimpleTypes(1) echoComplexTypeAsSimpleTypes(2) echoSimpleTypesAsComplexType(1) echoSimpleTypesAsComplexType(2) echoNestedComplexType(1) echoNestedComplexType(2) echoNestedMultiOccurs() echoChoice() echoEnum() echoAnyType() echoAnyElement() echoVoidSoapHeader(1) echoVoidSoapHeader(2) echoVoidSoapHeader(3) echoVoidSoapHeader(4) echoVoidSoapHeader(5) echoVoidSoapHeader(6) | Rpc/encoded | http://demo.openlinksw.com:8890/r4/groupI/services.wsdl

##