Ebxml MS V2.0 Abstract Test Suite Parameters

Ebxml MS V2.0 Abstract Test Suite Parameters

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 / TestStep / Party / Operation / TestMessageExpression / ErrorMessage
urn:testcase:id:1 / All ebXML messages must validate
urn:testcase:id:2 / SOAP message must be in root part of MIME message
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’
<Jacques> just to avoid confusion, these are assignments, not equality conditions, so I would not use the logical operator “AND” here. I would use “;” / PutMessage Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:RefToMessageId==’$MessageId’ / GetMessageError
Verify that an SOAP Message is found in the root part of the MIME message / ConformanceCondition / /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. / SOAP message not found in root body part of MIME message
urn:testcase:id:3 / All MIME parts must have a CID or Content-Location
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’ and
/SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href=cid:payload_1 / PutMessage Error
Attach a Payload MIME part / SetPayload Content-Type=’text/xml’ Content-Id=’cid:payload_1’
TemplateRefId=’mpld_basic’ / SetPayload Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:RefToMessageId==’$MessageId’ / GetMessageError
Check if MIME Content-type is multipart/mime or not text/xml / PreCondition / $MIMEMessageContent-Type == ’multipart/mime’ or $MIMEMessageContent-Type != ’text/xml’ / PreConditionError
Verify that CID or Content-Location exists for both MIME parts / ConformanceCondition / ($MessagePackageContent-Location != ’’ or $MessagePackageContent-ID != ‘’)
and ($PayloadContent-Location != ‘’ or $PayloadContent-ID != ‘’) / Missing Content-ID or Content-Location for a MIME part.
urn:testcase:id:4 / Message package Content-Type is ‘text/xml’
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’ / PutMessage Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId==’$MessageId / GetMessage Error
Verify message package Content-type / ConformanceCondition / $MessagePackageContent-Type == ’text/xml’ / Message package Content-Type is not ‘text/xml’
urn:testcase:id:5 / Start attribute present in MIME message.
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’ / PutMessage Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId==’$MessageId’ / GetMessage Error
Check for presence of ‘start’ attribute in MIME message / ConformanceCondition / $MimeMessageStart != ’’ / Missing start attribute in MIME message
urn:testcase:id:6 / Process non-multipart messages
Load message template / id=“1” / TestDriver / PutMessage templateRefId=’mhdr_0’
MIMEMessageContent-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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/MessageId=’$MessageId’ / PutMessage Error
Correlate returned messages / Id=”2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId’ /

GetMessage Error

Verify message content / ConformanceCondition / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId’ /

Non-multipart message not processed.

urn:testcase:id:7 / Process multipart/no payload messages
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/MessageId=’$MessageId’ / PutMessage Error
Correlate returned messages / Id=”2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId’ /

GetMessage Error

Verify message content / ConformanceCondition / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId’ /

Multipart/no payload message not processed.

urn:testcase:id:8 / Soap message package Content-Type is ‘text/xml’
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’ / PutMessage Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId==’$MessageId’ / GetMessageError
Set message package Content-type to ‘text/xml’ / ConformanceCondition / $MessagePackageContent-Type == ’text/xml’ / Soap message package Content-Type is no ‘text/xml’
urn:testcase:id:9 / MIME charset is same as SOAP message character set – testable
urn:testcase:id:10 / Header container charset is equal to SOAP message encoding
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’ / PutMessage Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId==’$MessageId’ / GetMessageError
Check if header container charset is present / PreCondition / $MessagePackageCharset != ‘’
Check if SOAP encoding attribute is present / PreCondition / $SOAPEncoding != ‘’
Compare header container charset and SOAP message encoding values / ConformanceCondition / $MessagePackageCharset == $SOAPEncoding / MIME Content-Type is not equal to SOAP message Content-Type
urn:testcase:id:11 / SOAP charset attribute is UTF-8
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’ / PutMessage Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId==’$MessageId’ / GetMessageError
Verify that message package charset attribute is ‘UTF-8’ / ConformanceCondition / $MessagePackageCharset == ‘UTF-8’ / SOAP charset attribute is not UTF-8
urn:testcase:id:12 / Payloads should be enclosed in MIME container
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/MessageId=’$MessageId’ and
/SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href=’cid:payload_1’ / PutMessage Error
Add payload to message / SetPayload Content-ID=’cid:payload_1’ / SetPayloadError
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId’ /

GetMessageError

Check for returned payload / PreCondition / /SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href==’cid:payload_1’ /

PreConditionError

Find payload in message / GetPayload Content-ID=’cid:payload_1’
<Jacques> should this be an equality condition “==”, to be consistent ? /

GetPayload Error

Verify returned payload / ConformanceCondition / /Payload
<Jacques> we need to explain how to interpret such expression , or, could we assume that the GetPayload (or even GetMessage ) operation, is automatically casting the MIME envelope into an XML format so that we can then use Xpath conditions on it? If we assume that GetMessage does this implicitly, we would not even need “GetPayload” above: we can test that there is a MIME part “Content-ID child” with value cid:payload_1., in our conformance condition. Opinion? /

Payload container not found

urn:testcase:id:13 / If no manifest entry, no MIME payloads
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/MessageId=’$MessageId’ and / PutMessage Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:RefToMessageId==’$MessageId’ /

GetMessage Error

Verify no payloads are present / GetPayload count=’0’ / <Jacqeus> same remark as above: if we assume an XML casting of MIME, we could jjust use an Xpath expre that conts the number of payload MIME part.. The condition (no payload children, i.e. only one MIME part) then becomes our conformance condition. /

Payload container count is not ‘0’

urn:testcase:id:14 / Must be a matching payload for each manifest reference
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’ and
/SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href=cid:payload_1 / PutMessage Error
Attach a Payload MIME part / SetPayload Content-Type=’text/xml’ Content-Id=’cid:payload_1’
TemplateIdRef=’mpld_basic’ / SetPayload Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:RefToMessageId==’$MessageId’ / GetMessage Error
Verify a Manifest reference to payload / ConformanceCondition / /SOAP:Envelope/SOAP:Header/eb:Manifest/eb:Reference/@xlink:href==’cid:payload_1’ / Could not find Manifest reference for payload
Verify that the payload exists / GetPayload id=’cid:payload_1’
count = ‘1’ / Correct single payload not returned
urn:testcase:id:15 / Process unrecognized MIME headers
urn:testcase:id:16 / Prolog may contain XML declaration
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’ / PutMessage Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId==’$MessageId / GetMessage Error
Verify that prolog exists in SOAP message / ConformanceCondition / $XMLProlog=’true’ / XML declaration is present
urn:testcase:id:17 / Version number present in prolog
Load message template / id=“1” / TestDriver / 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=’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/eb:MessageId=’$MessageId’ / PutMessage Error
Correlate returned messages / id=“2” / TestDriver / GetMessage / /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:CPAId==‘Basic_CPA’ and
/SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:ConversationId==’$ConversationId’ and /SOAP:Envelope/SOAP:Header/eb:MessageHeader/eb:MessageData/RefToMessageId==’$MessageId / GetMessage Error
Verify that prolog exists in SOAP message / PreCondition / $XMLProlog==’true’ / Prolog is not present
Verify that prolog version exists / ConformanceCondition / $XMLPrologVersion != ‘’ / Version is not present
urn:testcase:id:19 / ebXML extension elements properly namespace qualified – simple validation
urn:testcase:id:20 / SOAP Envelope properly elements namespace qualified - validation