summaryrefslogtreecommitdiff
path: root/merchant-lib/src/test/java/net/taler
diff options
context:
space:
mode:
Diffstat (limited to 'merchant-lib/src/test/java/net/taler')
-rw-r--r--merchant-lib/src/test/java/net/taler/merchantlib/MerchantApiTest.kt32
-rw-r--r--merchant-lib/src/test/java/net/taler/merchantlib/MockHttpClient.kt24
2 files changed, 27 insertions, 29 deletions
diff --git a/merchant-lib/src/test/java/net/taler/merchantlib/MerchantApiTest.kt b/merchant-lib/src/test/java/net/taler/merchantlib/MerchantApiTest.kt
index 63188f9..cf627c6 100644
--- a/merchant-lib/src/test/java/net/taler/merchantlib/MerchantApiTest.kt
+++ b/merchant-lib/src/test/java/net/taler/merchantlib/MerchantApiTest.kt
@@ -18,12 +18,12 @@ package net.taler.merchantlib
import io.ktor.http.HttpStatusCode.Companion.NotFound
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.test.TestCoroutineDispatcher
-import kotlinx.coroutines.test.runBlockingTest
+import kotlinx.coroutines.runBlocking
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import net.taler.common.Amount
import net.taler.common.ContractProduct
import net.taler.common.ContractTerms
-import net.taler.lib.common.Amount
-import net.taler.lib.common.Timestamp
+import net.taler.common.Timestamp
import net.taler.merchantlib.MockHttpClient.giveJsonResponse
import net.taler.merchantlib.MockHttpClient.httpClient
import org.junit.Assert.assertEquals
@@ -33,7 +33,7 @@ import org.junit.Test
@ExperimentalCoroutinesApi
class MerchantApiTest {
- private val api = MerchantApi(httpClient, TestCoroutineDispatcher())
+ private val api = MerchantApi(httpClient, UnconfinedTestDispatcher())
private val merchantConfig = MerchantConfig(
baseUrl = "http://example.net/instances/testInstance",
apiKey = "apiKeyFooBar"
@@ -41,7 +41,7 @@ class MerchantApiTest {
private val orderId = "orderIdFoo"
@Test
- fun testGetConfig() = runBlockingTest {
+ fun testGetConfig() = runBlocking {
httpClient.giveJsonResponse("https://backend.int.taler.net/config") {
"""
{
@@ -56,7 +56,7 @@ class MerchantApiTest {
}
@Test
- fun testPostOrder() = runBlockingTest {
+ fun testPostOrder() = runBlocking {
val product = ContractProduct(
productId = "foo",
description = "bar",
@@ -80,7 +80,7 @@ class MerchantApiTest {
{
"product_id": "${product.productId}",
"description": "${product.description}",
- "price": "${product.price.toJSONString()}",
+ "price": "${product.price!!.toJSONString()}",
"quantity": ${product.quantity}
}
]
@@ -113,7 +113,7 @@ class MerchantApiTest {
}
@Test
- fun testCheckOrder() = runBlockingTest {
+ fun testCheckOrder() = runBlocking {
val unpaidResponse = CheckPaymentResponse.Unpaid(false, "http://taler.net/foo")
httpClient.giveJsonResponse("http://example.net/instances/testInstance/private/orders/$orderId") {
"""{
@@ -142,7 +142,7 @@ class MerchantApiTest {
}
@Test
- fun testDeleteOrder() = runBlockingTest {
+ fun testDeleteOrder() = runBlocking {
httpClient.giveJsonResponse("http://example.net/instances/testInstance/private/orders/$orderId") {
"{}"
}
@@ -165,14 +165,14 @@ class MerchantApiTest {
}
@Test
- fun testGetOrderHistory() = runBlockingTest {
+ fun testGetOrderHistory() = runBlocking {
httpClient.giveJsonResponse("http://example.net/instances/testInstance/private/orders") {
"""{ "orders": [
{
"order_id": "2020.217-0281FGXCS25P2",
"row_id": 183,
"timestamp": {
- "t_ms": 1596542338000
+ "t_s": 1596542338
},
"amount": "TESTKUDOS:1",
"summary": "Chips",
@@ -183,7 +183,7 @@ class MerchantApiTest {
"order_id": "2020.216-01G2ZPXSP6BYT",
"row_id": 154,
"timestamp": {
- "t_ms": 1596468174000
+ "t_s": 1596468174
},
"amount": "TESTKUDOS:0.8",
"summary": "Peanuts",
@@ -202,7 +202,7 @@ class MerchantApiTest {
assertEquals(true, order1.paid)
assertEquals(true, order1.refundable)
assertEquals("Chips", order1.summary)
- assertEquals(Timestamp(1596542338000), order1.timestamp)
+ assertEquals(Timestamp.fromMillis(1596542338000), order1.timestamp)
val order2 = it.orders[1]
assertEquals(Amount("TESTKUDOS", 0, 80000000), order2.amount)
@@ -210,12 +210,12 @@ class MerchantApiTest {
assertEquals(false, order2.paid)
assertEquals(false, order2.refundable)
assertEquals("Peanuts", order2.summary)
- assertEquals(Timestamp(1596468174000), order2.timestamp)
+ assertEquals(Timestamp.fromMillis(1596468174000), order2.timestamp)
}
}
@Test
- fun testGiveRefund() = runBlockingTest {
+ fun testGiveRefund() = runBlocking {
httpClient.giveJsonResponse("http://example.net/instances/testInstance/private/orders/$orderId/refund") {
"""{
"taler_refund_uri": "taler://refund/foo/bar"
diff --git a/merchant-lib/src/test/java/net/taler/merchantlib/MockHttpClient.kt b/merchant-lib/src/test/java/net/taler/merchantlib/MockHttpClient.kt
index c8e6f22..32c7ee1 100644
--- a/merchant-lib/src/test/java/net/taler/merchantlib/MockHttpClient.kt
+++ b/merchant-lib/src/test/java/net/taler/merchantlib/MockHttpClient.kt
@@ -20,11 +20,7 @@ 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.respond
-import io.ktor.client.features.json.JsonFeature
-import io.ktor.client.features.logging.LogLevel
-import io.ktor.client.features.logging.Logger
-import io.ktor.client.features.logging.Logging
-import io.ktor.client.features.logging.SIMPLE
+import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.http.ContentType.Application.Json
import io.ktor.http.HttpStatusCode
import io.ktor.http.Url
@@ -32,29 +28,31 @@ import io.ktor.http.content.TextContent
import io.ktor.http.fullPath
import io.ktor.http.headersOf
import io.ktor.http.hostWithPort
+import io.ktor.serialization.kotlinx.json.json
+import kotlinx.serialization.json.Json
import kotlinx.serialization.json.Json.Default.parseToJsonElement
import org.junit.Assert.assertEquals
object MockHttpClient {
val httpClient = HttpClient(MockEngine) {
- install(JsonFeature) {
- serializer = getSerializer()
- }
- install(Logging) {
- logger = Logger.SIMPLE
- level = LogLevel.ALL
- }
engine {
addHandler { error("No response handler set") }
}
+ expectSuccess = true
+ install(ContentNegotiation) {
+ json(Json {
+ encodeDefaults = false
+ ignoreUnknownKeys = true
+ })
+ }
}
fun HttpClient.giveJsonResponse(
url: String,
expectedBody: String? = null,
statusCode: HttpStatusCode = HttpStatusCode.OK,
- jsonProducer: () -> String
+ jsonProducer: () -> String,
) {
val httpConfig = engineConfig as MockEngineConfig
httpConfig.requestHandlers.removeAt(0)