[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, MikeTitle: 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.
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