gnunet-svn
[Top][All Lists]
Advanced

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

[libeufin] 02/05: Introducing TWG tests.


From: gnunet
Subject: [libeufin] 02/05: Introducing TWG tests.
Date: Fri, 10 Mar 2023 17:44:32 +0100

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

ms pushed a commit to branch master
in repository libeufin.

commit 26d382d720350498db742cd27ed65ae90596af8e
Author: MS <ms@taler.net>
AuthorDate: Fri Mar 10 17:24:18 2023 +0100

    Introducing TWG tests.
---
 nexus/build.gradle                 |  4 ++++
 nexus/src/test/kotlin/MakeEnv.kt   | 36 +++++++++++++++++++++++++-------
 nexus/src/test/kotlin/TalerTest.kt | 42 ++++++++++++++++++++++++--------------
 3 files changed, 60 insertions(+), 22 deletions(-)

diff --git a/nexus/build.gradle b/nexus/build.gradle
index dafe94c6..39e896c5 100644
--- a/nexus/build.gradle
+++ b/nexus/build.gradle
@@ -105,6 +105,10 @@ test {
     testLogging.showStandardStreams = false
     environment.put("LIBEUFIN_SANDBOX_ADMIN_PASSWORD", "foo")
     environment.put("LIBEUFIN_CASHOUT_TEST_TAN", "foo")
+    environment.put(
+            "LIBEUFIN_NEXUS_DB_CONNECTION",
+            
"jdbc:postgresql://localhost:5432/libeufincheck?user=${System.properties["user.name"]}"
+    )
 }
 
 application {
diff --git a/nexus/src/test/kotlin/MakeEnv.kt b/nexus/src/test/kotlin/MakeEnv.kt
index 8d391151..31cc5704 100644
--- a/nexus/src/test/kotlin/MakeEnv.kt
+++ b/nexus/src/test/kotlin/MakeEnv.kt
@@ -25,7 +25,8 @@ data class EbicsKeys(
 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:
-const val TEST_DB_CONN = "jdbc:postgresql://localhost:5432/talercheck?user=job"
+val currentUser = System.getProperty("user.name")
+val TEST_DB_CONN = 
"jdbc:postgresql://localhost:5432/libeufincheck?user=$currentUser"
 val BANK_IBAN = getIban()
 val FOO_USER_IBAN = getIban()
 val BAR_USER_IBAN = getIban()
@@ -296,7 +297,7 @@ fun withSandboxTestDatabase(f: () -> Unit) {
     }
 }
 
-fun talerIncomingForFoo(currency: String, value: String, subject: String) {
+fun newNexusBankTransaction(currency: String, value: String, subject: String) {
     transaction {
         val inc = NexusBankTransactionEntity.new {
             bankAccount = NexusBankAccountEntity.findByName("foo")!!
@@ -314,12 +315,12 @@ fun talerIncomingForFoo(currency: String, value: String, 
subject: String) {
                 )
             )
         }
-        TalerIncomingPaymentEntity.new {
+        /*TalerIncomingPaymentEntity.new {
             payment = inc
             reservePublicKey = "mock"
             timestampMs = 0L
             debtorPaytoUri = "mock"
-        }
+        }*/
     }
 }
 
@@ -350,9 +351,30 @@ fun genNexusIncomingPayment(
                         creditDebitIndicator = CreditDebitIndicator.CRDT,
                         details = TransactionDetails(
                             unstructuredRemittanceInformation = subject,
-                            debtor = null,
-                            debtorAccount = null,
-                            debtorAgent = null,
+                            debtor = PartyIdentification(
+                                name = "Mock Payer",
+                                countryOfResidence = null,
+                                privateId = null,
+                                organizationId = null,
+                                postalAddress = null,
+                                otherId = null
+                            ),
+                            debtorAccount = CashAccount(
+                                iban = "MOCK-IBAN",
+                                name = null,
+                                currency = null,
+                                otherId = null
+                            ),
+                            debtorAgent = AgentIdentification(
+                                bic = "MOCK-BIC",
+                                lei = null,
+                                clearingSystemMemberId = null,
+                                clearingSystemCode = null,
+                                proprietaryClearingSystemCode = null,
+                                postalAddress = null,
+                                otherId = null,
+                                name = null
+                            ),
                             creditor = null,
                             creditorAccount = null,
                             creditorAgent = null,
diff --git a/nexus/src/test/kotlin/TalerTest.kt 
b/nexus/src/test/kotlin/TalerTest.kt
index 36c656f1..7eadeb25 100644
--- a/nexus/src/test/kotlin/TalerTest.kt
+++ b/nexus/src/test/kotlin/TalerTest.kt
@@ -1,45 +1,57 @@
-import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
+import com.fasterxml.jackson.databind.ObjectMapper
+import io.ktor.client.call.*
 import io.ktor.client.plugins.*
 import io.ktor.client.request.*
 import io.ktor.client.statement.*
 import io.ktor.http.*
 import io.ktor.server.testing.*
 import kotlinx.coroutines.*
-import kotlinx.coroutines.future.future
-import org.jetbrains.exposed.sql.transactions.TransactionManager
 import org.jetbrains.exposed.sql.transactions.transaction
 import org.junit.Ignore
 import org.junit.Test
-import tech.libeufin.nexus.*
 import tech.libeufin.nexus.bankaccount.fetchBankAccountTransactions
-import tech.libeufin.nexus.iso20022.EntryStatus
+import tech.libeufin.nexus.ingestFacadeTransactions
+import tech.libeufin.nexus.maybeTalerRefunds
 import tech.libeufin.nexus.server.*
+import tech.libeufin.nexus.talerFilter
 import tech.libeufin.sandbox.sandboxApp
 import tech.libeufin.sandbox.wireTransfer
+import tech.libeufin.util.NotificationsChannelDomains
 
 // This class tests the features related to the Taler facade.
 class TalerTest {
+    val mapper = ObjectMapper()
 
-    /**
-     * Tests that a client (normally represented by the wire-watch)
-     * gets incoming transactions.
-     */
+    // Checking that a correct wire transfer (with Taler-compatible subject)
+    // is responded by the Taler facade.
     @Test
     fun historyIncomingTest() {
+        val reservePub = "GX5H5RME193FDRCM1HZKERXXQ2K21KH7788CKQM8X6MYKYRBP8F0"
         withNexusAndSandboxUser {
             testApplication {
                 application(nexusApp)
                 runBlocking {
-                    val future = async {
-                        client.get(
-                            
"/facades/taler/taler-wire-gateway/history/incoming?delta=5"
-                        ) {
-                            expectSuccess = true
+                    launch {
+                        val r = 
client.get("/facades/taler/taler-wire-gateway/history/incoming?delta=5") {
+                            expectSuccess = false
                             contentType(ContentType.Application.Json)
                             basicAuth("foo", "foo")
                         }
+                        val j = mapper.readTree(r.readBytes())
+                        val reservePubFromTwg = 
j.get("incoming_transactions").get(0).get("reserve_pub").asText()
+                        assert(reservePubFromTwg == reservePub)
                     }
-                    talerIncomingForFoo("KUDOS", "10", "Invalid")
+                    newNexusBankTransaction(
+                        "KUDOS",
+                        "10",
+                        reservePub
+                    )
+                    ingestFacadeTransactions(
+                        "foo", // bank account local to Nexus.
+                        "taler-wire-gateway",
+                        ::talerFilter,
+                        ::maybeTalerRefunds
+                    )
                 }
             }
         }

-- 
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]