示例#1
0
 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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
 protected virtual void OnCurrencyChange(StockInfoEventArgs info) => CurrencyChange?.Invoke(this, info);