public async void CotizacionMonedaTest() { // Arrange var expected = new CotizacionDtoResponse() { CambioVenta = 1, CambioCompra = 2, FechaActualizacion = "08/06/2020" }; var loggerMock = new Mock <ILogger <CotizacionMonedaController> >(); var mockRepository = new Mock <ICotizacionMoneda>(); mockRepository.Setup(x => x.GetCotizacion(It.IsAny <string>())) .Returns(Task.FromResult(new CotizacionDtoResponse() { CambioVenta = 1, CambioCompra = 2, FechaActualizacion = "08/06/2020" })); var controller = new CotizacionMonedaController(mockRepository.Object, loggerMock.Object); //act var actionResult = await controller.GetCotizacion("Dolar"); var actual = (CotizacionDtoResponse)((ObjectResult)actionResult).Value; //Assert Assert.Equal(expected.CambioCompra, actual.CambioCompra); Assert.Equal(expected.CambioVenta, actual.CambioVenta); Assert.Equal(expected.FechaActualizacion, actual.FechaActualizacion); }
public async Task <CotizacionDtoResponse> GetCotizacion(string moneda) { CotizacionDtoResponse result = null; var request = new HttpRequestMessage(HttpMethod.Get, "https://www.bancoprovincia.com.ar/Principal/Dolar"); var client = _clientFactory.CreateClient("virtualMind"); var response = await client.SendAsync(request); if (response.IsSuccessStatusCode) { using (var stream = await response.Content.ReadAsStreamAsync()) { var jsonReader = new JsonTextReader(new StreamReader(stream)); var objDeserialize = new JsonSerializer().Deserialize <string[]>(jsonReader); if (objDeserialize != null) { var objServiceResponse = new CotizacionDto() { CambioDolarCompra = Convert.ToDecimal(objDeserialize[0]), CambioDolarVenta = Convert.ToDecimal(objDeserialize[1]), FechaActualizacion = objDeserialize[2] }; result = moneda.ToLower() switch { "dolar" => new CotizacionDtoResponse() { CambioCompra = objServiceResponse.CambioDolarCompra, CambioVenta = objServiceResponse.CambioDolarVenta, FechaActualizacion = objServiceResponse.FechaActualizacion }, "real" => new CotizacionDtoResponse() { CambioCompra = Math.Round(objServiceResponse.CambioDolarCompra / 4, 2), CambioVenta = Math.Round(objServiceResponse.CambioDolarVenta / 4, 2), FechaActualizacion = objServiceResponse.FechaActualizacion }, _ => null }; } } } return(await Task.FromResult(result)); } }