public async Task GetRatesReturnsLatestAmountWhenJustOneRateIsSetup()
        {
            //Arrange
            const string  baseSymbol   = "USD";
            const string  targetSymbol = "EUR";
            const decimal latestRate   = 1.1m;

            var context = CreateEmptyContext();

            context.ExchangeRates.Add(new ExchangeRate(baseSymbol, targetSymbol, latestRate)
            {
                Id = Guid.NewGuid()
            });
            await context.SaveChangesAsync();

            var service = new ExchangeRateReadingService(context);

            //Act
            var rates = await service.GetRatesAsync(baseSymbol, targetSymbol);

            //Assert
            Assert.IsNotNull(rates);
            Assert.IsNotNull(rates.Rates);
            Assert.AreEqual(baseSymbol, rates.BaseSymbol);
            Assert.AreEqual(1, rates.Rates.Count);
            Assert.IsTrue(rates.Rates.ContainsKey(targetSymbol));
            Assert.AreEqual(latestRate, rates.Rates[targetSymbol]);
        }
コード例 #2
0
 public ExchangeRateController(
     ExchangeRateReadingService exchangeRateReadingService,
     ExchangeRateWriteService exchangeRateWriteService)
 {
     _exchangeRateReadingService = exchangeRateReadingService;
     _exchangeRateWriteService   = exchangeRateWriteService;
 }
        public async Task GetRatesReturnsEmptyRateGivenNoRatesAreSetup()
        {
            //Arrange
            const string baseSymbol   = "USD";
            const string targetSymbol = "EUR";
            var          context      = CreateEmptyContext();
            var          service      = new ExchangeRateReadingService(context);

            //Act
            var rates = await service.GetRatesAsync(baseSymbol, targetSymbol);

            //Assert
            Assert.IsNotNull(rates);
            Assert.IsNotNull(rates.Rates);
            Assert.AreEqual(baseSymbol, rates.BaseSymbol);
            Assert.AreEqual(1, rates.Rates.Count);
            Assert.IsTrue(rates.Rates.ContainsKey(targetSymbol));
            Assert.AreEqual(null, rates.Rates[targetSymbol]);
        }