[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: iban normalization in tests
From: |
gnunet |
Subject: |
[libeufin] branch master updated: iban normalization in tests |
Date: |
Sun, 24 Sep 2023 21:40:37 +0200 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository libeufin.
The following commit(s) were added to refs/heads/master by this push:
new 026f81a2 iban normalization in tests
026f81a2 is described below
commit 026f81a2a78095de57241fa0a0a178c290449b29
Author: Florian Dold <florian@dold.me>
AuthorDate: Sun Sep 24 21:40:41 2023 +0200
iban normalization in tests
---
.../tech/libeufin/bank/CorebankApiHandlers.kt | 20 ++++++++-------
.../tech/libeufin/bank/IntegrationApiHandlers.kt | 4 ++-
bank/src/test/kotlin/LibeuFinApiTest.kt | 29 ++++++++++++----------
bank/src/test/kotlin/TalerApiTest.kt | 8 +++---
4 files changed, 34 insertions(+), 27 deletions(-)
diff --git a/bank/src/main/kotlin/tech/libeufin/bank/CorebankApiHandlers.kt
b/bank/src/main/kotlin/tech/libeufin/bank/CorebankApiHandlers.kt
index eaaa33ad..f072c5a6 100644
--- a/bank/src/main/kotlin/tech/libeufin/bank/CorebankApiHandlers.kt
+++ b/bank/src/main/kotlin/tech/libeufin/bank/CorebankApiHandlers.kt
@@ -106,16 +106,22 @@ fun Routing.accountsMgmtHandlers(db: Database, ctx:
BankApplicationContext) {
if (this == null) return@run null
db.bankAccountGetFromOwnerId(this.expectRowId())
}
+ val internalPayto: String = if (req.internal_payto_uri != null) {
+ stripIbanPayto(req.internal_payto_uri)
+ } else {
+ stripIbanPayto(genIbanPaytoUri())
+ }
if (maybeCustomerExists != null && maybeHasBankAccount != null) {
logger.debug("Registering username was found:
${maybeCustomerExists.login}") // Checking _all_ the details are the same.
val isIdentic =
maybeCustomerExists.name == req.name &&
maybeCustomerExists.email ==
req.challenge_contact_data?.email &&
maybeCustomerExists.phone ==
req.challenge_contact_data?.phone &&
- maybeCustomerExists.cashoutPayto ==
- req.cashout_payto_uri && CryptoUtil.checkpw(
- req.password, maybeCustomerExists.passwordHash
- ) && maybeHasBankAccount.isPublic == req.is_public &&
maybeHasBankAccount.isTalerExchange == req.is_taler_exchange &&
maybeHasBankAccount.internalPaytoUri == req.internal_payto_uri
+ maybeCustomerExists.cashoutPayto ==
req.cashout_payto_uri &&
+ CryptoUtil.checkpw(req.password,
maybeCustomerExists.passwordHash)
+ && maybeHasBankAccount.isPublic == req.is_public &&
+ maybeHasBankAccount.isTalerExchange ==
req.is_taler_exchange &&
+ maybeHasBankAccount.internalPaytoUri == internalPayto
if (isIdentic) {
call.respond(HttpStatusCode.Created)
return@post
@@ -139,11 +145,6 @@ fun Routing.accountsMgmtHandlers(db: Database, ctx:
BankApplicationContext) {
val newCustomerRowId = db.customerCreate(newCustomer)
?: throw internalServerError("New customer INSERT failed despite
the previous checks") // Crashing here won't break data consistency between
customers // and bank accounts, because of the idempotency. Client will //
just have to retry.
val maxDebt = ctx.defaultCustomerDebtLimit
- val internalPayto: String = if (req.internal_payto_uri != null) {
- stripIbanPayto(req.internal_payto_uri)
- } else {
- stripIbanPayto(genIbanPaytoUri())
- }
val newBankAccount = BankAccount(
hasDebt = false,
internalPaytoUri = internalPayto,
@@ -368,6 +369,7 @@ fun Routing.accountsMgmtHandlers(db: Database, ctx:
BankApplicationContext) {
val subject = payto.message ?: throw badRequest("Wire transfer lacks
subject")
val debtorId = c.dbRowId
?: throw internalServerError("Debtor database ID not found") //
This performs already a SELECT on the bank account, // like the wire transfer
will do as well later!
+ logger.info("creditor payto: $paytoWithoutParams")
val creditorCustomerData =
db.bankAccountGetFromInternalPayto(paytoWithoutParams) ?: throw notFound(
"Creditor account not found", TalerErrorCode.TALER_EC_END //
FIXME: define this EC.
)
diff --git a/bank/src/main/kotlin/tech/libeufin/bank/IntegrationApiHandlers.kt
b/bank/src/main/kotlin/tech/libeufin/bank/IntegrationApiHandlers.kt
index 7f8d0595..2933dfcd 100644
--- a/bank/src/main/kotlin/tech/libeufin/bank/IntegrationApiHandlers.kt
+++ b/bank/src/main/kotlin/tech/libeufin/bank/IntegrationApiHandlers.kt
@@ -33,7 +33,9 @@ fun Routing.talerIntegrationHandlers(db: Database, ctx:
BankApplicationContext)
val internalCurrency: String = ctx.currency
call.respond(TalerIntegrationConfigResponse(currency =
internalCurrency))
return@get
- } // Note: wopid acts as an authentication token.
+ }
+
+ // Note: wopid acts as an authentication token.
get("/taler-integration/withdrawal-operation/{wopid}") {
val wopid = call.expectUriComponent("wopid")
val op = getWithdrawal(db, wopid) // throws 404 if not found.
diff --git a/bank/src/test/kotlin/LibeuFinApiTest.kt
b/bank/src/test/kotlin/LibeuFinApiTest.kt
index 176ec63b..2d9e496f 100644
--- a/bank/src/test/kotlin/LibeuFinApiTest.kt
+++ b/bank/src/test/kotlin/LibeuFinApiTest.kt
@@ -34,7 +34,7 @@ class LibeuFinApiTest {
private fun genBankAccount(rowId: Long) = BankAccount(
hasDebt = false,
- internalPaytoUri = "payto://iban/SANDBOXX/${rowId}-IBAN",
+ internalPaytoUri = "payto://iban/ac${rowId}",
maxDebt = TalerAmount(100, 0, "KUDOS"),
owningCustomerId = rowId
)
@@ -96,10 +96,12 @@ class LibeuFinApiTest {
val db = initDb()
val ctx = getTestContext()
// foo account
- val fooId = db.customerCreate(customerFoo); assert(fooId != null)
+ val fooId = db.customerCreate(customerFoo);
+ assert(fooId != null)
assert(db.bankAccountCreate(genBankAccount(fooId!!)) != null)
// bar account
- val barId = db.customerCreate(customerBar); assert(barId != null)
+ val barId = db.customerCreate(customerBar);
+ assert(barId != null)
assert(db.bankAccountCreate(genBankAccount(barId!!)) != null)
// accounts exist, now create one transaction.
testApplication {
@@ -113,7 +115,7 @@ class LibeuFinApiTest {
// expectSuccess = true
setBody(
"""{
- "payto_uri":
"payto://iban/SANDBOXX/${barId}-IBAN?message=payout",
+ "payto_uri": "payto://iban/AC${barId}?message=payout",
"amount": "KUDOS:3.3"
}
""".trimIndent()
@@ -201,7 +203,7 @@ class LibeuFinApiTest {
db.bankAccountCreate(
BankAccount(
hasDebt = false,
- internalPaytoUri = "payto://iban/SANDBOXX/FOO-IBAN",
+ internalPaytoUri = "payto://iban/DE1234",
maxDebt = TalerAmount(100, 0, "KUDOS"),
owningCustomerId = customerRowId!!
)
@@ -298,7 +300,6 @@ class LibeuFinApiTest {
testApplication {
val db = initDb()
val ctx = getTestContext()
- val ibanPayto = genIbanPaytoUri()
application {
corebankWebApp(db, ctx)
}
@@ -359,13 +360,15 @@ class LibeuFinApiTest {
}
assert(resp.status == HttpStatusCode.Unauthorized)
// Creating the administrator.
- assert(db.customerCreate(
- Customer(
- "admin",
- CryptoUtil.hashpw("pass"),
- "CFO"
- )
- ) != null)
+ assert(
+ db.customerCreate(
+ Customer(
+ "admin",
+ CryptoUtil.hashpw("pass"),
+ "CFO"
+ )
+ ) != null
+ )
// customer exists, this makes only the bank account:
assert(maybeCreateAdminAccount(db, ctx))
resp = client.post("/accounts") {
diff --git a/bank/src/test/kotlin/TalerApiTest.kt
b/bank/src/test/kotlin/TalerApiTest.kt
index e76c367d..59ee978a 100644
--- a/bank/src/test/kotlin/TalerApiTest.kt
+++ b/bank/src/test/kotlin/TalerApiTest.kt
@@ -189,11 +189,11 @@ class TalerApiTest {
}
}
}
- // Selecting withdrawal details from the Integrtion API endpoint.
+ // Selecting withdrawal details from the Integration API endpoint.
@Test
fun intSelect() {
val db = initDb()
- val ctx = getTestContext(suggestedExchange =
"payto://suggested-exchange")
+ val ctx = getTestContext(suggestedExchange = "payto://iban/ABC123")
val uuid = UUID.randomUUID()
assert(db.customerCreate(customerFoo) != null)
assert(db.bankAccountCreate(bankAccountFoo) != null)
@@ -212,7 +212,7 @@ class TalerApiTest {
contentType(ContentType.Application.Json)
setBody("""
{"reserve_pub": "RESERVE-FOO",
- "selected_exchange": "payto://selected/foo/exchange" }
+ "selected_exchange": "payto://iban/ABC123" }
""".trimIndent())
}
println(r.bodyAsText())
@@ -225,7 +225,7 @@ class TalerApiTest {
val uuid = UUID.randomUUID()
assert(db.customerCreate(customerFoo) != null)
assert(db.bankAccountCreate(bankAccountFoo) != null)
- val ctx = getTestContext(suggestedExchange =
"payto://suggested-exchange")
+ val ctx = getTestContext(suggestedExchange = "payto://iban/ABC123")
// insert new.
assert(db.talerWithdrawalCreate(
opUUID = uuid,
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: iban normalization in tests,
gnunet <=