Subject: Possible new testcase for BJM60009
|Prerequisites||<service> element with <binding.jms>
child with either no <response> child, or a <response> child
with no <destination> child
Request message received as part of a request/response MEP with null JMSReplyTo destination
|Predicate||The request is not processed and an error is raised|
|Tags||JMSReplyTo service response destination|
Given all the rest of the JMS test cases which are not tested have a justification, I can't see a justification for omitting this testcase, so I feel we really ought to try to create a test for this. Having said that I cannot think of a way that we can test this without at least some built-in assumptions about message ordering. Otherwise the test needs to detect the absence of processing, which is likely to be unreliable (e.g. wait 1 minute to see that nothing happens, and if so assume that processing has terminated).
I was thinking the test would be along the following lines:
Composite with service with JMS binding.
Interface with a request/response operation and a string parameter.
Component implementation which prints out the string parameter value to standard output.
JMS test client sends 3 messages to the destination configured on the JMS binding. These messages are mapped by the operation selector to the request/response operation, with the string parameter set to "message1", "message2", "message3". The test client sends three messages; the second message has null JMSReplyTo; the client waits for the response from the 1st message before sending the second, and waits for the response to the third message before completing. The test verifies that the component prints out "message1" and "message3". This assumes that message ordering is maintained between the JMS client and the component implementation. If its not possible to record the output of the component some other way to verify that the 1st and 3rd invocation worked and the second failed would be needed.
An alternative approach would be for the component implementation to have a reference to a web service. The test would check that this web service is called for request/reply messages with a JMSreplyTo and not for ones with no JMSreplyTo.
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU