/// <summary> /// Konverterer fra en kryptovaluta til en anden. /// Hvis en af de angivne valutaer ikke findes, kaster funktionen en ArgumentException /// /// </summary> /// <param name="fromCurrencyName">Navnet på den valuta, der konverterers fra</param> /// <param name="toCurrencyName">Navnet på den valuta, der konverteres til</param> /// <param name="amount">Beløbet angivet i valutaen angivet i fromCurrencyName</param> /// <returns>Værdien af beløbet i toCurrencyName</returns> public double Convert(String fromCurrencyName, String toCurrencyName, double amount) { //The validation happens inside 'GetCryptoCurrency' CryptoCurrencyDbModel fromCurrency = _cryptoCurrencyDb.GetCryptoCurrency(fromCurrencyName, true); //We use the unit price from the database to get it in dollar double fromCurrencyDollar = amount * fromCurrency.UnitPrice; //The validation happens inside 'GetCryptoCurrency' CryptoCurrencyDbModel toCurrency = _cryptoCurrencyDb.GetCryptoCurrency(toCurrencyName, true); //Convert to dollars var toCurrencyDollar = fromCurrencyDollar / toCurrency.UnitPrice; return(toCurrencyDollar); }
public void ThrowArgumentException_When_CryptoCurrencyName_Is_Wrong() { string currencyName = "Bitcoin"; var cryptoCurrencyDb = new CryptoCurrencyDb(DatabaseConnectionString); Assert.Throws <ArgumentException>(() => cryptoCurrencyDb.GetCryptoCurrency(currencyName, true)); }
public void Can_Get_CryptoCurrencyName_Bitcoin() { string currencyName = "Bitcoin"; var cryptoCurrencyDb = new CryptoCurrencyDb(DatabaseConnectionString); var result = cryptoCurrencyDb.GetCryptoCurrency(currencyName, true); Assert.Equal(currencyName, result.CurrencyName); }
public void Can_Update_UnitInDollar_Bitcoin() { string currencyName = "Bitcoin"; var cryptoCurrencyDb = new CryptoCurrencyDb(DatabaseConnectionString); cryptoCurrencyDb.UpdateUnit(currencyName, 100); CryptoCurrencyDbModel result = cryptoCurrencyDb.GetCryptoCurrency(currencyName, true); Assert.Equal(100, result.UnitPrice); }