public void Test28032021()
        {
            Currency currency = new Currency
            {
                Id   = 1,
                Name = "CAD"
            };
            List <Currency> currencies = new List <Currency> {
                currency
            };
            List <CurrencyRateHistory> entities = new List <CurrencyRateHistory>();

            entities.Add(new CurrencyRateHistory
            {
                Date       = new DateTime(2021, 03, 28),
                CurrencyId = 1,
                Id         = 99,
                Rate       = 88.00,
                Currency   = currency
            });

            var myDbMoq = new Mock <ApplicationDbContext>();

            myDbMoq.Setup(p => p.CurrencyRateHistory).Returns(
                DbContextMock.GetQueryableMockDbSet(entities));
            myDbMoq.Setup(p => p.Currencies).Returns(
                DbContextMock.GetQueryableMockDbSet(currencies));
            myDbMoq.Setup(p => p.SaveChanges()).Returns(2);
            ExchangeRatesService ers = new ExchangeRatesService(myDbMoq.Object);

            var ret = ers.PrepareRates(
                new ExchangeRateRequest {
                Date = new DateTime(2021, 03, 28)
            });

            Assert.True(ret.Exists(x => x.Rate == 88.00 & x.Name.Equals("CAD")));
        }
        public async Task WeightedExchangeRate_Returns_ExpectedResult()
        {
            var clientFactory = new HttpClientFactory(new NullLogger <HttpClientFactory>());
            var repo          = new ExchangeRateApi(this._configuration, clientFactory, this._policyFactory, this._logger);
            var repoDecorator = new ExchangeRateApiCachingDecorator(repo);
            var exchangeRates = new ExchangeRatesService(repoDecorator, this._loggerExchRate);
            var calculator    = new TradePositionWeightedAverageExchangeRateService(exchangeRates, this._calculatorLogger);

            var tradeOne   = new Order().Random();
            var tradeTwo   = new Order().Random();
            var tradeThree = new Order().Random();

            tradeOne.FilledDate   = new DateTime(2017, 01, 01);
            tradeTwo.FilledDate   = new DateTime(2017, 10, 25);
            tradeThree.FilledDate = new DateTime(2017, 10, 25);

            var position = new TradePosition(new List <Order> {
                tradeOne, tradeTwo, tradeThree
            });

            var usd = new Currency("usd");

            var wer = await calculator.WeightedExchangeRate(position, usd, this._ruleCtx);
        }
Beispiel #3
0
 public ExchangeRatesController()
 {
     _exchangeRatesService = new ExchangeRatesService();
 }
Beispiel #4
0
 public ExchangeRatesController(ILogger <ExchangeRatesController> logger, ExchangeRatesService exchangeRates, IMapper mapper)
 {
     _logger        = logger;
     _exchangeRates = exchangeRates;
     _mapper        = mapper;
 }