gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libeufin] 02/05: Adapt tests to #7515.


From: gnunet
Subject: [libeufin] 02/05: Adapt tests to #7515.
Date: Mon, 13 Mar 2023 10:25:13 +0100

This is an automated email from the git hooks/post-receive script.

ms pushed a commit to branch master
in repository libeufin.

commit d13ac7ba520b7959800905260777f79b5e9bf04c
Author: MS <ms@taler.net>
AuthorDate: Mon Mar 13 09:46:48 2023 +0100

    Adapt tests to #7515.
---
 nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt    |  1 -
 nexus/src/main/kotlin/tech/libeufin/nexus/Taler.kt |  2 +-
 nexus/src/test/kotlin/MakeEnv.kt                   | 58 +++++++++-------------
 nexus/src/test/kotlin/SandboxAccessApiTest.kt      |  5 +-
 nexus/src/test/kotlin/SandboxCircuitApiTest.kt     | 14 ++++--
 nexus/src/test/kotlin/TalerTest.kt                 |  3 +-
 6 files changed, 40 insertions(+), 43 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt
index f8ce7bd4..b1e47d3d 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/DB.kt
@@ -387,7 +387,6 @@ class FacadeEntity(id: EntityID<Long>) : LongEntity(id) {
             return find { FacadesTable.facadeName eq name}.firstOrNull()
         }
     }
