- From: Phil Adams <phil_adams@us.ibm.com>
- Date: Tue, 11 Nov 2008 14:00:08 -0600
- To: public-soap-jms@w3.org
- Message-ID: <OFFF3D4A80.60345381-ON862574FE.006D79EE-862574FE.006DE094@us.ibm.com>
Hi everyone,
As promised on the call this morning, here is a set of instructions for
defining a new testcase.
1) Familiarize yourself with the existing testcase documentation,
available here:
http://dev.w3.org/2008/ws/soapjms/testcases/
Note that from most of the individual pages that make up the testcase
documentation, there is a link to the source xml file for that page.
2) Define a new "testcase" element (to be added to testcases.xml) that
looks like this:
<testcase xml:id="test0002"
origin=""
cr="REQUIRED">
<title>SOAP 1.1 two-way request</title>
<description><![CDATA[SOAP 1.1 two-way request message sent to a
request queue, and response message returned to response queue.]]>
</description>
<assertions>
<assertion id="Protocol-2002"/>
<assertion id="Protocol-2004"/>
<assertion id="Protocol-2009"/>
<assertion id="Protocol-2010"/>
<assertion id="Protocol-2016"/>
<assertion id="Protocol-2018"/>
<assertion id="Protocol-2021"/>
<assertion id="Protocol-2022"/>
<assertion id="Protocol-2027"/>
<assertion id="Protocol-2029"/>
<assertion id="Protocol-2034"/>
<assertion id="Protocol-2036"/>
<assertion id="Protocol-2037"/>
<assertion id="Protocol-2038"/>
<assertion id="Protocol-2040"/>
<assertion id="Protocol-2050"/>
</assertions>
<message-exchange type="SOAP11-JMS-In-Out">
<message from="A" to="B"
document="messages/soap11/message0002request.xml" name="message"
endpointURI="jms:jndi:jms/MyQueue&jndiConnectionFactoryName=jms/MyCF&targetService=EchoPort">
<assert test="jmsmsg:MessageType = bytes"/>
<assert test="jmsmsg:MessageID = ${request_message_id}"/>
<assert test="jmsmsg:JMSDeliveryMode = 2"/>
<assert test="jmsmsg:JMSPriority = 4"/>
<assert test="jmsmsg:JMSExpiration = 0"/>
<assert test="jmsmsg:JMSReplyTo = ${jms_response_dest}"/>
<assert test="jmsmsg:JMSCorrelationID = null"/>
<assert test="jmsmsg:JMSDestination = ${jms_request_dest}"/>
<assert test="jmsmsg:JMSRedelivered = false"/>
<assert test="jmsmsg:SOAPJMS_bindingVersion = '1.0'"/>
<assert test="jmsmsg:SOAPJMS_targetService = 'EchoPort'"/>
<assert test="jmsmsg:SOAPJMS_contentType = 'text/xml'"/>
<assert test="jmsmsg:SOAPJMS_soapAction = ''"/>
<assert test="jmsmsg:SOAPJMS_requestIRI =
'jms:jndi:jms/MyQueue'"/>
<assert test="jmsmsg:JMSMessageBody = ${soap_request_msg}"/>
</message>
<message from="B" to="A"
document="messages/soap11/message0002response.xml" name="message">
<assert test="jmsmsg:MessageType = bytes"/>
<assert test="jmsmsg:MessageID = ${response_message_id}"/>
<assert test="jmsmsg:JMSDeliveryMode = 2"/>
<assert test="jmsmsg:JMSPriority = 4"/>
<assert test="jmsmsg:JMSExpiration = 0"/>
<assert test="jmsmsg:JMSReplyTo = null"/>
<assert test="jmsmsg:JMSCorrelationID =
${request_message_id}"/>
<assert test="jmsmsg:JMSDestination = ${jms_response_dest}"/>
<assert test="jmsmsg:JMSRedelivered = false"/>
<assert test="jmsmsg:SOAPJMS_bindingVersion = '1.0'"/>
<assert test="jmsmsg:SOAPJMS_contentType = 'text/xml'"/>
<assert test="jmsmsg:JMSMessageBody = ${soap_response_msg}"/>
</message>
</message-exchange>
</testcase>
Notes:
a) Assign a unique "id" attribute (e.g. "test0003")
b) Enter a short testcase name for the "title" element and a slightly
longer description in the "description" element.
Basically, the title and description should convey what is (perhaps)
unique about the testcase or how it is
distinguished from the other testcases.
c) In the "assertions" element, add an "assertion" element for each
assertion (from the binding spec) which this
testcase tests for.
d) In the "message-exchange" element's "type" attribute, enter the MEP
associated with this testcase.
The valid MEPs are defined here:
http://dev.w3.org/2008/ws/soapjms/testcases/meps/meps.html
e) There will be 1 "message" element for a one-way testcase, and 2
elements for a two-way testcase.
f) In each "message" element, set the "from" and "to" attributes
appropriately, and set the "document" attribute
to refer to the xml file where the SOAP message is defined (this will
be within the "messages/soap11" or
"messages/soap12" directory.
g) If the "message" element represents a request message, then set the
"endpointURI" attribute to be the
endpoint location URI for that testcase.
h) For each "message" element, add a collection of "assert" elements (as
in the example above)
which describe the properties which must be set on that particular
message.
You can use variables as necessary when defining the assert elements.
The variables are defined here:
http://dev.w3.org/2008/ws/soapjms/testcases/testcases/testcases.html
3) Create a message defintion file (referenced from the "message"
element's "document" element) which
contains the SOAP message for that testcase. Here's an example:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:echoStringInput xmlns:ns="http://soapjms.sample">
<echoInput>Hello world!</echoInput>
</ns:echoStringInput>
</soapenv:Body>
</soapenv:Envelope>
4) Email your testcase definitions to phil_adams@us.ibm.com and I'll
incorporate them into the CVS repository.
Let me know if you have any questions.
Regards,
Phil Adams
WebSphere Development - Web Services
IBM Austin, TX
email: phil_adams@us.ibm.com
office: (512) 838-6702 (tie-line 678-6702)
mobile: (512) 750-6599
Received on Tuesday, 11 November 2008 20:01:35 UTC