aboutsummaryrefslogtreecommitdiff
path: root/wallet/src/test/java/net
diff options
context:
space:
mode:
Diffstat (limited to 'wallet/src/test/java/net')
-rw-r--r--wallet/src/test/java/net/taler/wallet/backend/WalletResponseTest.kt42
1 files changed, 38 insertions, 4 deletions
diff --git a/wallet/src/test/java/net/taler/wallet/backend/WalletResponseTest.kt b/wallet/src/test/java/net/taler/wallet/backend/WalletResponseTest.kt
index b7d7c68..698c90a 100644
--- a/wallet/src/test/java/net/taler/wallet/backend/WalletResponseTest.kt
+++ b/wallet/src/test/java/net/taler/wallet/backend/WalletResponseTest.kt
@@ -16,17 +16,31 @@
package net.taler.wallet.backend
-import junit.framework.Assert.assertEquals
-import kotlinx.serialization.UnstableDefault
+import com.fasterxml.jackson.databind.DeserializationFeature
+import com.fasterxml.jackson.databind.ObjectMapper
+import com.fasterxml.jackson.module.kotlin.KotlinModule
+import com.fasterxml.jackson.module.kotlin.readValue
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonConfiguration
+import net.taler.common.Amount
+import net.taler.common.AmountMixin
+import net.taler.common.Timestamp
+import net.taler.common.TimestampMixin
import net.taler.wallet.balances.BalanceResponse
+import org.junit.Assert.assertEquals
import org.junit.Test
-@UnstableDefault
class WalletResponseTest {
- private val json = Json(JsonConfiguration(ignoreUnknownKeys = true))
+ private val json = Json(
+ JsonConfiguration.Stable.copy(ignoreUnknownKeys = true)
+ )
+
+ private val mapper = ObjectMapper()
+ .registerModule(KotlinModule())
+ .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .addMixIn(Amount::class.java, AmountMixin::class.java)
+ .addMixIn(Timestamp::class.java, TimestampMixin::class.java)
@Test
fun testBalanceResponse() {
@@ -53,4 +67,24 @@ class WalletResponseTest {
)
assertEquals(1, response.result.balances.size)
}
+
+ @Test
+ fun testWalletErrorInfo() {
+ val infoJson = """
+ {
+ "talerErrorCode":7001,
+ "talerErrorHint":"Error: WALLET_UNEXPECTED_EXCEPTION",
+ "details":{
+ "httpStatusCode": 401,
+ "requestUrl": "https:\/\/backend.demo.taler.net\/-\/FSF\/orders\/2020.224-02XC8W52BHH3G\/claim",
+ "requestMethod": "POST"
+ },
+ "message":"unexpected exception: Error: BUG: invariant violation (purchase status)"
+ }
+ """.trimIndent()
+ val info = json.parse(WalletErrorInfo.serializer(), infoJson)
+ val infoJackson: WalletErrorInfo = mapper.readValue(infoJson)
+ println(info.userFacingMsg)
+ assertEquals(info.userFacingMsg, infoJackson.userFacingMsg)
+ }
}