summaryrefslogtreecommitdiff
path: root/wallet/src/commonTest
diff options
context:
space:
mode:
Diffstat (limited to 'wallet/src/commonTest')
-rw-r--r--wallet/src/commonTest/kotlin/net/taler/lib/wallet/TestUtils.kt21
-rw-r--r--wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/DenominationTest.kt5
-rw-r--r--wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/Denominations.kt2
-rw-r--r--wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/KeysTest.kt2
-rw-r--r--wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/WireTest.kt2
-rw-r--r--wallet/src/commonTest/kotlin/net/taler/lib/wallet/operations/WithdrawTest.kt2
6 files changed, 19 insertions, 15 deletions
diff --git a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/TestUtils.kt b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/TestUtils.kt
index 14c3076..2b306d8 100644
--- a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/TestUtils.kt
+++ b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/TestUtils.kt
@@ -18,7 +18,7 @@ package net.taler.lib.wallet
import io.ktor.client.HttpClient
import io.ktor.client.engine.mock.MockEngine
-import io.ktor.client.engine.mock.MockEngineConfig
+import io.ktor.client.engine.mock.MockRequestHandler
import io.ktor.client.engine.mock.respond
import io.ktor.client.features.json.JsonFeature
import io.ktor.client.features.json.serializer.KotlinxSerializer
@@ -28,7 +28,7 @@ import io.ktor.http.fullPath
import io.ktor.http.headersOf
import io.ktor.http.hostWithPort
import kotlinx.coroutines.CoroutineScope
-import kotlinx.serialization.json.Json
+import kotlin.native.concurrent.ThreadLocal
enum class PlatformTarget {
ANDROID,
@@ -43,19 +43,24 @@ expect fun runCoroutine(block: suspend (scope: CoroutineScope) -> Unit)
expect fun getPlatformTarget(): PlatformTarget
+@ThreadLocal
+object ChangeableRequestHandler {
+ var myHandler: MockRequestHandler = { _ ->
+ error("No HttpClient request handler added. Use e.g. giveJsonResponse()")
+ }
+}
+
fun getMockHttpClient(): HttpClient = HttpClient(MockEngine) {
install(JsonFeature) {
- serializer = KotlinxSerializer(Json(getJsonConfiguration()))
+ serializer = KotlinxSerializer(getJson())
}
engine {
- addHandler { error("No test handler added") }
+ addHandler { ChangeableRequestHandler.myHandler(this, it) }
}
}
-fun HttpClient.giveJsonResponse(url: String, jsonProducer: () -> String) {
- val httpConfig = engineConfig as MockEngineConfig
- httpConfig.requestHandlers.removeAt(0)
- httpConfig.requestHandlers.add { request ->
+fun giveJsonResponse(url: String, jsonProducer: () -> String) {
+ ChangeableRequestHandler.myHandler = { request ->
if (request.url.fullUrl == url) {
val headers = headersOf("Content-Type" to listOf(Application.Json.toString()))
respond(jsonProducer(), headers = headers)
diff --git a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/DenominationTest.kt b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/DenominationTest.kt
index c52638b..c9e4b22 100644
--- a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/DenominationTest.kt
+++ b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/DenominationTest.kt
@@ -18,7 +18,6 @@ package net.taler.lib.wallet.exchange
import net.taler.lib.common.Amount
import net.taler.lib.common.Timestamp
-import net.taler.lib.common.Timestamp.Companion.NEVER
import net.taler.lib.wallet.exchange.DenominationStatus.VerifiedBad
import net.taler.lib.wallet.exchange.DenominationStatus.VerifiedGood
import net.taler.lib.wallet.exchange.Denominations.denomination1
@@ -40,7 +39,7 @@ class DenominationTest {
totalWithdrawCost = Amount.zero("TESTKUDOS"),
selectedDenominations = emptyList()
)
- assertEquals(Timestamp(NEVER), infoEmpty.getEarliestDepositExpiry())
+ assertEquals(Timestamp.never(), infoEmpty.getEarliestDepositExpiry())
// earliest expiry of single denomination is that of the denomination
val info1 = infoEmpty.copy(
@@ -61,7 +60,7 @@ class DenominationTest {
// denomination that expires at all is earlier than the one that never expires
val info3 = infoEmpty.copy(
selectedDenominations = listOf(
- SelectedDenomination(2, denomination2.copy(stampExpireDeposit = Timestamp(NEVER))),
+ SelectedDenomination(2, denomination2.copy(stampExpireDeposit = Timestamp.never())),
SelectedDenomination(1, denomination1.copy(stampExpireDeposit = Timestamp(1)))
)
)
diff --git a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/Denominations.kt b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/Denominations.kt
index 10a2772..90b9f6a 100644
--- a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/Denominations.kt
+++ b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/Denominations.kt
@@ -21,7 +21,7 @@ import net.taler.lib.common.Timestamp
import net.taler.lib.wallet.exchange.DenominationStatus.Unverified
import net.taler.lib.wallet.exchange.DenominationStatus.VerifiedGood
-object Denominations {
+internal object Denominations {
private val validStart = Timestamp.now()
private val validExpireWithdraw =
diff --git a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/KeysTest.kt b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/KeysTest.kt
index a40c7cd..a0657b4 100644
--- a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/KeysTest.kt
+++ b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/KeysTest.kt
@@ -134,7 +134,7 @@ class KeysTest {
version = "7:0:0"
)
- httpClient.giveJsonResponse("https://exchange.test.taler.net/keys") {
+ giveJsonResponse("https://exchange.test.taler.net/keys") {
"""{
"version": "7:0:0",
"master_public_key": "DY95EXAHQ2BKM2WK9YHZHYG1R7PPMMJPY14FNGP662DAKE35AKQG",
diff --git a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/WireTest.kt b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/WireTest.kt
index 16671a9..aa9e906 100644
--- a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/WireTest.kt
+++ b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/exchange/WireTest.kt
@@ -84,7 +84,7 @@ class WireTest {
)
)
)
- httpClient.giveJsonResponse("https://exchange.test.taler.net/wire") {
+ giveJsonResponse("https://exchange.test.taler.net/wire") {
"""{
"accounts": [
{
diff --git a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/operations/WithdrawTest.kt b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/operations/WithdrawTest.kt
index 634a9dd..e03681e 100644
--- a/wallet/src/commonTest/kotlin/net/taler/lib/wallet/operations/WithdrawTest.kt
+++ b/wallet/src/commonTest/kotlin/net/taler/lib/wallet/operations/WithdrawTest.kt
@@ -64,7 +64,7 @@ internal class WithdrawTest {
transferDone = false,
wireTypes = listOf("x-taler-bank")
)
- httpClient.giveJsonResponse(bankDetails.extractedStatusUrl) {
+ giveJsonResponse(bankDetails.extractedStatusUrl) {
"""{
"selection_done": ${bankDetails.selectionDone},
"transfer_done": ${bankDetails.transferDone},