commit 9d962be10d0498a370bac0b41a7b706dfe8a49b9
parent fa00163abd4a3a2a5e53f3ff298b8d7417857a84
Author: Antoine A <>
Date: Mon, 23 Sep 2024 18:45:49 +0200
nexus: improve registration test
Diffstat:
4 files changed, 113 insertions(+), 17 deletions(-)
diff --git a/nexus/sample/platform/gls_camt052.xml b/nexus/sample/platform/gls_camt052.xml
@@ -483,6 +483,71 @@
</NtryDtls>
<AddtlNtryInf>Überweisungsauftrag</AddtlNtryInf>
</Ntry>
+ <Ntry>
+ <Amt Ccy="EUR">0.46</Amt>
+ <CdtDbtInd>DBIT</CdtDbtInd>
+ <Sts>BOOK</Sts>
+ <BookgDt>
+ <Dt>2024-09-20</Dt>
+ </BookgDt>
+ <ValDt>
+ <Dt>2024-09-20</Dt>
+ </ValDt>
+ <AcctSvcrRef>2024092019251584000</AcctSvcrRef>
+ <BkTxCd>
+ <Domn>
+ <Cd>PMNT</Cd>
+ <Fmly>
+ <Cd>ICDT</Cd>
+ <SubFmlyCd>ESCT</SubFmlyCd>
+ </Fmly>
+ </Domn>
+ <Prtry>
+ <Cd>NTRF+191+08381</Cd>
+ <Issr>DK</Issr>
+ </Prtry>
+ </BkTxCd>
+ <NtryDtls>
+ <TxDtls>
+ <Refs>
+ <MsgId>BATCH_MANY_SUCCESS</MsgId>
+ <PmtInfId>NOTPROVIDED</PmtInfId>
+ </Refs>
+ <AmtDtls>
+ <TxAmt>
+ <Amt Ccy="EUR">0.46</Amt>
+ </TxAmt>
+ </AmtDtls>
+ <BkTxCd>
+ <Domn>
+ <Cd>PMNT</Cd>
+ <Fmly>
+ <Cd>ICDT</Cd>
+ <SubFmlyCd>ESCT</SubFmlyCd>
+ </Fmly>
+ </Domn>
+ <Prtry>
+ <Cd>NTRF+191+08381</Cd>
+ <Issr>DK</Issr>
+ </Prtry>
+ </BkTxCd>
+ <RltdPties>
+ <Dbtr>
+ <Nm>Florian Dold</Nm>
+ </Dbtr>
+ <DbtrAcct>
+ <Id>
+ <IBAN>DE89500105171325381664</IBAN>
+ </Id>
+ </DbtrAcct>
+ </RltdPties>
+ <RmtInf>
+ <Ustrd>SEPA Sammel-Ueberweisung mit 4 Ueberweisungen MSG-ID: BATCH_MANY_SUCCESS</Ustrd>
+ </RmtInf>
+ </TxDtls>
+ </NtryDtls>
+ <AddtlNtryInf>Sammelüberweisung</AddtlNtryInf>
+ </Ntry>
</Rpt>
</BkToCstmrAcctRpt>
</Document>
\ No newline at end of file
diff --git a/nexus/src/test/kotlin/Iso20022Test.kt b/nexus/src/test/kotlin/Iso20022Test.kt
@@ -194,7 +194,7 @@ class Iso20022Test {
}
@Test
- fun gls_camt052_() {
+ fun gls_camt052() {
assertContentEquals(
parseTx(Path("sample/platform/gls_camt052.xml").inputStream(), "EUR", Dialect.gls),
listOf(
@@ -239,6 +239,10 @@ class Iso20022Test {
executionTime = dateToInstant("2024-04-18"),
creditorPayto = ibanPayto("DE20500105172419259181", "John Smith")
),
+ OutgoingBatch(
+ msgId = "BATCH_MANY_SUCCESS",
+ executionTime = dateToInstant("2024-09-20"),
+ )
)
)
}
diff --git a/nexus/src/test/kotlin/RegistrationTest.kt b/nexus/src/test/kotlin/RegistrationTest.kt
@@ -262,12 +262,11 @@ class RegistrationTest {
"BATCH_SINGLE_FAILURE" to listOf(
genInitPay("DAFC3NEE4T48WVC560T76ABA2C"),
),
- // EF525087DD2D4ABBA65C8CD3EEB6952F
"BATCH_MANY_SUCCESS" to listOf(
- genInitPay("ZGRT91MSQY3QVJ93SX5MNFAC9R"),
- genInitPay("T9CYNR9EJS3HR3KFVQF5VY82EW"),
- genInitPay("B93XHQR6SPAB7QCDG960E71MWM"),
- genInitPay("XC1YNY5HCDDAM0M7GKV0KN01S0"),
+ genInitPay("IVMIGCUIE7Q7VOF73R8GU3KGRYBZPAYC5V"),
+ genInitPay("CDFN7I4FVIZ848DGDQ35DZ2K49H9EWXGAW"),
+ genInitPay("35M1268GW5ZFHS5JCB41UKDQNPMD40T849"),
+ genInitPay("HPOMV7A4E3P1TK9UZJS1WTM94A9V3X2SR1"),
),
"BATCH_MANY_PART" to listOf(
genInitPay("27SK3166EG36SJ7VP7VFYP0MW8"),
@@ -301,11 +300,11 @@ class RegistrationTest {
"BATCH_SINGLE_FAILURE" to Pair(SubmissionState.pending, mapOf( // TODO success
"DAFC3NEE4T48WVC560T76ABA2C" to SubmissionState.pending, // TODO failure
)),
- "BATCH_MANY_SUCCESS" to Pair(SubmissionState.pending, mapOf( // TODO success
- "ZGRT91MSQY3QVJ93SX5MNFAC9R" to SubmissionState.pending, // TODO success
- "T9CYNR9EJS3HR3KFVQF5VY82EW" to SubmissionState.pending, // TODO success
- "B93XHQR6SPAB7QCDG960E71MWM" to SubmissionState.pending, // TODO success
- "XC1YNY5HCDDAM0M7GKV0KN01S0" to SubmissionState.pending, // TODO success
+ "BATCH_MANY_SUCCESS" to Pair(SubmissionState.success, mapOf(
+ "IVMIGCUIE7Q7VOF73R8GU3KGRYBZPAYC5V" to SubmissionState.success,
+ "CDFN7I4FVIZ848DGDQ35DZ2K49H9EWXGAW" to SubmissionState.success,
+ "35M1268GW5ZFHS5JCB41UKDQNPMD40T849" to SubmissionState.success,
+ "HPOMV7A4E3P1TK9UZJS1WTM94A9V3X2SR1" to SubmissionState.success,
)),
"BATCH_MANY_PART" to Pair(SubmissionState.success, mapOf(
"27SK3166EG36SJ7VP7VFYP0MW8" to SubmissionState.success,
@@ -349,6 +348,34 @@ class RegistrationTest {
creditorPayto = ibanPayto("DE20500105172419259181", "John Smith")
),
OutgoingPayment(
+ endToEndId = "IVMIGCUIE7Q7VOF73R8GU3KGRYBZPAYC5V",
+ amount = TalerAmount("EUR:44"),
+ subject = "init payment",
+ executionTime = dateToInstant("2024-09-20"),
+ creditorPayto = ibanPayto("CH4189144589712575493", "Test")
+ ),
+ OutgoingPayment(
+ endToEndId = "CDFN7I4FVIZ848DGDQ35DZ2K49H9EWXGAW",
+ amount = TalerAmount("EUR:44"),
+ subject = "init payment",
+ executionTime = dateToInstant("2024-09-20"),
+ creditorPayto = ibanPayto("CH4189144589712575493", "Test")
+ ),
+ OutgoingPayment(
+ endToEndId = "35M1268GW5ZFHS5JCB41UKDQNPMD40T849",
+ amount = TalerAmount("EUR:44"),
+ subject = "init payment",
+ executionTime = dateToInstant("2024-09-20"),
+ creditorPayto = ibanPayto("CH4189144589712575493", "Test")
+ ),
+ OutgoingPayment(
+ endToEndId = "HPOMV7A4E3P1TK9UZJS1WTM94A9V3X2SR1",
+ amount = TalerAmount("EUR:44"),
+ subject = "init payment",
+ executionTime = dateToInstant("2024-09-20"),
+ creditorPayto = ibanPayto("CH4189144589712575493", "Test")
+ ),
+ OutgoingPayment(
endToEndId = "27SK3166EG36SJ7VP7VFYP0MW8",
amount = TalerAmount("EUR:44"),
subject = "init payment",
diff --git a/testbench/src/main/kotlin/Main.kt b/testbench/src/main/kotlin/Main.kt
@@ -95,10 +95,10 @@ class Cli : CliktCommand() {
LIBEUFIN_NEXUS_HOME = test/$platform
[nexus-fetch]
- FREQUENCY = 1min
+ FREQUENCY = 4h
[nexus-submit]
- FREQUENCY = 1min
+ FREQUENCY = 4h
[libeufin-nexusdb-postgres]
CONFIG = postgres:///libeufintestbench
@@ -198,19 +198,19 @@ class Cli : CliktCommand() {
val badPayto = URLBuilder().takeFrom(payto)
badPayto.parameters["receiver-name"] = "John Smith"
step("Submit new transaction with a bad name")
- nexusCmd.run("initiate-payment $flags \"$badPayto&amount=$currency:0.41&message=This%20should%20fail%20because%20bad%20name\"")
+ nexusCmd.run("initiate-payment $flags \"$badPayto&amount=$currency:0.21&message=This%20should%20fail%20because%20bad%20name\"")
Unit
})
put("tx-bad-iban", suspend {
- val badPayto = URLBuilder().takeFrom("payto://iban/DE18500105173385245163")
+ val badPayto = URLBuilder().takeFrom("payto://iban/DE18500105173385245162")
badPayto.parameters["receiver-name"] = "John Smith"
step("Submit new transaction to a bad IBAN")
- nexusCmd.run("initiate-payment $flags \"$badPayto&amount=$currency:0.42&message=This%20should%20fail%20because%20bad%20iban\"")
+ nexusCmd.run("initiate-payment $flags \"$badPayto&amount=$currency:0.22&message=This%20should%20fail%20because%20bad%20iban\"")
Unit
})
put("tx-dummy", suspend {
step("Submit new transaction to a dummy IBAN")
- nexusCmd.run("initiate-payment $flags \"$dummyPayto&amount=$currency:0.43&message=This%20should%20fail%20because%20dummy\"")
+ nexusCmd.run("initiate-payment $flags \"$dummyPayto&amount=$currency:0.23&message=This%20should%20fail%20because%20dummy\"")
Unit
})
put("tx-check", "Check transaction semantic", "testing tx-check $flags")