ebXML MS v2.0 Abstract Test Suite Parameters MessageId RefToMessageId ConversationId MIMEMessageContent-Type MIMEMessageType MIMEMessageStart MessagePackageContent-Type MessagePackageCharset MessagePackageContent-ID MessagePackageContentLocation PayloadContent-Type PayloadCharset PayloadCID TimeToLive ExpiredTimeToLive XMLProlog <Jacques> agree that it seems we don’t need anymore CPA attributes here… ebXML MS v2.0 Abstract Test Suite Test Case Description urn:testcase:id:1 urn:testcase:id:2 urn:testcase:id:3 Test Step Party Operation TestMessageExpression All ebXML messages must validate SOAP message must be in root part of MIME message Load message template id=“ 1” TestDriver PutMessage templateRefId=’mhdr_0’ Correlate returned messages id=“ 2” TestDriver GetMessage /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M <Jacques> just to avoid confusion, these are assignments, not equality conditions, so I w logical operator “AND” here. I would use “;” /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:RefToMessageI /SOAP:Envelope <Jacques> (this Xpath expression assumes that we always consider the root MIME part . Should we specify which MIME part is concerned by this condition ? That could still be done with Xpath if we assume a casting of MIME envelope into XML For convenience . See below comments on same topic. Verify that an SOAP Message is found in the root part of the MIME message All MIME parts must have a CID or ContentLocation Load message template Attach a Payload MIME part ConformanceCondition id=“ 1” TestDriver PutMessage templateRefId=’mhdr_0’ SetPayload ContentType=’text/xml’ Content- /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M /SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href=cid:payload_1 urn:testcase:id:4 urn:testcase:id:5 urn:testcase:id:6 urn:testcase:id:7 urn:testcase:id:8 Correlate returned messages id=“ 2” Check if MIME Content-type is multipart/mime or not text/xml Verify that CID or Content-Location exists for both MIME parts Message package Content-Type is ‘text/xml’ Load message template id=“ 1” Correlate returned messages id=“ 2” TestDriver Id=’cid:payload_1’ TemplateRefId=’mpld_bas ic’ GetMessage PreCondition ConformanceCondition ($MessagePackageContent-Location != ’’ or $MessagePackageContent-ID != ‘’) and ($PayloadContent-Location != ‘’ or $PayloadContent-ID != ‘’) TestDriver PutMessage templateRefId=’mhdr_0’ TestDriver GetMessage /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId= $MessagePackageContent-Type == ’text/xml’ Verify message package Contenttype Start attribute present in MIME message. Load message template id=“ 1” TestDriver PutMessage templateRefId=’mhdr_0’ Correlate returned messages id=“ 2” TestDriver GetMessage ConformanceCondition Check for presence of ‘start’ attribute in MIME message Process nonmultipart messages Load message template id=“ 1” TestDriver Correlate returned messages Id=” 2” TestDriver Verify message content $MimeMessageStart != ’’ PutMessage templateRefId=’mhdr_0’ MIMEMessageContentType = ‘text/xml’ GetMessage /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/MessageId=’$Mes /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId ConformanceCondition id=“ 1” TestDriver PutMessage templateRefId=’mhdr_0’ Correlate returned messages Id=” 2” TestDriver GetMessage Soap message /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId= ConformanceCondition Process multipart/no payload messages Load message template Verify message content /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:RefToMessageI $MIMEMessageContent-Type == ’multipart/mime’ or $MIMEMessageContent-Type != ConformanceCondition /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/MessageId=’$Mes /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId urn:testcase:id:9 urn:testcase:id:10 urn:testcase:id:11 urn:testcase:id:12 package ContentType is ‘text/xml’ Load message template id=“ 1” TestDriver PutMessage templateRefId=’mhdr_0’ Correlate returned messages id=“ 2” TestDriver GetMessage Set message package Contenttype to ‘text/xml’ ConformanceCondition $MessagePackageContent-Type == ’text/xml’ /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId= MIME charset is same as SOAP message character set – testable Header container charset is equal to SOAP message encoding Load message template id=“ 1” TestDriver PutMessage templateRefId=’mhdr_0’ Correlate returned messages id=“ 2” TestDriver GetMessage Check if header container charset is present Check if SOAP encoding attribute is present Compare header container charset and SOAP message encoding values SOAP charset attribute is UTF8 Load message template id=“ 1” Correlate returned messages id=“ 2” Verify that message package charset attribute is ‘UTF-8’ Payloads should be enclosed in MIME container Load message template Add payload to message Correlate returned messages id=“ 1” id=“ 2” /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId= PreCondition $MessagePackageCharset != ‘’ PreCondition $SOAPEncoding != ‘’ ConformanceCondition $MessagePackageCharset == $SOAPEncoding TestDriver PutMessage templateRefId=mhdr_0’ TestDriver GetMessage /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId= TestDriver TestDriver ConformanceCondition $MessagePackageCharset == ‘UTF-8’ PutMessage templateRefId=mhdr_0’ /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/MessageId=’$Mes /SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href=’cid:payload_1’ SetPayload ContentID=’cid:payload_1’ GetMessage /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation urn:testcase:id:13 urn:testcase:id:14 urn:testcase:id:15 urn:testcase:id:16 urn:testcase:id:17 Check for returned payload Find payload in message PreCondition GetPayload ContentID=’cid:payload_1’ <Jacques> should this be an equality condition “==”, to be consistent ? ConformanceCondition Verify returned payload If no manifest entry, no MIME payloads Load message template id=“ 1” TestDriver PutMessage templateRefId=mhdr_0’ Correlate returned messages id=“ 2” TestDriver GetMessage Verify no payloads are present Must be a matching payload for each manifest reference Load message template GetPayload count=’0’ id=“ 1” TestDriver Attach a Payload MIME part Correlate returned messages id=“ 2” TestDriver PutMessage templateRefId=mhdr_0’ SetPayload ContentType=’text/xml’ ContentId=’cid:payload_1’ TemplateIdRef=’mpld_bas ic’ GetMessage Verify a Manifest reference to payload ConformanceCondition Verify that the payload exists GetPayload id=’cid:payload_1’ count = ‘1’ Process unrecognized MIME headers Prolog may contain XML declaration Load message template id=“ 1” TestDriver PutMessage templateRefId=mhdr_0’ Correlate returned messages id=“ 2” TestDriver GetMessage Verify that prolog exists in SOAP message Version number ConformanceCondition /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId /SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href==’cid:payload_ /Payload <Jacques> we need to explain how to interpret such expression , or, could we assume tha (or even GetMessage ) operation, is automatically casting the MIME envelope into an X we can then use Xpath conditions on it? If we assume that GetMessage does this implici even need “GetPayload” above: we can test that there is a MIME part “Content-ID child cid:payload_1., in our conformance condition. Opinion? /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/MessageId=’$Mes /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId <Jacqeus> same remark as above: if we assume an XML casting of MIME, we could jju expre that conts the number of payload MIME part.. The condition (no payload children, MIME part) then becomes our conformance condition. /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M /SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href=cid:payload_1 /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:RefToMessageI /SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href==’cid:payload_1 /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId= $XMLProlog=’true’ urn:testcase:id:19 urn:testcase:id:20 present in prolog Load message template id=“ 1” TestDriver PutMessage templateRefId=mhdr_0’ Correlate returned messages id=“ 2” TestDriver GetMessage Verify that prolog exists in SOAP message Verify that prolog version exists ebXML extension elements properly namespace qualified – simple validation SOAP Envelope properly elements namespace qualified validation PreCondition /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:Action=’Reflector’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId=‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId=’$ConversationI /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$M /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$Conversation /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId= $XMLProlog==’true’ ConformanceCondition $XMLPrologVersion != ‘’
© Copyright 2026 Paperzz