libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 62524595abb1ae49ce456d7e3547c383e1fbb21d
parent d2140959109061ff57a71270c95b729ca8205355
Author: Antoine A <>
Date:   Wed, 24 Apr 2024 13:22:00 +0900

Fix receiver-name parsing

Diffstat:
Mcommon/src/main/kotlin/TalerCommon.kt | 2+-
Mcommon/src/test/kotlin/PaytoTest.kt | 9++++++---
2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/common/src/main/kotlin/TalerCommon.kt b/common/src/main/kotlin/TalerCommon.kt @@ -275,7 +275,7 @@ sealed class Payto { } if (parsed.scheme != "payto") throw CommonError.Payto("expect a payto URI got '${parsed.scheme}'") - val params = (parsed.query ?: "").parseUrlEncodedParameters() + val params = parseQueryString(parsed.query ?: "") val amount = params["amount"]?.run { TalerAmount(this) } val message = params["message"] val receiverName = params["receiver-name"] diff --git a/common/src/test/kotlin/PaytoTest.kt b/common/src/test/kotlin/PaytoTest.kt @@ -38,11 +38,14 @@ class PaytoTest { val withBic = Payto.parse("payto://iban/BIC123/CH9300762011623852957?receiver-name=The%20Name").expectIban() assertEquals(withBic.iban.value, "CH9300762011623852957") assertEquals(withBic.receiverName, "The Name") - val complete = Payto.parse("payto://iban/BIC123/CH9300762011623852957?sender-name=The%20Name&amount=EUR:1&message=donation").expectIban() - assertEquals(withBic.iban.value, "CH9300762011623852957") - assertEquals(withBic.receiverName, "The Name") + val complete = Payto.parse("payto://iban/BIC123/CH9300762011623852957?receiver-name=The%20Name&amount=EUR:1&message=donation").expectIban() + assertEquals(complete.iban.value, "CH9300762011623852957") + assertEquals(complete.receiverName, "The Name") assertEquals(complete.message, "donation") assertEquals(complete.amount.toString(), "EUR:1") + val plusEncode = Payto.parse("payto://iban/BIC123/CH9300762011623852957?receiver-name=Santa+Claus&amount=EUR:1&message=donation").expectIban() + assertEquals(plusEncode.iban.value, "CH9300762011623852957") + assertEquals(plusEncode.receiverName, "Santa Claus") val withoutOptionals = Payto.parse("payto://iban/CH9300762011623852957").expectIban() assertNull(withoutOptionals.message) assertNull(withoutOptionals.receiverName)