예제 #1
0
        public void SaveCurrencyRate_RateIsNotNull_NewRateIsSaved()
        {
            var expected = new Database.Models.CurrencyRate {
                Id = 4, Day = DateTime.Today, BaseCurrency = "EUR", TargetCurrency = "GBP", Rate = 0.85m
            };

            var initialData = new List <Database.Models.CurrencyRate>
            {
                new Database.Models.CurrencyRate {
                    Id = 1, Day = DateTime.Today.AddDays(-3), BaseCurrency = "EUR", TargetCurrency = "GBP", Rate = 0.85m
                },
                new Database.Models.CurrencyRate {
                    Id = 2, Day = DateTime.Today.AddDays(-2), BaseCurrency = "EUR", TargetCurrency = "GBP", Rate = 0.85m
                },
                new Database.Models.CurrencyRate {
                    Id = 3, Day = DateTime.Today.AddDays(-1), BaseCurrency = "EUR", TargetCurrency = "GBP", Rate = 0.85m
                }
            };

            var context = new Mock <ICurrencyRatesContext>();

            context.Setup(_ => _.CurrencyRates).Returns(DbSetMocking.CreateMockSet(initialData.AsQueryable()).Object);
            context.Setup(_ => _.SaveChanges()).Returns(1);

            var agent  = new CurrencyRatesDataAgent(context.Object);
            var result = agent.SaveCurrencyRate(expected);

            Assert.True(result);
        }
 public static CurrencyRate ToDomainObject(this Database.Models.CurrencyRate currencyRate)
 {
     return(new CurrencyRate
     {
         Id = currencyRate.Id,
         BaseCurrency = currencyRate.BaseCurrency,
         TargetCurrency = currencyRate.TargetCurrency,
         Day = currencyRate.Day,
         Rate = currencyRate.Rate
     });
 }
예제 #3
0
        public void GetCurrencyRate_Queried_ItShouldReturnRate()
        {
            var expected = new Database.Models.CurrencyRate {
                Id = 1, Day = DateTime.Today, BaseCurrency = "EUR", TargetCurrency = "GBP", Rate = 0.85m
            };

            var ratesAgent = new Mock <ICurrencyRatesDataAgent>();

            ratesAgent.Setup(_ => _.GetCurrencyRate(It.IsAny <DateTime>(), It.IsAny <string>(), It.IsAny <string>())).Returns(expected);

            var service = new Domain.PersistenceServices.DatabaseCurrencyRatePersistenceService(ratesAgent.Object);
            var actual  = service.GetCurrencyRate(DateTime.Today, "EUR", "GBP");

            Assert.AreEqual(expected.Id, actual.Id);
        }