public void Test_Current_Rate_CurrencylayerProvider()
        {
            //Arrange
            IProvider provider     = new CurrencylayerProvider();
            var       expectedRate = new Rate()
            {
                From  = "EUR",
                To    = "USD",
                Value = 1.199908m
            };

            //Act
            var rate = provider.GetRate("EUR", "USD").Result;

            //Assert
            Assert.NotEqual(1.199908m, rate.Value);
            Assert.NotEqual(0m, rate.Value);
        }
        public void Test_History_Rate_CurrencylayerProvider()
        {
            //Arrange
            IProvider provider     = new CurrencylayerProvider();
            DateTime  historyDate  = new DateTime(2017, 12, 31);
            var       expectedRate = new Rate()
            {
                From = "USD",
                To   = "EUR",
                Date = historyDate,
                //example was EUR-> USD , so here its the inverse
                Value = Math.Round((1m / 1.199908m) + 0.000001m, 6) //roun to six digits after
            };

            //Act
            var rate = provider.GetRate("USD", "EUR", historyDate).Result;

            //Assert
            Assert.Equal(rate.Value, expectedRate.Value);
        }