GetMessage Error

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 != ‘’