summaryrefslogtreecommitdiff
path: root/sandbox/src/test/kotlin/BalanceTest.kt
blob: cf9f39183819ee0b138e9c3242a272060708921b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import org.jetbrains.exposed.sql.SchemaUtils
import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.transactions.transaction
import org.junit.Test
import tech.libeufin.sandbox.*
import tech.libeufin.util.millis
import java.math.BigDecimal
import java.time.LocalDateTime

class BalanceTest {
    @Test
    fun balanceTest() {
        val config = DemobankConfig(
            currency = "EUR",
            bankDebtLimit = 1000000,
            usersDebtLimit = 10000,
            allowRegistrations = true,
            demobankName = "default",
            withSignupBonus = false
        )
        withTestDatabase {
            transaction {
                insertConfigPairs(config)
                val demobank = DemobankConfigEntity.new {
                    name = "default"
                }
                val one = BankAccountEntity.new {
                    iban = "IBAN 1"
                    bic = "BIC"
                    label = "label 1"
                    owner = "test"
                    this.demoBank = demobank
                }
                BankAccountTransactionEntity.new {
                    account = one
                    creditorIban = "earns"
                    creditorBic = "BIC"
                    creditorName = "Creditor Name"
                    debtorIban = "spends"
                    debtorBic = "BIC"
                    debtorName = "Debitor Name"
                    subject = "deal"
                    amount = "1"
                    date = LocalDateTime.now().millis()
                    currency = "EUR"
                    pmtInfId = "0"
                    direction = "CRDT"
                    accountServicerReference = "test-account-servicer-reference"
                    this.demobank = demobank
                }
                BankAccountTransactionEntity.new {
                    account = one
                    creditorIban = "earns"
                    creditorBic = "BIC"
                    creditorName = "Creditor Name"
                    debtorIban = "spends"
                    debtorBic = "BIC"
                    debtorName = "Debitor Name"
                    subject = "deal"
                    amount = "1"
                    date = LocalDateTime.now().millis()
                    currency = "EUR"
                    pmtInfId = "0"
                    direction = "CRDT"
                    accountServicerReference = "test-account-servicer-reference"
                    this.demobank = demobank
                }
                BankAccountTransactionEntity.new {
                    account = one
                    creditorIban = "earns"
                    creditorBic = "BIC"
                    creditorName = "Creditor Name"
                    debtorIban = "spends"
                    debtorBic = "BIC"
                    debtorName = "Debitor Name"
                    subject = "deal"
                    amount = "1"
                    date = LocalDateTime.now().millis()
                    currency = "EUR"
                    pmtInfId = "0"
                    direction = "DBIT"
                    accountServicerReference = "test-account-servicer-reference"
                    this.demobank = demobank
                }
                assert(BigDecimal.ONE == getBalance(one, withPending = true))
            }
        }
    }
    @Test
    fun balanceAbsTest() {
        val minus = BigDecimal.ZERO - BigDecimal.ONE
        val plus = BigDecimal.ONE
        println(minus.abs().toPlainString())
        println(plus.abs().toPlainString())
    }
}