Handle Orphan Inbound Clear and Settle Request Response.story
Scenario: Handling customer orphan Payment Status Report sends out alert
com.iconsolutions.ipf.payments.csm.sic5.application.bdd.testfw.Steps.parseMeta(java.lang.String)
com.iconsolutions.ipf.payments.csm.sic5.application.bdd.testfw.Steps.parseLegacy(java.lang.String)
When ⦅the CSM⦆ sends a Customer Credit Transfer
Then ⦅the Payment Service⦆ receives a Receive Payment Request
When ⦅the Payment Service⦆ sends a Receive Payment Response
Then ⦅the CSM⦆ receives a Payment Status Report
When ⦅CSM⦆ sends a Payment Status Report with values:
| FIToFIPmtStsRpt.txInf*And*Sts[0].clrSysRef | EXC002 |
| FIToFIPmtStsRpt.txInf*And*Sts[0].orgnlTxId | ThisIsAnOrphanedPacs |
| FIToFIPmtStsRpt.txInf*And*Sts[0].orgnlGrpInf.orgnlMsgId | ThisIsAnOrphanedPacs |
| FIToFIPmtStsRpt.txInf*And*Sts[0].stsRsnInf[0].orgtr.id.orgId.othr[0].id | 318668 |
Then ⦅Payment Service⦆ receives a System Event using predicate:
| level | WARN |
| name | OrphanPaymentStatusReportReceived |
| type | FUNCTIONAL |
| processingContext.associationId.value | #PaymentStatusReport_sent.fIToFIPmtStsRpt.txInf*And*Sts[0].orgnlTxId |
Then the ⦅Payment Service⦆ receives a Dead Letter Message using predicate:
| error.receivedMessage.message.targetMessage.payload.class.simpleName | Clear*And*SettleResponse |
| error.receivedMessage.message.transportMessage.messageHeaders.getHeader(CorrelationId).orElse(none) | #CustomerCreditTransfer.FIToFICstmrCdtTrf.CdtTrfTxInf[0].PmtId.TxId |
Then the ⦅Payment Service⦆ receives a System Event using predicate:
| level | ERROR |
| name | MessageSentToDeadletter |
| type | TECHNICAL |
com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()
com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()
com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()
com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()
com.iconsolutions.testfw.core.steps.BaseSteps.clearContext()