-
     var facadeName by FacadesTable.facadeName
     var type by FacadesTable.type
     var creator by NexusUserEntity referencedOn FacadesTable.creator
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Taler.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Taler.kt
index dc545201..8f1d32f2 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Taler.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Taler.kt
@@ -483,7 +483,7 @@ private suspend fun historyOutgoing(call: ApplicationCall) {
 // Handle a /taler-wire-gateway/history/incoming request.
 private suspend fun historyIncoming(call: ApplicationCall) {
     val facadeId = expectNonNull(call.parameters["fcid"])
-    val username = call.request.requirePermission(
+    call.request.requirePermission(
         PermissionQuery(
             "facade",
             facadeId,
diff --git a/nexus/src/test/kotlin/MakeEnv.kt b/nexus/src/test/kotlin/MakeEnv.kt
index 31cc5704..9f8f5249 100644
--- a/nexus/src/test/kotlin/MakeEnv.kt
+++ b/nexus/src/test/kotlin/MakeEnv.kt
@@ -22,8 +22,6 @@ data class EbicsKeys(
     val enc: CryptoUtil.RsaCrtKeyPair,
     val sig: CryptoUtil.RsaCrtKeyPair
 )
-const val TEST_DB_FILE = "/tmp/nexus-test.sqlite3"
-// const val TEST_DB_CONN = "jdbc:sqlite:$TEST_DB_FILE"
 // Convenience DB connection to switch to Postgresql:
 val currentUser = System.getProperty("user.name")
 val TEST_DB_CONN = 
"jdbc:postgresql://localhost:5432/libeufincheck?user=$currentUser"
@@ -63,23 +61,11 @@ inline fun <reified ExceptionType> assertException(
  * Cleans up the DB file afterwards.
  */
 fun withTestDatabase(f: () -> Unit) {
-    File(TEST_DB_FILE).also {
-        if (it.exists()) {
-            it.delete()
-        }
-    }
     Database.connect(TEST_DB_CONN)
     TransactionManager.manager.defaultIsolationLevel = 
java.sql.Connection.TRANSACTION_SERIALIZABLE
     dbDropTables(TEST_DB_CONN)
     tech.libeufin.sandbox.dbDropTables(TEST_DB_CONN)
-    try { f() }
-    finally {
-        File(TEST_DB_FILE).also {
-            if (it.exists()) {
-                it.delete()
-            }
-        }
-    }
+    f()
 }
 
 val reportSpec: String = jacksonObjectMapper().
@@ -169,19 +155,21 @@ fun prepNexusDb() {
     }
 }
 
-fun prepSandboxDb() {
+fun prepSandboxDb(usersDebtLimit: Int = 1000) {
     tech.libeufin.sandbox.dbCreateTables(TEST_DB_CONN)
     transaction {
-        val demoBank = DemobankConfigEntity.new {
-            currency = "TESTKUDOS"
-            bankDebtLimit = 10000
-            usersDebtLimit = 1000
-            allowRegistrations = true
-            name = "default"
-            this.withSignupBonus = false
-            captchaUrl = "http://example.com/"; // unused
+        val config = DemobankConfig(
+            currency = "TESTKUDOS",
+            bankDebtLimit = 10000,
+            usersDebtLimit = usersDebtLimit,
+            allowRegistrations = true,
+            demobankName = "default",
+            withSignupBonus = false,
+            captchaUrl = "http://example.com/";,
             suggestedExchangePayto = "payto://iban/${BAR_USER_IBAN}"
-        }
+        )
+        insertConfigPairs(config)
+        val demoBank = DemobankConfigEntity.new { name = "default" }
         BankAccountEntity.new {
             iban = BANK_IBAN
             label = "admin" // used by the wire helper
@@ -275,15 +263,17 @@ fun withSandboxTestDatabase(f: () -> Unit) {
     withTestDatabase {
         tech.libeufin.sandbox.dbCreateTables(TEST_DB_CONN)
         transaction {
-            val d = DemobankConfigEntity.new {
-                currency = "TESTKUDOS"
-                bankDebtLimit = 10000
-                usersDebtLimit = 1000
-                allowRegistrations = true
-                name = "default"
-                this.withSignupBonus = false
+            val config = DemobankConfig(
+                currency = "TESTKUDOS",
+                bankDebtLimit = 10000,
+                usersDebtLimit = 1000,
+                allowRegistrations = true,
+                demobankName = "default",
+                withSignupBonus = false,
                 captchaUrl = "http://example.com/"; // unused
-            }
+            )
+            insertConfigPairs(config)
+            val d = DemobankConfigEntity.new { name = "default" }
             // admin's bank account.
             BankAccountEntity.new {
                 iban = BANK_IBAN
@@ -299,7 +289,7 @@ fun withSandboxTestDatabase(f: () -> Unit) {
 
 fun newNexusBankTransaction(currency: String, value: String, subject: String) {
     transaction {
-        val inc = NexusBankTransactionEntity.new {
+        NexusBankTransactionEntity.new {
             bankAccount = NexusBankAccountEntity.findByName("foo")!!
             accountTransactionId = "mock"
             creditDebitIndicator = "CRDT"
diff --git a/nexus/src/test/kotlin/SandboxAccessApiTest.kt 
b/nexus/src/test/kotlin/SandboxAccessApiTest.kt
index e163a1bb..f924a5fe 100644
--- a/nexus/src/test/kotlin/SandboxAccessApiTest.kt
+++ b/nexus/src/test/kotlin/SandboxAccessApiTest.kt
@@ -5,6 +5,7 @@ import io.ktor.client.statement.*
 import io.ktor.http.*
 import io.ktor.server.testing.*
 import kotlinx.coroutines.runBlocking
+import org.jetbrains.exposed.sql.and
 import org.jetbrains.exposed.sql.transactions.transaction
 import org.junit.Test
 import tech.libeufin.sandbox.*
@@ -66,11 +67,9 @@ class SandboxAccessApiTest {
     @Test
     fun highAmountWithdraw() {
         withTestDatabase {
-            prepSandboxDb()
-            val b = getDefaultDemobank()
+            prepSandboxDb(usersDebtLimit = 900000000)
             testApplication {
                 application(sandboxApp)
-                transaction { b.usersDebtLimit = 900000000 }
                 // Create the operation.
                 val r = 
client.post("/demobanks/default/access-api/accounts/foo/withdrawals") {
                     expectSuccess = true
diff --git a/nexus/src/test/kotlin/SandboxCircuitApiTest.kt 
b/nexus/src/test/kotlin/SandboxCircuitApiTest.kt
index 350c5e8e..0de4121c 100644
--- a/nexus/src/test/kotlin/SandboxCircuitApiTest.kt
+++ b/nexus/src/test/kotlin/SandboxCircuitApiTest.kt
@@ -5,6 +5,7 @@ import io.ktor.client.statement.*
 import io.ktor.http.*
 import io.ktor.server.testing.*
 import kotlinx.coroutines.runBlocking
+import org.jetbrains.exposed.sql.and
 import org.jetbrains.exposed.sql.lowerCase
 import org.jetbrains.exposed.sql.transactions.transaction
 import org.junit.Ignore
@@ -221,8 +222,15 @@ class SandboxCircuitApiTest {
                         """.trimIndent())
                 }
                 // Give initial balance to the new account.
-                val demobank = getDefaultDemobank()
-                transaction { demobank.usersDebtLimit = 0 }
+                // Forcing different debt limit:
+                transaction {
+                    val configRaw = DemobankConfigPairEntity.find {
+                        DemobankConfigPairsTable.demobankName eq "default" and(
+                                DemobankConfigPairsTable.configKey eq 
"usersDebtLimit"
+                                )
+                    }.first()
+                    configRaw.configValue = 0.toString()
+                }
                 val initialBalance = "TESTKUDOS:50.00"
                 val balanceAfterCashout = "TESTKUDOS:30.00"
                 wireTransfer(
@@ -514,7 +522,7 @@ class SandboxCircuitApiTest {
                     uCustomerProfile.delete()
                 }
                 val barBalanceUpdate = getBalance("bar")
-                assert(barBalance == BigDecimal("3"))
+                assert(barBalanceUpdate == BigDecimal("3"))
             }
         }
     }
diff --git a/nexus/src/test/kotlin/TalerTest.kt 
b/nexus/src/test/kotlin/TalerTest.kt
index 7dce7a25..22493606 100644
--- a/nexus/src/test/kotlin/TalerTest.kt
+++ b/nexus/src/test/kotlin/TalerTest.kt
@@ -32,11 +32,12 @@ class TalerTest {
                 application(nexusApp)
                 runBlocking {
                     launch {
-                        val r = 
client.get("/facades/taler/taler-wire-gateway/history/incoming?delta=5&start=3")
 {
+                        val r = 
client.get("/facades/taler/taler-wire-gateway/history/incoming?delta=5&start=0&long_poll_ms=3000")
 {
                             expectSuccess = false
                             contentType(ContentType.Application.Json)
                             basicAuth("foo", "foo")
                         }
+                        println("maybe response body: ${r.bodyAsText()}")
                         assert(r.status.value == HttpStatusCode.OK.value)
                         val j = mapper.readTree(r.readBytes())
                         val reservePubFromTwg = 
j.get("incoming_transactions").get(0).get("reserve_pub").asText()

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]