POC for BPSS testing: Case 3: Conditional Branching

Test Object

ID

Description

Mode

Operation

Configuration

Message Expression

Test Suite
Test Case testcase_3Conditional Branching
TestStepstep_01
Construct a basic message header with manifest reference to payload containing a Request for QuotePutMessage
<mime:Message>
<mime:MessageContainer>
<soap:Envelope>
<soap:Header>
<eb:MessageHeader>
<eb:Action>RequestQuote</eb:Action>
</eb:MessageHeader>
</soap:Header>
<soap:Body>
<eb:Manifest>
<eb:Reference href="cid:RequestQuote" />
</eb:Manifest>
</soap:Body>
</soap:Envelope>
</mime:MessageContainer>
</mime:Message>
'Add content-id and payload to MIME message SetPayload( SetPayload Content-Id = 'cid:RequestQuote' fileURI = 'file:RequestQuote.xml' )
Split
ThreadRefnameRef='thread_01'
Threadname='thread_01'
TestStepstep_01_01Test that an Error message was NOT received, any time within 300 seconds after step_01
Filter any ErrorList elements in the MessageStoreGetMessage stepDuration="300" /MessageStore//Message//eb:MessageHeader[eb:ConversationId=$ConversationId]
Assertion Verify No Error is presentVerifyContent/FilterResult//*[not(eb:ErrorList)]
End Thread
End ThreadRef
End Split
IfifType='andif'
TestStepstep_02
Retrieve Response message m2 GetMessage/MessageStore/Message//*[eb:MessageHeader[eb:ConversationId=$ConversationId and eb:Action="Mute" and eb:MessageData/eb:RefToMessageId=$MessageId] and [eb:Manifest/eb:Reference/xlink:href="cid:response"]]
Get message payloadGetPayload Content-Id = 'cid:response'
Assertion Verify that message is an 'approval'VerifyContent//Approval
Assertion Validate approval document'ValidateContent contentType=XML schemaLocation=http://http://www.eBusines.org/approval.xsd//Approval
Assertion Verify that there is NOT also a 'rejection' message presentVerifyContent//*[not(Rejection)]
Then
TestStepstep_03
Retrieve message m3 (quotation)GetMessage/MessageStore/Message//*[eb:MessageHeader[eb:ConversationId=$ConversationId and eb:Action="Mute" and eb:MessageData/eb:RefToMessageId=$MessageId] and [eb:Manifest]]
Get message payloadGetPayload Content-Id = 'cid:Quote'
Assertion Verify that message is a 'quote'VerifyContent//Quote
Assertion Validate messageValidateContent contentType=XML schemaLocation=http://http://www.eBusines.org/quote.xsd//Quote
TestStepstep_04
Send message (m4), approval of quotePutMessage
<mime:Message>
<mime:MessageContainer>
<soap:Envelope>
<soap:Header>
<eb:MessageHeader>
<eb:Action>ApproveQuote</eb:Action>
</eb:MessageHeader>
</soap:Header>
<soap:Body>
<eb:Manifest>
<eb:Reference href="cid:ApproveQuote" />
</eb:Manifest>
</soap:Body>
</soap:Envelope>
</mime:MessageContainer>
</mime:Message>
'Add content-id and payload to MIME message SetPayload( SetPayload Content-Id = 'cid:ApproveQuote' fileURI = 'file:ApproveQuote.xml' )
End Then
End If
IfifType='andif'
TestStepstep_05
Retrieve Response message m2 and test if message is an Rejection'' GetMessage/MessageStore/Message//(eb:MessageHeader(eb:ConversationId=$ConversationId and eb:Action="Mute" and eb:MessageData/eb:RefToMessageId=$MessageId))
Get message payloadGetPayload Content-Id = 'cid:RequestQuoteResponse'
Assertion Verify that message is a 'rejection'VerifyContent//Rejection
Assertion Validate rejection document'ValidateContent contentType=XML schemaLocation=http://http://www.eBusines.org/rejection.xsd//Rejection
Assertion Verify that there is NOT also an 'approval' message presentVerifyContent//*[not(Approval)]
Then
TestStepstep_06
Retrieve Response message m2 and test if message is an Alternative messageGetMessage/MessageStore/Message//(eb:MessageHeader(eb:ConversationId=$ConversationId and eb:Action="Mute" and eb:MessageData/eb:MessageId="m2"))
Get message payloadGetPayload Content-Id = 'cid:Altermative"'
Assertion Verify that message is an 'alternative'VerifyContent//Alternative
Assertion Validate alternative document'ValidateContent contentType=XML schemaLocation=http://http://www.eBusines.org/alternative.xsd
End Then
End If
Join joinType='andjoin'
ThreadRefnameRef='thread_01'
End ThreadRef
End Join