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.exchange import com.example.demo.exchange.FixerIOExchangeAdapter import com.example.demo.exchange.LocalExchangeAdapter import com.example.demo.exchange.MoneyExchange import com.example.demo.exchange.YahooExchangeAdapter import com.example.demo.rest.RestWebClient 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) // val url = "http://data.fixer.io/api/latest?access_key=381f3bac3cb8beed200cc4e17c0f8bb4&symbols=USD,KHR,EUR" // val result = RestWebClient.getRates(url) // // println(result) // MoneyConfig.loadFrom(result) // // val moneyUsd = Money(10.0, currency = Currency.USD) // val moneyResult = moneyUsd.exchange("KHR") // println(moneyResult) // val exchangeAdapter1 = LocalExchangeAdapter() // val exchangeAdapter2 = FixerIOExchangeAdapter() // val exchangeAdapter3 = YahooExchangeAdapter() // // val exchanger = MoneyExchange(exchangeAdapter3) // // val moneyUsd = Money(10.0) // val result = exchanger.exchange(moneyUsd, "KHR") // println(result) } } fun main(args: Array) { runApplication(*args) }