protected virtual void OnCurrencyChange(object sender, StockInfoEventArgs args) { if (CurrencyChange != null) { CurrencyChange.Invoke(sender, args); } }
public async Task <double> GetExchangeRate(CurrencyChange currencyChange) { using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://api.exchangeratesapi.io/latest"); var response = await client.GetAsync($"?base={currencyChange.CurrencyCode}&symbols={currencyChange.CurrencyType}&amount={currencyChange.Units}"); var stringResult = await response.Content.ReadAsStringAsync(); var dictResult = JsonConvert.DeserializeObject <dynamic>(stringResult); var exchangeValue = dictResult.rates[$"{currencyChange.CurrencyType}"]; var convert = exchangeValue * currencyChange.Units; return(convert); } }
public async Task GetExchangeRate_IngresaValores_RegresaConversion() { var controller = new currencyController(); var currencychange = new CurrencyChange() { CurrencyCode = "EUR", CurrencyType = "MXN", Units = 1 }; double result = await controller.GetExchangeRate(currencychange); double expected = 23.7835; var amount = 1; var convert = expected * amount; Assert.AreEqual(result, convert); }
public async Task Test_To_Change_CurrencyAsync_BadResult() { //Arrange var model = new CurrencyChangeModel { Symbol = "USD", UserId = 2 }; var cur = new CurrencyChange { FormerMainCurrencyTitle = "eur", NewMainCurrencySymbol = "USD" }; var currMgr = new Mock <ICurrencyManager>(); currMgr.Setup(t => t.ChangeMainCurrency("oob", model.UserId)).ReturnsAsync((cur, string.Empty)); var _sut = new CurrencyController(currMgr.Object); //Act var result = await _sut.ChangeUserCurrency(model); Assert.IsType <BadRequestObjectResult>(result); Assert.Equal(model.Symbol, cur.NewMainCurrencySymbol); }
public async Task Test_To_Change_CurrencyAsync() { //Arrange var model = new CurrencyChangeModel { Symbol = "EUR", UserId = 2 }; var cur = new CurrencyChange { FormerMainCurrencyTitle = "usd", NewMainCurrencySymbol = "EUR" }; var currMgr = new Mock <ICurrencyManager>(); currMgr.Setup(t => t.ChangeMainCurrency(model.Symbol, model.UserId)).ReturnsAsync((cur, "success")); var _sut = new CurrencyController(currMgr.Object); //Act var output = await _sut.ChangeUserCurrency(model); Assert.IsType <OkObjectResult>(output); Assert.Equal(model.Symbol, cur.NewMainCurrencySymbol); }
protected virtual void OnCurrencyChange(StockInfoEventArgs info) => CurrencyChange?.Invoke(this, info);