OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-iic message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: [ebxml-iic] Latest ebXML MS Abstract Test Suite for review


Jacques and all,


     Attached is the latest version of the ebXML MS Abstract Test Suite.
I have finished all 215 requirements ( with the exception of a few that I 
am not sure how to
implement yet ).

   I am ready to move onto documentation of the ebXML Conformance Test 
Suite document now,
as I feel that this material gives the necessary background  that will help
flesh out implementation details.

   Comments?

Regards,
Mike
Title: ebXML Test Suite Author: Michael Kass Organization: NIST Date: 10/20/2002 Version 0.4 This file was provided by the National Institute of Standards and Technology. This software can be redistributed and/or modified freely provided that any derivative works bear some notice that they are derived from it, and any modified versions bear some notice that they have been modified.

OASIS/ebXML MS 2.0 Abstract Conformance Test Suite

Test Object

ID

Description

Party

Operation

Message Expression

Test Case urn:TestCase:id:1 All ebXML messages must validate
Test Case urn:TestCase:id:2 SOAP message must be in root part of MIME message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that an SOAP Message is found in the root part of the MIME message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope]
Test Case urn:TestCase:id:3 All MIME parts must have a CID or Content-Location
TestStep 1 TestDriver
Send basic message header with manifest reference to payload PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]] [SOAP:Body/eb:Manifest/eb:Reference[@xlink:href=""
Add payload to message SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId ]]
Check if MIME Content-type is multipart/mime or not text/xml PreCondition /MIME:Messsage[@Content-Type = 'multipart/mime' or @Content-Type != 'text/xml']]
Verify that CID or Content-Location exists for both Message Package MIME part ConformanceCondition /MIME:Messsage[MIME:Container[1] and (@Content-Location or @Content-Id)]
Verify that CID or Content-Location exists for Payload MIME part ConformanceCondition /MIME:Messsage [MIME:Container[2] and (@Content-Location or @Content-Id)]
Test Case urn:TestCase:id:4 Message package Content-Type is text/xml
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify message package Content-type ConformanceCondition /MIME:Message[MIME:Container[0] and (@Content-Type = 'text/xml)')]
Test Case urn:TestCase:id:5 Start attribute present in MIME message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Check for presence of 'start' attribute in MIME message ConformanceCondition /MIME:Message[@start]
Test Case urn:TestCase:id:6 Process non-multipart messages
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[@Content-Type='text/xml' and MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader]
Verify that no Error messages were generated ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[not eb:ErrorList]]
Test Case urn:TestCase:id:7 Process multipart/no payload messages
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[@Content-Type='multipart/related' and MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:RefToMessageId=$RefToMessageId]]
Check for a returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader]
Verify that no Error messages were generated ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[not eb:ErrorList]]
Test Case urn:TestCase:id:8 Soap message package Content-Type is 'text/xml'
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify message package Content-type is 'text/xml' ConformanceCondition /MIME:Messag[MIME:Container[1][@Content-Type = 'text/xml']]
Test Case urn:TestCase:id:9 MIME header charset is same as actual SOAP message character set
Test Case urn:TestCase:id:10 Header container charset is equal to SOAP message encoding
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Check if header container charset is present PreCondition /MIME:Message[MIME:Container[1]/@charset ]
Check if SOAP encoding attribute is present PreCondition $SOAPEncoding!=''
Compare header container charset and SOAP message encoding values ConformanceCondition /MIME:Message[MIME:Container[1][@charset = $SOAPEncoding]]
Test Case urn:TestCase:id:11 SOAP message is encoded in UTF-8
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Check if SOAP encoding attribute is present PreCondition $SOAPEncoding!=''
Verify that message encoding is 'UTF-8' ConformanceCondition $SOAPEncoding = 'UTF-8'
Test Case urn:TestCase:id:12 Payloads should be enclosed in MIME container
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]] [SOAP:Body/eb:Manifest/eb:Reference[@xlink:href=""
Attach an XML payload SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:RefToMessageId=$RefToMessageId ]]
Check for returned payload PreCondition /MIME:Message[MIME:Container[1]/SOAP:Body/eb:Manifest/eb:Reference[@xlink:href='']]
Find payload in message GetPayload /MIME:Message/MIME:Container[@Content-Id = 'cid:payload_1']
Verify returned payload contents ConformanceCondition /Payload
Test Case urn:TestCase:id:13 If no manifest entry, no MIME payloads
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:RefToMessageId=$RefToMessageId ]]
Verify no payloads are present ConformanceCondition /MIME:Message[not (MIME:Container[2]) ]
Test Case urn:TestCase:id:14 Must be a matching payload for each manifest reference
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]] [SOAP:Body/eb:Manifest/eb:Reference[@xlink:href=""
Attach basic XML paylod SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId ]]
Verify a Manifest reference to payload ConformanceCondition /MIME:Message[MIME:Container[2]/SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference[@xlink:href='']]
Verify that the payload exists GetPayload /MIME:Message/MIME:Container[@Content-Id = 'cid:payload_1']
Verify returned payload ConformanceCondition /Payload
Test Case urn:TestCase:id:15 Process unrecognized MIME headers
TestStep 1 TestDriver
Send basic message header with an unrecognized MIM header included PutMessage /MIME:Message[MIME:Container[1][@unrecognizedHeader='abc']/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that a message is returned ConformanceCondition /MIME:Message
Test Case urn:TestCase:id:16 Prolog may contain XML declaration
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that prolog exists in SOAP message PreCondition $prolog='true'
Verify that XML declaration exists in SOAP message ConformanceCondition $declaration='true'
Test Case urn:TestCase:id:17 Version number present in prolog
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that prolog exists in SOAP message PreCondition $prolog='true'
Verify that prolog version exists ConformanceCondition $prologVersion = 'true'
Test Case urn:TestCase:id:19 ebXML extension elements properly namespace qualified
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that extension elements are properly namespace qualified ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/*[namespace-uri()='http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd']]
Test Case urn:TestCase:id:20 SOAP Envelope elements namespace qualified
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that SOAP envelope element is properly namespace qualified ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/']]
Test Case urn:TestCase:id:21 SOAP Header and Body attributes contain correct schemaLocation
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that schemaLocation is correct ConformanceCondition $SOAPHeaderSchemaLocation="http://www.oasis-open.org/committees/ebxml-msg/schema/envelope.xsd and $SOAPBodySchemaLocation="http://www.oasis-open.org/committees/ebxml-msg/schema/envelope.xsd
Test Case urn:TestCase:id:22 SOAP Header element contains proper namespace
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that SOAP Header element is properly namespace qualified ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/']]
Test Case urn:TestCase:id:23 SOAP Body element contains proper namespace
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that SOAP Body element is properly namespace qualified ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Body[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/']]
Test Case urn:TestCase:id:24 MessageHeader element must be in SOAP Header
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that a MessageHeader element is present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader]
Test Case urn:TestCase:id:25 Foreign namespace qualified elements are not qualified with ebXML namespace
Test Case urn:TestCase:id:26 Ignore wildcard elements
TestStep 1 TestDriver
Send basic message header with additional wildcard element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and tns:wildCardElement]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Check for a returned message ConformanceCondition /MIME:Message
Verify that no Error messages were generated ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[not eb:ErrorList]]
Test Case urn:TestCase:id:27 ID attribute is assigned to each ebXML extension element
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that an ID attribute exists for extension elements ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/*[@id]]
Test Case urn:TestCase:id:28 MessageHeader version attribute is '2.0'
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that correct version is present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[@eb:version='2.0']]
Test Case urn:TestCase:id:29 MustUnderstand attribute set to correct namespace
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that a 'mustUnderstand' attribute is present in SOAP Header extension elements and it is properly namespace qualified ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/*[@mustUnderstand and namespace-uri='http://schemas.xmlsoap.org/soap/envelope']]
Test Case urn:TestCase:id:30 Not understood SOAP Header extension elements are rejected
TestStep 1 TestDriver
MessageHeader mustUnderstand set to 'true' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:ExtensionElement@SOAP:mustUnderstand='true']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Test if Error is generated ConformanceCondition MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Body/SOAP:Fault/SOAP:Code[SOAP:Value='MustUnderstand']]
Test Case urn:TestCase:id:31 type attribute is unique within PartyId list
Test Case urn:TestCase:id:32 Generate error when PartyId is not a URI and type is not defined
TestStep 1 TestDriver
Load message template and To PartyId set to 'null' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and To/PartyId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that Error message is generated ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:33 If type is present, it is a valid URI
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Test if type attribute is present PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:To/eb:PartyId[eb:@type]]
Validate 'type' attribute ValidateURI /MIME:Message/MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:To/eb:PartyId/eb:@type
Test Case urn:TestCase:id:34 If type is not present, PartyId is a valid URI
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Test if type attribute is NOT present PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:To/eb:PartyId[not eb:@type]]
Validate PartyId ValidateURI /MIME:Message/MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:To/eb:PartyId
Test Case urn:TestCase:id:35 If CPAId cannot be resolved, respond with ValueNotRecognized Error
TestStep 1 TestDriver
Load message template and CPAId set to 'null' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='null' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and CPAId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that Error is returned ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'ValueNotRecognized' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:36 ConversationId is always present
TestStep 1 TestDriver
Send basic Dummy message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that Conversation Id is not present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId]
Test Case urn:TestCase:id:38 If type not set, and Service is not a URI, generate Inconsistent Error
TestStep 1 TestDriver
Create simple MessageHeader with an Service that is not a URI PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:To/eb:Service='null' and eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that Error is returned ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:39 If type is not present, Service is a valid URI
Test Case urn:TestCase:id:40 If Service and Action not recognized, generate Error
TestStep 1 TestDriver
Send basic message with unrecognized Service and Action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='null' and eb:Action='null'and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that Error is returned ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'ValueNotRecognized' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:41 Generate RefToMessageId correctly
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Check for a returned message ConformanceCondition /MIME:Message
Test Case urn:TestCase:id:42 Generate no RefToMessageId if first message
TestStep 1 TestDriver
Initiate a message from the candidate MSH PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Initiator' eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$InitConversationId and eb:MessageId=$InitMessageId]] ]]
Verify that a RefToMessageId element is not present in message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData[not RefToMessageId]]
Test Case urn:TestCase:id:43 Generate RefToMessageId for Error
TestStep 1 TestDriver
Load message template and erroneous To PartyId value PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:To/eb:PartyId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that a RefToMessageId element is generated for Error ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList and eb:MessageHeader[ eb:MessageData/RefToMessageId=$RefToMessageId]]
Test Case urn:TestCase:id:44 Generate TimeToLiveExpired Error
TestStep 1 TestDriver
Load message template and an expired TimeToLive PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:MessageData/eb:TimeToLive='$Yesterday']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that TimeToLiveExpired Error is returned ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'TimeToLiveExpired' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:45 TimeToLive conforms to schema DateTime format
TestStep 1 TestDriver
Send basic message header with additional wildcard element PutMessage eb:Action='Dummy' and /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and newNS:wildCardElement]] and /
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]] ]]
Verify that a TimeToLive element is valid ValidateTime //eb:TimeToLive
Test Case urn:TestCase:id:46 2 Descriptions must have different values
Test Case urn:TestCase:id:47 No payload data is present in SOAP body
Test Case urn:TestCase:id:48 Generate Error for missing payload
TestStep 1 TestDriver
Load message template and a payload CID PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]] [SOAP:Body/eb:Manifest/eb:Reference[@xlink:href=""
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that MIMEProblem Error is returned ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:ErrorList/eb:Error/@eb:errorCode = 'MIMEProblem' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:49 Generate Error for unresolvable CID
TestStep 1 TestDriver
Create simple MessageHeader with an unresolvable Manifest Reference PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]] [SOAP:Body[eb:Manifest/eb:Reference/@xlink:href='javascript:void(0);']]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that MIMEProblem Error is returned ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'MIMEProblem' and eb:Error/@eb:severity = 'Error']]
Test Case urn:TestCase:id:50 Generate resolvable CID in Manifest
TestStep 1 TestDriver
Send message with payload PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]] [SOAP:Body[eb:Manifest/eb:Reference/@xlink:href='']]]
Add XML payload to message SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that CID or Content-Location exists for MIME part ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Body/eb:Manifest/eb:Reference[@xlink:href='']]
Verify that payload is resolved GetPayload /MIME:Message/MIME:Container[@Content-Id = 'cid:payload_1']
Verify returned payload ConformanceCondition /Payload
Test Case urn:TestCase:id:51 Discard unreferenced payloads
TestStep 1 TestDriver
Create simple MessageHeader with no Manifest Reference PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
Add a payload to message SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Check for a returned message ConformanceCondition /MIME:Message
Verify that no Error messages were generated ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[not eb:ErrorList]]
Test Case urn:TestCase:id:52 Process downstream SOAP faults
Test Case urn:TestCase:id:53 Generate compliant SOAP faults
Test Case urn:TestCase:id:54 Do not generate warnings as SOAP faults
TestStep 1 TestDriver
Send basic message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that Error is returned after candidate failure to receive acknowledgment PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'DeliveryFailure' and eb:Error/@eb:severity = 'Warning']]
Verify that no SOAP fault is generated for warnings ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Body[not SOAP:Fault]]
Test Case urn:TestCase:id:55 Report data communication errors using protocol methods
Test Case urn:TestCase:id:56 Do not generate Errorlist if no errors occur
Test Case urn:TestCase:id:57 Generate correct highestSeverity for Errorlist
TestStep 1 TestDriver
Create simple MessageHeader with unresolvable To/PartyId PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:To/eb:PartyId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that ErrorList highestSeverity is 'Error' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList[@eb:highestServerity='Error']]
Test Case urn:TestCase:id:58 Error codeContext is a URI
TestStep 1 TestDriver
Load message template and a payload CID PutMessage /MIME:Message[MIME:Container[1]/SOAP:EnvelopeSOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId][tns:WildCardElement[@mustUnderstand='true']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Test if codeContext attribute is present PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ErrorList/eb:Error/@eb:codeContext]
Verify valid URI ValidateURI /MIME:Message/MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ErrorList/eb:Error/@eb:codeContext
Test Case urn:TestCase:id:59 Namespace for codeContext is correct
TestStep 1 TestDriver
Create simple MessageHeader with unresolvable To/PartyId PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:To/eb:PartyId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Test if codeContext attribute is present PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:ErrorList/eb:Error[@eb:codeContext]]
Verify that namespace is the default value ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:codeContext='urn:oasis:names:tc:ebxml-msg:service:errors']]
Test Case urn:TestCase:id:60 Generate correct severity values
TestStep 1 TestDriver
Create simple MessageHeader with unresolvable To/PartyId PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:To/eb:PartyId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that severity is 'Error' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:severity='Error']]
Test Case urn:TestCase:id:61 Generate correct XPointer for Error
Test Case urn:TestCase:id:62 Generate correct CID for erroneous payload MIME part
Test Case urn:TestCase:id:63 ShortDescription does not appear in Error Elements
Test Case urn:TestCase:id:64 If error reporting location is known, send error message back to originating MSH
TestStep 1 TestDriver
Send message with unknown 'From' partyId to ErrorAppNotify action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:To/eb:PartyId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify returned error ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:65 If reporting location unknown, log Error
TestStep 1 TestDriver
Send message with unknown 'From' partyId to ErrorAppNotify action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='ErrorAppNotify' and eb:CPAId='cpa_noErrorURI' and eb:From/eb:PartyId='null' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_noErrorURI' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Get returned Error Mesage in payload GetPayload /MIME:Message/MIME:Container[@Content-Id = 'cid:errorList_1']
Verify returned Error message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent']]
Test Case urn:TestCase:id:66 If ErrorURI is implied in CPA, use it
TestStep 1 TestDriver
Send message with unknown 'To' partyId to ErrorAppNotify action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:To/eb:PartyId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Error message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent']]
Test Case urn:TestCase:id:67 If reporting location not specified in CPA, use From Party location in message
TestStep 1 TestDriver
Send message with unknown 'To' partyId to Dummy action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='NoErrorURI' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:To/eb:PartyId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_NoErrorURI' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Error message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent']]
Test Case urn:TestCase:id:68 Generate correct values for ErrorList Service and Action in independent message
Test Case urn:TestCase:id:69 Log if HighestSeverity equals Error
TestStep 1 TestDriver
Send a message containing an ErrorList element with highestSeverity set to 'Error' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='ErrorLogNotify' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:ErrorList/@eb:highestSeverity='Error']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that the error was logged GetPayload /MIME:Message/MIME:Container[@Content-Id = 'cid:errorList_1']
Verify that returned ErrorList highestSeverity is set to Error ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList[@eb:highestSeverity = 'Error']]
Test Case urn:TestCase:id:70 Keep connection open for SyncReply
TestStep 1 TestDriver
Set MessageHeader and Manifest to reference CPA PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_SyncReplyTrue' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_SyncReplyTrue' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 3 TestDriver
Correlate returned messages GetSyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_SyncReplyTrue' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Check for a returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader]
Test Case urn:TestCase:id:71 Inconsistent CPA and message SyncReply
TestStep 1 TestDriver
Send a message with a SyncReply element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_SyncReplyNone' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and and /SOAP:Envelope/SOAP:Header/eb:SyncReply]]
TestStep 2 TestDriver
Correlate returned messages GetSyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_SyncReplyNone' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that an Error is returned ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList[eb:Error/@eb:errorCode = 'Inconsistent' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:72 SyncReply must not be present if CPA syncReplyMode is set to 'none'
TestStep 1 TestDriver
Send message with CPA syncReplyMode set to 'none PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_SyncReplyNone' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_SyncReplyNone' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that no SyncReply element is returned in Async message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:SyncReply[count() = 0]]
TestStep 3 TestDriver
Correlate returned messages GetSyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_SyncReplyNone' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that no SyncReply element is returned in a Sync message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:SyncReply[count() = 0]]
Test Case urn:TestCase:id:73 Resend until Acknowledgment is received
TestStep 1 TestDriver
Send basic message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_MaxRetries' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Count number of retries ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:AckRequested] [count() = $MaxRetries]
TestStep 3 TestDriver
Send Acknowledgment PutMessage eb:Action='Dummy' and /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:Acknowledgment]]
TestStep 4 Verify no new retry AckRequests were sent TestDriver
Repeat Step 2
Test Case urn:TestCase:id:74 Resend until maximum retry limit reached
TestStep 1 TestDriver
Send basic message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_MaxRetries' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify maximum retries were sent ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:AckRequested][count() = $MaxRetries]]
Test Case urn:TestCase:id:75 Resume after Acknowledgment
TestStep 1 TestDriver
Candidate initiaates conversation with AckRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
TestStep 3 TestDriver
Send Acknowledgment PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Mute' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:Acknowledgment]]
TestStep 4 Repeat step 2 to collect AckRequest count TestDriver
Repeat Step 2
TestStep 5 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[]]
Verify no new AckRequests were sent ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:AckRequested][count()=0]
Test Case urn:TestCase:id:76 Resend until delivery failure
TestStep 1 TestDriver
Send basic message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Test for multiple retries PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:AckRequested][count() > 1]
Verify returned error ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'DeliveryFailure' and @eb:severity = 'Warning']]
Test Case urn:TestCase:id:77 Process received message after interrupt
TestStep 1 TestDriver
Send a message to the 'Interrupt' action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Interrupt' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:ErrorList/@eb:highestSeverity='Error']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that a message was received ConformanceCondition /MIME:Message
Test Case urn:TestCase:id:78 Process reliably sent message after no Ack and system failure
TestStep 1 TestDriver
Send a message to the 'Dummy' action with an AckRequested PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId][eb:AckRequested]]
TestStep 2 TestDriver
Send a message to the 'Fail' action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Fail' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:ErrorList/@eb:highestSeverity='Error']]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify resend of AckRequest after system restart ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/AckRequested]
Test Case urn:TestCase:id:85 Persist complete reliably received message
TestStep 1 TestDriver
Send basic message to 'CheckPersistStore' action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='CheckPersistStore' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId ]]
Get first payload GetPayload /MIME:Message/MIME:Container[1]
Verify complete message in persistent store ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='CheckPersistStore' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$RefToMessageId]]
Test Case urn:TestCase:id:86 Persist MessageId
TestStep 1 TestDriver
Send basic message to 'CheckPersistStore' action PutMessage //MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='CheckPersistStore' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId ]]
Get first payload GetPayload /MIME:Message/MIME:Container[1]
Verify complete message ( and therefore MessageId ) is in persistent store ConformanceCondition //MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:MessageData/eb:MessageId=$RefToMessageId]]
Test Case urn:TestCase:id:88 Persist message receipt time
TestStep 1 TestDriver
Send basic message to 'CheckPersistStore' action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='CheckPersistStore' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId ]]
Get first payload GetPayload /MIME:Message/MIME:Container[1]
Verify receipt time in persistent store ConformanceCondition //PersistStoreMessageReceiptTime
Test Case urn:TestCase:id:89 Persist complete response message
TestStep 1 TestDriver
Send basic message to 'CheckPersistStore' action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='CheckPersistStore' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId ]]
Get first payload GetPayload /MIME:Message/MIME:Container[1]
Verify complete response message in persistent store ConformanceCondition /ebTest:PersistentStore/MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='TestListener' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Test Case urn:TestCase:id:90 Target AckRequested to NextMSH or ToParty
TestStep 1 TestDriver
Initiate a message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Initiator' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and eb:AckRequested]]
Verify AckRequested target in message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:AckRequested[soap:Actor=$TestDriver or soap:Actor=$NextMSH]]
TestStep 3 TestDriver
Send Acknowledgment to Mute action PutMessage eb:Action='Mute' and /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:RefToMessageId=$RefToMessageId and /SOAP:Envelope/SOAP:Header/eb:Acknowledgment]]
Test Case urn:TestCase:id:91:1 Return unsigned Acknowledgment, no Signature in CPA
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested unsigned element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='false']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Acknowledgment is not signed ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[not XMLDSIG:Signature and eb:Acknowledgment/@eb:signed='false']]
Test Case urn:TestCase:id:91:2 Return unsigned Acknowledgment, Signature present in CPA
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested signed element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='true']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Error message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent' and eb:ErrorList/eb:Error/@eb:severity = 'Warning']]
Test Case urn:TestCase:id:92 Return unsigned Acknowledgment, Signature present in CPA
TestStep 1 TestDriver
Request unsigned Acknowledgment PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='false']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Acknowledgment is not signed ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[not XMLDSIG:Signature]] and eb:Acknowledgment/@eb:signed='false']]
Test Case urn:TestCase:id:93 Return Warning if Signature not supported and consistent with CPA
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested signed element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='true']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Error message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent' and eb:ErrorList/eb:Error/@eb:severity = 'Warning']]
Test Case urn:TestCase:id:94 Return Error if Signature not supported and not consistent with CPA
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested signed element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='true']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Error message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent' and eb:ErrorList/eb:Error/@eb:severity = 'Warning'] ]
Test Case urn:TestCase:id:95 Return Acknowledgment to From party
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested unsigned element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='false']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that message contains correct name in To party ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:To[eb:PartyId=$FromPartyId] ]
Test Case urn:TestCase:id:96 No Payload present with AckRequested
TestStep 1 TestDriver
Send basic message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify no payload is present ConformanceCondition /MIME:Message[not MIME:Container[2]]
Verify no AckRequested element is present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[not eb:AckRequested ]]
Test Case urn:TestCase:id:97 No AckRequested with ErrorList
TestStep 1 TestDriver
Send basic message to generate a MustUnderstand error and an AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and tns:WildCard[@mustUnderstand="1"] and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify an ErrorList is present PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList]
Verify no AckRequested element is present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[not eb:AckRequested ]]
Test Case urn:TestCase:id:98 Default target is To Party for Acknowledgment if no SOAP actor present
TestStep 1 TestDriver
Send basic AckRequested message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify SOAP actor attribute is not present PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[not @actor]]
Verify To PartyId is the Test Driver ConformanceCondition MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:To/[eb:PartyId=$FromParty]]
Test Case urn:TestCase:id:99 SOAP actor value is same as AckRequested actor attribute value
TestStep 1 TestDriver
Send basic AckRequested message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify SOAP actor attribute is present PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[@actor]]
Verify that the actor attribute is identical ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Acknowledgment[@eb:actor=../@actor]]
Test Case urn:TestCase:id:100 Test valid TimeStamp format
TestStep 1 TestDriver
Send basic message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Validate messageTimestamp ValidateTime //Timestamp
Test Case urn:TestCase:id:101 RefToMessageId must reference appropriate message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that a message was found that points to previous message ConformanceCondition /MIME:Message
Test Case urn:TestCase:id:102 Acknowledgment From PartyId value is Candidate MSH
TestStep 1 TestDriver
Send basic AckRequested message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that From PartyId is correct' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Acknowledgment/From[PartyId=$ToPartyId]]
Test Case urn:TestCase:id:103 From PartyID of MessageHeader used if not present in Acknowledgment
TestStep 1 TestDriver
Send basic AckRequested message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that From PartyId is not present in Acknowledgment' PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Acknowledgment/From[not(PartyId)]]
Verify that From PartyId is correct' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/From[PartyId=$ToPartyId]]
Test Case urn:TestCase:id:104 Reference element(s) present in a signed Acknowledgment
TestStep 1 TestDriver
Send basic AckRequested message with signed = 'true' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and /SOAP:Envelope/SOAP:Header/eb:AckRequested[@signed='true']]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that a Reference element is present' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Acknowledgment/eb:Reference]
Test Case urn:TestCase:id:105 Reference element(s) are correctly namespace qualified
TestStep 1 TestDriver
Send basic AckRequested message with signed = 'true' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify namespace of Reference element(s)' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Acknowledgment/eb:Reference[namespace-uri()='http://www.w3.org/2000/09/xmldsig#']]
Test Case urn:TestCase:id:106 Application notified of Acknowledgment
Test Case urn:TestCase:id:107 Ignore multiple Acknowledgments of same message
TestStep 1 TestDriver
Send Dummy message with AckRequested PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that AckRequested element is present PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:AckRequested] ]
TestStep 3 TestDriver
Send Acknowledgment PutMessage /MIME:Message[MIME:Container[1]/SOAP:EnvelopeSOAP:Header[eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId] and [eb:Acknowledgment]]
TestStep 4 TestDriver
Repeat Step 3
TestStep 5 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Test if Error is generated ConformanceCondition MIME:Message/MIME:Container[1]/SOAP:Envelope/SOAP:Header[not eb:ErrorList]
Test Case urn:TestCase:id:108 If no Errors or Payload, Acknowledgment uses default Service/Action
TestStep 1 TestDriver
Send basic message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify no payload is present PreCondition /MIME:Message[not(MIME:Container[2])]
Verify no ErrorList is present PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[not(eb:ErrorList)]]
Verify default Service is used ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[Service='urn:oasis:names:tc:ebxml-msg:service']]
Test Case urn:TestCase:id:109 CPA DuplicateElimination requires presence in messages
TestStep 1 TestDriver
Send basic message header with CPA having DuplicateElimination set to 'true' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationTrue' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that DuplicateElimination element is in returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:DuplicateElimination]]
Test Case urn:TestCase:id:110 CPA DuplicateElimination set to 'never' means no presence in messages
TestStep 1 TestDriver
Send basic message header with CPA having DuplicateElimination set to 'never' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationNever' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that DuplicateElimination element is not in returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[not(eb:DuplicateElimination)]]
Test Case urn:TestCase:id:111 CPA DuplicateElimination set to 'per message' means presence is variable per message
TestStep 1 TestDriver
Send basic message header with DuplicateElimination element present and CPA DuplicateElimination set to 'per message' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationPerMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:DuplicateElimination]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that no 'Inconsistent' Error is present in returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Errorlist/eb:Error[not(@errorCode='Inconsistent')]]
TestStep 3 TestDriver
Send basic message header with no DuplicateElimination element present and CPA DuplicateElimination set to 'per message' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationPerMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 4 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that no 'Inconsistent' Error is present in returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Errorlist/eb:Error[not(@errorCode='Inconsistent')]]
Test Case urn:TestCase:id:112 CPA DuplicateElimination set to 'always' means presence is required always, else generate Inconsistent Error
TestStep 1 TestDriver
Send basic message header with NO DuplicateElimination element present and CPA DuplicateElimination set to 'always' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationAlways' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that 'Inconsistent' Error is present in returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Errorlist/eb:Error[@errorCode='Inconsistent']]
Test Case urn:TestCase:id:113 CPA DuplicateElimination set to 'never' means Inconsistent Error if present
TestStep 1 TestDriver
Send basic message header with NO DuplicateElimination element present and CPA DuplicateElimination set to 'never' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationNever' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:DuplicateElimination]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that 'Inconsistent' Error is present in returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Errorlist/eb:Error[@errorCode='Inconsistent']]
Test Case urn:TestCase:id:114 CPA DuplicateElimination present, message is presented 'at-most-once'
TestStep 1 TestDriver
Send basic message header with DuplicateElimination element present and CPA DuplicateElimination set to 'always' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationAlways' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:DuplicateElimination]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that no 'Inconsistent' Error is present in returned message PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Errorlist/eb:Error[@errorCode='Inconsistent']]
Verify that a Dummy message is returned ConformanceCondition /MIME:Message
TestStep 3 TestDriver
TestStep 4 Send identical Dummy message again TestDriver
Repeat Step 1
TestStep 5 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that a Dummy message is NOT returned ConformanceCondition [not MIME:Message]
Test Case urn:TestCase:id:115 CPA DuplicateElimination present and service is interrupted, message is presented 'at-most-once'
TestStep 1 TestDriver
Send basic message header with DuplicateElimination element present and CPA DuplicateElimination set to 'always' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationAlways' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:DuplicateElimination]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_DuplicationAlways' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that no 'Inconsistent' Error is present in returned message PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Errorlist/eb:Error[@errorCode='Inconsistent']]
Verify that a 'Dummy' message is returned PreCondition /MIME:Message
TestStep 3 TestDriver
Send a message to the 'Interrupt' action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Interrupt' and eb:CPAId='cpa_DuplicationAlways' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 4 Send identical Dummy message again TestDriver
Repeat Step 1
TestStep 5 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that a 'Dummy' message is NOT returned ConformanceCondition [not MIME:Message]
Test Case urn:TestCase:id:116 CPA DuplicateElimination not supported' means Inconsistent Error if present
TestStep 1 TestDriver
Send basic message header with DuplicateElimination element present and CPA DuplicateElimination set to 'always' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationAlways' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:DuplicateElimination]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_DuplicationAlways' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that an 'Inconsistent' Error is present in returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Errorlist/eb:Error[@errorCode='Inconsistent']]
Test Case urn:TestCase:id:117 CPA DuplicateElimination is 'always', but DuplicateElimination not present in message, result is Inconsistent Error
TestStep 1 TestDriver
Send basic message header with NO DuplicateElimination element present and CPA DuplicateElimination set to 'always' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_DuplicateEliminationAlways' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_DuplicationAlways' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that an 'Inconsistent' Error is present in returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Errorlist/eb:Error[@errorCode='Inconsistent']]
Test Case urn:TestCase:id:119 Resend until maximum retry limit reached
TestStep 1 TestDriver
Send basic message to Reflector action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_MaxRetries' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../AckRequested[@signed='false]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_MaxRetries' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify maximum retries were sent ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:AckRequested][count() = $MaxRetries]]
Test Case urn:TestCase:id:120 Verify minimum time between resends
TestStep 1 TestDriver
Send basic message to AckRequested action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_MaxRetries' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../AckRequested[@signed='false]]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_MaxRetries' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and ../eb:AckRequested]]
Verify minimum time between resends ConformanceCondition [/MIME:Message[last()]/MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:Timestamp - MIME:Message[last()-1]/MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:Timestamp >= $RetryInterval]
Test Case urn:TestCase:id:121 Verify TimeToLive
TestStep 1 TestDriver
Send basic message to Reflector action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_MaxRetries' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../AckRequested[@signed='false]]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_TimeToLive' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and ../AckRequested]]
Verify time delta between first and last message is less than TimeToLive ConformanceCondition [/MIME:Message[last()]/MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:Timestamp - MIME:Message[1]/MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:Timestamp <= $TimeToLive ]
Test Case urn:TestCase:id:122 Verify Once and Only Once
TestStep 1 TestDriver
Send basic message with element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_PersistDuration' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ]]
TestStep 2 Send identical Dummy message again TestDriver
Repeat Step 1
TestStep 3 Send identical Dummy message again TestDriver
Repeat Step 1
TestStep 4 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_PersistDuration' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify only one Dummy message is received ConformanceCondition /MIME:Message[count()=1]
Test Case urn:TestCase:id:123 Verify Acknowledgment with PersistDuration
TestStep 1 TestDriver
Send Dummy message with AckRequested element and PersistDuration in CPA PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_PersistDuration' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_PersistDuration' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and eb:Acknowledgment]]
Verify Acknowledgment is received ConformanceCondition /MIME:Message
Test Case urn:TestCase:id:124 Verify PersistDuration expiration
TestStep 1 TestDriver
Send Dummy message with AckRequested element and PersistDuration set to '0' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_PersistDurationExpired' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_PersistDurationExpired' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and eb:AckRequested]]
Verify AckRequested is sent at most once ConformanceCondition /MIME:Message[count()=1]
Test Case urn:TestCase:id:125 Verify DeliveryFailureError upon PersistDuration expiration
TestStep 1 TestDriver
Send basic message with AckRequested element and PersistDuration set to '0' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_PersistDurationZero' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_PersistDurationZero' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and eb:AckRequested]]
Verify AckRequested is sent at most once ConformanceCondition /MIME:Message[count()=1]
Test Case urn:TestCase:id:126 Verify PersistDuration greater than TimeStamp + TimeToLive
TestStep 1 TestDriver
Send Dummy message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_PersistDuration' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_PersistDuration' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and eb:AckRequested]]
Verify PersistDuration greater than TimeStamp + TimeToLive ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData[TimeStamp + TimeToLive < PersistDuration]]
Test Case urn:TestCase:id:127 SyncReplyMode is ignored for asyncronous communications
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_SyncReplyModeTrue' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_SyncReply' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that a message is returned in asyncronous fashion ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope]
Test Case urn:TestCase:id:128 Verify CPPA and SyncReply integrity
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_SyncReplyModeTrue' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_SyncReplyModeTrue' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that a SyncReply element is present in returned message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[eb:SyncReply]]
Test Case urn:TestCase:id:129 Verify syncronous communication
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_SyncReplyModeTrue' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_SyncReplyModeTrue' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that a message is returned in asyncronous fashion ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope]
Test Case urn:TestCase:id:130 Return Acknowledgment
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Fummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='false']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Acknowledgment ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Acknowledgment[RefToMessageId=$RefToMessageId]]
Test Case urn:TestCase:id:131 Verify persistent storage of Acknowledgment for PersistDuration
Test Case urn:TestCase:id:132 Check if Acknowledgment is returned as part of normal response
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested unsigned element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='false']]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and ../eb:Acknowledgment]]
Check if returned Acknowledgment is returned with response message ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Acknowledgment]]
Test Case urn:TestCase:id:133 Verify seperate Acknowledgment Service name
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested unsigned element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='false']]
Add payload to message SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and ../eb:Acknowledgment]]
Verify Service element value ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[Service='urn:oasis:names:tc:ebxml-msg:service']]
Verify Action element value ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[Action='Acknowledgment']]
Test Case urn:TestCase:id:134 Verify Acknowledgment RefToMessageId value
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested unsigned element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='false']]
Add payload to message SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and ../eb:Acknowledgment]]
Verify RefToMessageId value ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[RefToMessageId=$RefToMessageId]]
Test Case urn:TestCase:id:135 Verify From value of seperate Acknowledgment message
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested unsigned element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='false']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and ../eb:Acknowledgment]]
Verify From value ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/From[PartyId=$ToPartyId]]
Test Case urn:TestCase:id:136 Verify To value of seperate Acknowledgment message
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested unsigned element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='false']]
Add payload to message SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and ../eb:Acknowledgment]]
VerifyTo value ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader/To[PartyId=$FromPartyId]]
Test Case urn:TestCase:id:137 Verify Max Retries reached
TestStep 1 TestDriver
Make candidate MSH send basic message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_MaxRetries' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../AckRequested[@signed='false']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_MaxRetries' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify maximum retries were sent ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:AckRequested][count() = $MaxRetries]]
Test Case urn:TestCase:id:138 Notify application when maximum retry limit reached
TestStep 1 TestDriver
Make candidate MSH send basic message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_MaxRetries' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ../AckRequested[@signed='false]]
TestStep 2
Check log to verify maximum retry limit reached PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='ErrorAppNotify' and eb:CPAId='cpa_MaxRetries' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ../AckRequested[@signed='false]]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_MaxRetries' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify application is notified of maximum retries ConformanceCondition /MIME:Message[MIME:Container[2]//Error[text()='Max Retries Reached']]
Test Case urn:TestCase:id:139 Process reliably sent message after no Ack and communication protocol error
TestStep 1 TestDriver
Send a message to the 'Reflector' action with an AckRequested PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../AckRequested[@signed='false]]]
TestStep 2 TestDriver
Send a message to the 'ProtocolError' action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='ProtocolError eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ]]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify resend of AckRequest after communication restart ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/AckRequested]
Test Case urn:TestCase:id:140 Verify original Acknowledgment is resent for duplicate requests
TestStep 1 TestDriver
Send basic message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_MaxRetries' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_MaxRetries' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify Acknowledgment is received ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Acknowledgment]]
TestStep 3 Resend original AckRequested message TestDriver
Repeat Step 1
TestStep 4 Verify original acknowledgment is sent TestDriver
Repeat Step 2
Test Case urn:TestCase:id:141 Verify syncronously returned application payload for duplicate messages and non-persistent Acknowledgment
Test Case urn:TestCase:id:142 Verify Acknowledgment for duplicate messages and non-persistent Acknowledgment
Test Case urn:TestCase:id:143 Do not generate warnings as SOAP faults
TestStep 1 TestDriver
Send DeliveryFailure message for undeliverable AckRequested PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested eb:To/PartyId=$UndeliverablePartyId]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that Error is returned after candidate failure to receive acknowledgment PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'DeliveryFailure' and eb:Error/@eb:severity = 'Error']]
Verify that no SOAP fault is generated for warnings ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Body[not SOAP:Fault]]
Test Case urn:TestCase:id:144 Generate DeliveryFailure Error and Warning if AckRequested is delivered, bot no Acknowledgment is received
TestStep 1 TestDriver
Send Reflector message with AckRequested element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_basic' and and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and /SOAP:Envelope/SOAP:Header/eb:AckRequested[@signed='false']]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify that Error is returned after candidate failure to receive acknowledgment PreCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'DeliveryFailure' and eb:Error/@eb:severity = 'Warning']]
Verify that no SOAP fault is generated for warnings ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Body[not SOAP:Fault]]
Test Case urn:TestCase:id:145 Failure to deliver DeliveryFailure Error is resolved by 'undefined means'
Test Case urn:TestCase:id:146 For MessageOrder, DuplicateElimination is present, SyncReply is not present, and AckRequested directed to To Party'
Test Case urn:TestCase:id:147 Messages must be processed by MSH in MessageOrder
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:MessageOrder/@sequenceNumber='2' and ../eb:DuplicateElimination]] [SOAP:Body/eb:Manifest/eb:Reference[@xlink:href=""
Attach basic XML paylod 2 SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_2' ]
TestStep 2 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:MessageOrder/@sequenceNumber='1' ../eb:DuplicateElimination]] [SOAP:Body/eb:Manifest/eb:Reference[@xlink:href=""
Attach basic XML paylod 1 SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_2' ]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId ]]
Verify correct order processing of messages using Timestamp comparison ConformanceCondition [/MIME:Message[MIME:Container[2]SOAP:Envelope[SOAP:Body/eb:Manifest/eb:Reference[@xlink:href=''][SOAP:Header/eb:MessageHeader/MessageData/Timestamp < /ebTest:PersistentStore/MIME:Message/MIME:Container[2]SOAP:Envelope[SOAP:Body/eb:Manifest/eb:Reference[@xlink:href='']/SOAP:Header/eb:MessageHeader/MessageData/Timestamp]
Test Case urn:TestCase:id:148 Messages must be processed by Application in MessageOrder
Test Case urn:TestCase:id:149 Test error generation for maximum out-of-sequence messages
Test Case urn:TestCase:id:150 First ordered message has a sequenceNumber of '0'
TestStep 1 TestDriver
Send basic message to Dummy action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageI and ../eb:MessageOrder]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that message has a sequenceNumber of '0' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageOrder[SequenceNumber = '0']]
Test Case urn:TestCase:id:151 MessageOrder status is 'Reset' for first ordered message
TestStep 1 TestDriver
Send basic message to Reflector action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:MessageOrder]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that SequenceNumber has a status of 'Reset' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageOrder/SequenceNumber[@status = 'Reset']]
Test Case urn:TestCase:id:152 SequenceNumber is reset to '0' after a Reset instruction
TestStep 1 TestDriver
Send basic message to Dummy action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:MessageOrder/eb:SequenceNumber[@status='Reset']]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that SequenceNumber has a value of '0' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageOrder[SequenceNumber='0' ']]
Test Case urn:TestCase:id:153 SequenceNumber status is set to 'Reset' after a Reset instruction
TestStep 1 TestDriver
Send basic message to MessageOrderReset action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:MessageOrder/eb:SequenceNumber[@status='Reset']]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that SequenceNumber status has a value of 'Reset' ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageOrder/eb:SequenceNumber[@status='Reset' ']]
Test Case urn:TestCase:id:154 SequenceNumber is '0' and status is set to 'Continue' after 99999999 wraparound
Test Case urn:TestCase:id:155 All previous sent messages are accounted for before Reset
Test Case urn:TestCase:id:156 SyncReply not included with a MessageOrder element
TestStep 1 TestDriver
Send basic message to Dummy action PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:MessageOrder]]
TestStep 2 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that SyncReply element is not present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[not eb:SyncReply and eb:MessageOrder]]
Test Case urn:TestCase:id:157 If both MessageOrder and SyncReply are present, generate Inconsistent/Error
TestStep 1 TestDriver
Load message with both elements present' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:SyncReply and ../eb:Messageorder]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId ]]
Verify that Error is returned ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'Inconsistent' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:158 Verify that Signature element is child of SOAP header
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested signed element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='true']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Acknowledgment is signed ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header[XMLDSIG:Signature]]
Test Case urn:TestCase:id:159 Verify that Signature element is child of SOAP header
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested signed element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='true']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify returned Acknowledgment is signed ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:HeaderXMLDSIG:Signature[namespace-uri()='http://www.w3.org/2000/09/xmldsig#']]
Test Case urn:TestCase:id:160 Verify valid XMLDSIG structure
TestStep 1 TestDriver
Create simple MessageHeader with an AckRequested signed element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:AckRequested/@eb:signed='true']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Validate Message ValidateMessage
Validate signature structure ValidateSignature /MIME:Message/MIME:Container[1]/SOAP:Envelope/SOAP:Header//XMLDSIG:Signature
Test Case urn:TestCase:161 First Signature element represents From Party MSH
Test Case urn:TestCase:162 CPA Signature required for entire message
TestStep 1 TestDriver
Create simple MessageHeader PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify Signature element with Reference URI = '' is present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature[Reference=""]]
Test Case urn:TestCase:163 Digital Signatures generated/rendered according to XMLDSIG
Test Case urn:TestCase:164 SignedInfo has CanonicalizationMethod, SignatureMethod and one or more Reference elements
TestStep 1 TestDriver
Create simple MessageHeader with CPA requiring signed message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify SignedInfo element has required sub-elements ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo[XMLDSIG:CanonicalizationMethod and XMLDSIG:SignatureMethod and XMLDSIG:Reference]]
Test Case urn:TestCase:164 SignatureMethod Algorithm attribute is present
TestStep 1 TestDriver
Create simple MessageHeader with CPA requiring signed message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify SignedInfo element has required sub-elements ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo[XMLDSIG:CanonicalizationMethod and XMLDSIG:SignatureMethod and XMLDSIG:Reference]]
Test Case urn:TestCase:165 SignatureMethod Algorithm attribute is present
TestStep 1 TestDriver
Create simple MessageHeader with CPA requiring signed message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify SignedInfo element has required sub-elements ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo/SignatureMethod[@Algorithm]]
Test Case urn:TestCase:166 Verify CanonicalizationMethod Algorithm attribute value
TestStep 1 TestDriver
Create simple MessageHeader with CPA requiring signed message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify CanonicalizationMethod Algorithm value ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo/CanonicalizationMethod[@Algorithm='http://www.w3.org/TR/2001/REC-xml-c14n-20010315']]
Test Case urn:TestCase:167 Verify SignatureMethod Algorithm attribute value
TestStep 1 TestDriver
Create simple MessageHeader with CPA requiring signed message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify SignatureMethod Algorithm value ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo/SignatureMethod[@Algorithm='http://www.w3.org/2000/09/xmldsig#dsa-sha1']]
Test Case urn:TestCase:168 Signature is validated and message is passed to the application
Test Case urn:TestCase:169 Verify Type attribute of Reference
TestStep 1 TestDriver
Create simple MessageHeader with CPA requiring signed message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify SignedInfo element has required sub-elements ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo/Reference[@Type='http://www.w3.org/2000/09/xmldsig#Object"']]
Test Case urn:TestCase:170 Verify Transform sub-element of Reference
TestStep 1 TestDriver
Create simple MessageHeader with CPA requiring signed message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify Reference element has required sub-elements ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo/Reference/Transforms/Transform/Transform[@Algorithm='http://www.w3.org/2000/09/xmldsig#enveloped-signature']]
Test Case urn:TestCase:171 Generate Transform XPath element excluding SOAP nextMSH or next SOAP node
Test Case urn:TestCase:172 Verify last Transform Algorithm attribute value
TestStep 1 TestDriver
Create simple MessageHeader with CPA requiring signed message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_signedMessage' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId]]
Verify last Transform Algorithm value ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo/Reference/Transforms/Transform[last()][@Algorithm='http://www.w3.org/TR/2001/REC-xml-c14n-20010315']]
Test Case urn:TestCase:id:173 Digitally signed payloads have appropriate Reference URI
TestStep 1 TestDriver
Send basic message header with CPA that defines signed payload PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_signedPayload' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]] [SOAP:Body/eb:Manifest/eb:Reference[@xlink:href=""
Attach an XML payload SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_signedPayload' and eb:ConversationId=$ConversationId and eb:RefToMessageId=$RefToMessageId ]]
Check for returned payload PreCondition /MIME:Message[MIME:Container[1]/SOAP:Body/eb:Manifest/eb:Reference[@xlink:href='']]
Verify that Signature Reference points to payload location ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo/Reference[@URI='cid:payload_1']]
Test Case urn:TestCase:id:174 Digitally signed payloads have appropriate Reference URI that match URI of payload
TestStep 1 TestDriver
Send basic message header with CPA that defines signed payload PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope[SOAP:Header/eb:MessageHeader[eb:Action='Reflector' and eb:CPAId='cpa_signedPayload' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]] [SOAP:Body/eb:Manifest/eb:Reference[@xlink:href=""
Attach an XML payload SetPayload /MIME:Message/MIME:Container[1][@Content-Id = 'cid:payload_1' ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_signedPayload' and eb:ConversationId=$ConversationId and eb:RefToMessageId=$RefToMessageId ]]
Check for returned payload PreCondition /MIME:Message[MIME:Container[1]/SOAP:Body/eb:Manifest/eb:Reference[@xlink:href='']]
Verify that Signature Reference points to payload location ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/XMLDSIG:Signature/XMLDSIG:SignedInfo/Reference[@URI='cid:payload_1']]
Test Case urn:TestCase:175 Signature generation takes place before encoding
Test Case urn:TestCase:176 Digitally signed inbound message gets a digitally signed Acknowledgment
Test Case urn:TestCase:177 Communication channel supports uni/bi-directional authentication
Test Case urn:TestCase:178 Coummunication channel provides data integrity of message content
Test Case urn:TestCase:179 Signing takes place prior to encryption
Test Case urn:TestCase:180 Communication channel provides data confidentiality
Test Case urn:TestCase:181 Source authorization through bilateral authentication
Test Case urn:TestCase:id:182 Test StatusResponse for reliably sent message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_reliableMessaging' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Send message with StatusRequest element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_reliableMessaging' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:StatusRequest[eb:RefToMessageId=$RefToMessageId]]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_reliableMessaging' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned StatusResponse ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse]
Test Case urn:TestCase:id:183 Test StatusResponse for unreliably sent message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Send message with StatusRequest element PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:StatusRequest[eb:RefToMessageId=$RefToMessageId]]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned StatusResponse ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse]
Test Case urn:TestCase:id:184 Generate 'NotSupported' Error for StatusRequest
TestStep 1 TestDriver
Send Dummy message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Send message with StatusRequest element but unsupported service PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='null' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:StatusRequest[eb:RefToMessageId=$RefToMessageId]]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned 'NotSupported' Error ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList/eb:Error[@eb:errorCode = 'NotSupported' and @eb:severity = 'Error']]
Test Case urn:TestCase:id:185 Generate a valid StatusRequest
Test Case urn:TestCase:id:186 Generate 'UnAuthorized' Error for StatusRequest
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Send message with StatusRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:From[PartyId='UnauthorizedParty']] and ../eb:StatusRequest[eb:RefToMessageId=$RefToMessageId]]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned 'UnAuthorized' StatusResponse ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse[@eb:MessageStatus='UnAuthorized']]
Test Case urn:TestCase:id:187 StatusResponse RefToMessageId points to correct MessageId
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Send message with StatusRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ] and ../eb:StatusRequest[eb:RefToMessageId=$RefToMessageId]]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify correct RefToMessageId ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse/eb:RefToMessageId=$RefToMessageId]
Test Case urn:TestCase:id:188 StatusResponse includes received Timestamp for recognized message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Send message with StatusRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ] and ../eb:StatusRequest[eb:RefToMessageId=$RefToMessageId]]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify Timestamp is present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse/eb:Timestamp]
Test Case urn:TestCase:id:189 StatusResponse does not include Timestamp for unrecognized message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
Send message with StatusRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ] and ../eb:StatusRequest[eb:RefToMessageId='null']]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify Timestamp is not present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse[ not eb:Timestamp]]
Test Case urn:TestCase:id:190 StatusResponse does not include Timestamp for Unauthorized StatusRequest message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:From/PartyId=$UnauthorizedPartyId]]
TestStep 2 TestDriver
Send message with StatusRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ] and ../eb:StatusRequest[eb:RefToMessageId='null']]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify Timestamp is not present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse [not eb:Timestamp]]
Test Case urn:TestCase:id:192 StatusResponse includes NotRecognized status for unrecognized message
TestStep 1 TestDriver
Send message with StatusRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ] and ../eb:StatusRequest[eb:RefToMessageId='null']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned 'NotRecognized' StatusResponse ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse[@eb:MessageStatus='NotRecognized']]
Test Case urn:TestCase:id:193 StatusResponse includes Received status for unprocessed message
TestStep 1 TestDriver
Send basic message header to a Dummy action that does not processes the message PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='DummyUnprocessedMessage' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ]]
TestStep 2 TestDriver
Send message with StatusRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ] and ../eb:StatusRequest[eb:RefToMessageId='$RefToMessageId']]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned 'Received' StatusResponse ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse[@eb:MessageStatus='Received']]
Test Case urn:TestCase:id:194 StatusResponse includes Processed status for processed message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ]]
TestStep 2 TestDriver
Send message with StatusRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ] and ../eb:StatusRequest[eb:RefToMessageId='$RefToMessageId']]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned 'Processed' StatusResponse ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse[@eb:MessageStatus='Processed']]
Test Case urn:TestCase:id:195 StatusResponse includes Forwarded status for forwarded message
TestStep 1 TestDriver
Send multi-hop message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='DummyTestDriverAction' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and eb:To/eb:PartyId='TestDriver']
TestStep 2 TestDriver
Send message with StatusRequest PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Service='urn:oasis:names:tc:ebxml-msg:service' and eb:Action='StatusRequest' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ] and ../eb:StatusRequest[eb:RefToMessageId='$RefToMessageId']]
TestStep 3 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned 'Received' StatusResponse ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:StatusResponse[@eb:MessageStatus='Forwarded']]
Test Case urn:TestCase:id:196 Unsupported Ping service returns 'NotSupported' Error
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Service='urn:oasis:names:tc:ebxml-msg:service' eb:Action='Ping' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Check for a returned 'Received' StatusResponse ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorList[eb:Error='NotSupported' and @eb:highestSeverity='Error']]
Test Case urn:TestCase:id:197 Ping message contains no payload
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Ping' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that no payload is attached ConformanceCondition /MIME:Message[not MIME:Container[2]]
Test Case urn:TestCase:id:198 Return valid Pong message
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Ping' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId ]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify Pong Action element is present ConformanceCondition /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:Action='Pong']]
Verify that no payload is attached ConformanceCondition /MIME:Message[not MIME:Container[2]]
Test Case urn:TestCase:id:199:1 Multi-Hop message AckRequested SOAP:actor attribute is set to NextMSH
Test Case urn:TestCase:id:199:2 Multi-Hop message Acknowledgment SOAP:actor attribute is set to NextMSH
Test Case urn:TestCase:id:200 Intermediary MSH removes AckRequested with SOAP:actor = NextMSH
Test Case urn:TestCase:id:201 Intermediary MSH inserts AckRequested with SOAP:actor = NextMSH
Test Case urn:TestCase:id:202 Only one AckRequested element is present in message forwarded by intermediary MSH
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:To/eb:PartyId='TestDriver' eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:AckRequested[@SOAP:actor='urn:oasis:names:tc:ebxml-msg:actor:nextMSH']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
Verify only one AckRequested element is present ConformanceCondition /MIME:Message[MIME:Container[1]//eb:AckRequested[SOAP:Actor='urn:oasis:names:tc:ebxml-msg:actor:nextMSH'][count()=1]
Test Case urn:TestCase:id:203 If SyncReply is present in a multi-hop message, AckRequested is not present in the message
Test Case urn:TestCase:id:204 If both SyncReply and AckRequested elements are present in a received multi-hop message, an 'Inconsistent' Error is generated
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:To/PartyId='TestDriver' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:AckRequested[@SOAP:actor='urn:oasis:names:tc:ebxml-msg:actor:nextMSH'] and ../eb:SyncReply]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
Verify an 'Inconsistent' Error is present ConformanceCondition /MIME:Message/[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:ErrorLIst/eb:Error[@errorCode='Inconsistent']]
Test Case urn:TestCase:id:205 If SyncReply is not present in a received multi-hop message, an intermediate Acknowledgment may be syncronously returned
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:AckRequested[@SOAP:actor='urn:oasis:names:tc:ebxml-msg:actor:nextMSH']]
TestStep 2 TestDriver
Correlate returned messages GetSyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
Verify that Acknowledgment is present in syncronous response message ConformanceCondition /MIME:Message/[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Acknowledgment[RefToMessageId=$RefToMessageId]]
Test Case urn:TestCase:id:206 2 Acknowledgments returned for NexMSH and To Party in multi-hop messsage
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:To/eb:PartyId='TestService' and eb:Action='DummyAction' eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:AckRequested[@SOAP:actor='urn:oasis:names:tc:ebxml-msg:actor:nextMSH' and ../eb:AckRequested[@SOAP:actor='TestDriver' ]]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
Verify that 2 Acknowledgment messages are present ConformanceCondition /MIME:Message/[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:Acknowledgment[RefToMessageId=$RefToMessageId][count()=2]]
Test Case urn:TestCase:id:207 Multi-hop message is not acknowledged by intermediary MSH until persisted and delivered to NextMSH
Test Case urn:TestCase:id:208 Signed intermediate Acknowledgments are sent 'standalone'
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:To/eb:PartyId='TestService 'eb:Action='Dummy' eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:AckRequested[@SOAP:actor='urn:oasis:names:tc:ebxml-msg:actor:nextMSH' and @eb:signed='true']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and ..//eb:Acknowledgment]]
Verify that Acknowledgment message contains no payload ConformanceCondition [not MIME:Message/MIME:Container[2]]
Test Case urn:TestCase:id:209 Intermediary MSH does not attempt MessageOrder processing
Test Case urn:TestCase:id:210 Intermediary MSH returns Acknowledgment for AckRequest'
TestStep 1 TestDriver
Send basic message header PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:To/eb:PartyId='TestService 'eb:Action='Dummy' eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId and ../eb:AckRequested[@SOAP:actor='urn:oasis:names:tc:ebxml-msg:actor:nextMSH']]
TestStep 2 TestDriver
Correlate returned messages GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/RefToMessageId=$RefToMessageId and ..//eb:Acknowledgment]]
Verify that an Acknowledgment message was found ConformanceCondition /MIME:Message
Test Case urn:TestCase:id:211 Generated message with two AckRequested elements have two different SOAP:actor attributes
Test Case urn:TestCase:id:212 Generated AckRequested message has at most one SOAP:actor pointing to NextMSH
Test Case urn:TestCase:id:213 Generated AckRequested message has at most one SOAP:actor pointing to the To Party MSH
Test Case urn:TestCase:id:214 Intermdiate MSH does not perform DuplicateElimination
TestStep 1 TestDriver
Send basic message header' PutMessage /MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[ eb:Action='Dummy' and eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:MessageId=$MessageId]]
TestStep 2 TestDriver
TestStep 3 Send identical Dummy message again TestDriver
Repeat Step 1
TestStep 4 Send identical Dummy message again TestDriver
Repeat Step 1
TestStep 5 TestDriver
Correlate returned message GetAsyncMessage /TEST:PersistStore/MIME:Message[MIME:Container[1]/SOAP:Envelope/SOAP:Header/eb:MessageHeader[eb:CPAId='cpa_basic' and eb:ConversationId=$ConversationId and eb:MessageData/eb:RefToMessageId=$RefToMessageId]]
Verify that (3) Dummy messages are returned ConformanceCondition /MIME:Message[count()=3]
Test Case urn:TestCase:id:215 Verify that intermediate MSH does not alter message in any way
Test Templates


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC