demo-money-project/src/main/kotlin/com/example/demo/DemoApplication.kt

54 lines
1.7 KiB
Kotlin

package com.example.demo
import com.example.demo.domain.Currency
import com.example.demo.domain.Money
import com.example.demo.domain.MoneyConfig
import com.example.demo.domain.MoneyDyn
import com.example.demo.domain.addMoney
import com.example.demo.domain.exchange
import com.example.demo.domain.plus
import com.example.demo.domain.toStdMoneyFormatable
import org.springframework.boot.CommandLineRunner
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class DemoApplication : CommandLineRunner {
override fun run(vararg args: String?) {
// val value1 = "50:USD"
// val value2 = "30:KHR"
// val money1 = Money.parse(value1)
// val money2 = Money.parse(value2)
// val result = money1.addMoney(money2)
//
// println(result)
// val config = "USD=1,KHR=4000,EUR=0.99"
// val result = MoneyConfig.parse(config)
// println(result)
MoneyConfig.parse("USD=1,KHR=4000,EUR=0.99")
// val value1 = MoneyDyn(value = 2.0, currency = "USD")
// val value2 = MoneyDyn(value = 20000.0, currency = "KHR")
// val value3 = MoneyDyn(value = 0.99, currency = "EUR")
// value1.addMoney(value2)
// value1.addMoney(value3)
//
// // val result = value1.exchange("KHR")
// println(value1.exchangeTo("KHR")) // 7
val moneyUsd = Money(2.0)
.addMoney(20000.0, "USD")
.exchange("KHR")
.toStdMoneyFormatable()
.formatMoneyDisplay()
println(moneyUsd)
}
}
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}