public void TestGetCurrencyList()
        {
            entities = new List <Currency>();
            entities.Add(new Currency
            {
                Id   = 1,
                Name = "MIKI",
                Rate = -3.5
            });
            entities.Add(new Currency
            {
                Id   = 2,
                Name = "ZOKI"
            });
            var myDbMoq = new Mock <ApplicationDbContext>();

            myDbMoq.Setup(p => p.Currencies).Returns(
                DbContextMock.GetQueryableMockDbSet <Currency>(entities));
            myDbMoq.Setup(p => p.SaveChanges()).Returns(2);
            CurrencyRateService crs = new CurrencyRateService(myDbMoq.Object, new DateService());

            var ret = crs.GetCurrencyList();

            Assert.NotNull(ret);
            Assert.True(ret.Exists(x => x.Id == 1 && x.Name.Equals("MIKI") && x.Rate == -3.5), "Nepostojeci element");
            Assert.True(ret.Exists(x => x.Id == 2 && x.Name.Equals("ZOKI") && x.Rate == 0.0), "Nepostojeci element");
        }
        public CurrencyRatesControllerTests(TestFixture <Startup> fixture)
        {
            var rates = new List <CurrencyRate>
            {
                new CurrencyRate
                {
                    From = "USD",
                    To   = "CAD",
                    Rate = 1.97M
                }
            };

            OnlineRepository = new Mock <IRepository <CurrencyRate> >();
            OnlineRepository.Setup(x => x.GetAll())
            .ReturnsAsync(rates);
            OnlineRepository.Setup(x => x.Where(It.IsAny <Expression <Func <CurrencyRate, bool> > >()))
            .Returns((Expression <Func <CurrencyRate, bool> > exp) => rates.AsQueryable().Where(exp));

            LocalRepository = new Mock <ILocalSourceRepository <CurrencyRate> >();
            LocalRepository.Setup(x => x.GetAll())
            .ReturnsAsync(rates);
            LocalRepository.Setup(x => x.Where(It.IsAny <Expression <Func <CurrencyRate, bool> > >()))
            .Returns((Expression <Func <CurrencyRate, bool> > exp) => rates.AsQueryable().Where(exp));
            LocalRepository.Setup(x => x.Refresh(rates));

            var Logger = (ILogger <CurrencyRatesController>)fixture.Server.Host.Services.GetService(typeof(ILogger <CurrencyRatesController>));
            var logger = (ILogger <CurrencyRateService>)fixture.Server.Host.Services.GetService(typeof(ILogger <CurrencyRateService>));

            Service        = new CurrencyRateService(OnlineRepository.Object, LocalRepository.Object, logger);
            TestController = new CurrencyRatesController(Service, Logger);
        }
 public BankAccountApplicationService(BankContext db, INotificationService notificationService,
                                      CurrencyRateService currencyRateService, IConfiguration configuration, IQueryDatabaseGateway queryDatabaseGateway)
 {
     _queryDatabaseGateway = queryDatabaseGateway;
     _configuration        = configuration;
     _currencyRateService  = currencyRateService;
     _notificationService  = notificationService;
     _db = db;
 }
Exemple #4
0
        private async Task <CurrencyModel> ConvertCurrencyAsync(CurrencyModel currencyModelFrom, CurrencyEnum currencyTo)
        {
            var currency = new CurrencyModel();

            var currencyRateService = new CurrencyRateService();
            var currencyInfo        = await currencyRateService.GetCurrencyInfoAsync(currencyModelFrom.Currency, currencyTo);

            currency.Currency = currencyTo;
            currency.Price    = currencyModelFrom.Price * currencyInfo.Rate;

            return(currency);
        }
Exemple #5
0
        public void GetBaseRate_ReturnsDKK_WhenCalled()
        {
            var repo = new Mock <ICurrencyRateRepository>();

            repo.Setup(x => x.GetCurrencyRate("DKK")).Returns(new CurrencyRate()
            {
                IsoName = "DKK"
            });

            var service = new CurrencyRateService(repo.Object);

            var result = service.GetBaseCurrency();

            Assert.IsNotNull(result);
            Assert.AreEqual("DKK", result.IsoName);
        }
Exemple #6
0
        public SelfHost()
        {
            var log = new ServiceEventLogger(DataType.ServiceName.Arbitrage, new DbRepositoryService());

            _msgHandling = new MessageHandling(log, new RestScheduler(log));
            _matching    = new MatchingEngine(log, _msgHandling);
            _rateService = new CurrencyRateService();
            _tcp         = new TcpService();

            _msgHandling.MatchingEngine  = _matching;
            _msgHandling.ExchangePrices += _matching.OnExchangePrices;

            if (!EventLog.SourceExists(ServiceName))
            {
                EventLog.CreateEventSource(ServiceName, ServiceName + "Log");
            }
        }
Exemple #7
0
        public async void ByCurrencyRateDateFromCurrencyCodeToCurrencyCode_Not_Exists()
        {
            var mock = new ServiceMockFacade <ICurrencyRateRepository>();

            mock.RepositoryMock.Setup(x => x.ByCurrencyRateDateFromCurrencyCodeToCurrencyCode(It.IsAny <DateTime>(), It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult <CurrencyRate>(null));
            var service = new CurrencyRateService(mock.LoggerMock.Object,
                                                  mock.RepositoryMock.Object,
                                                  mock.ModelValidatorMockFactory.CurrencyRateModelValidatorMock.Object,
                                                  mock.BOLMapperMockFactory.BOLCurrencyRateMapperMock,
                                                  mock.DALMapperMockFactory.DALCurrencyRateMapperMock,
                                                  mock.BOLMapperMockFactory.BOLSalesOrderHeaderMapperMock,
                                                  mock.DALMapperMockFactory.DALSalesOrderHeaderMapperMock);

            ApiCurrencyRateResponseModel response = await service.ByCurrencyRateDateFromCurrencyCodeToCurrencyCode(default(DateTime), default(string), default(string));

            response.Should().BeNull();
            mock.RepositoryMock.Verify(x => x.ByCurrencyRateDateFromCurrencyCodeToCurrencyCode(It.IsAny <DateTime>(), It.IsAny <string>(), It.IsAny <string>()));
        }
Exemple #8
0
        public async void SalesOrderHeadersByCurrencyRateID_Not_Exists()
        {
            var mock = new ServiceMockFacade <ICurrencyRateRepository>();

            mock.RepositoryMock.Setup(x => x.SalesOrderHeadersByCurrencyRateID(default(int), It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult <List <SalesOrderHeader> >(new List <SalesOrderHeader>()));
            var service = new CurrencyRateService(mock.LoggerMock.Object,
                                                  mock.RepositoryMock.Object,
                                                  mock.ModelValidatorMockFactory.CurrencyRateModelValidatorMock.Object,
                                                  mock.BOLMapperMockFactory.BOLCurrencyRateMapperMock,
                                                  mock.DALMapperMockFactory.DALCurrencyRateMapperMock,
                                                  mock.BOLMapperMockFactory.BOLSalesOrderHeaderMapperMock,
                                                  mock.DALMapperMockFactory.DALSalesOrderHeaderMapperMock);

            List <ApiSalesOrderHeaderResponseModel> response = await service.SalesOrderHeadersByCurrencyRateID(default(int));

            response.Should().BeEmpty();
            mock.RepositoryMock.Verify(x => x.SalesOrderHeadersByCurrencyRateID(default(int), It.IsAny <int>(), It.IsAny <int>()));
        }
Exemple #9
0
        public async void Get_null_record()
        {
            var mock = new ServiceMockFacade <ICurrencyRateRepository>();

            mock.RepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <CurrencyRate>(null));
            var service = new CurrencyRateService(mock.LoggerMock.Object,
                                                  mock.RepositoryMock.Object,
                                                  mock.ModelValidatorMockFactory.CurrencyRateModelValidatorMock.Object,
                                                  mock.BOLMapperMockFactory.BOLCurrencyRateMapperMock,
                                                  mock.DALMapperMockFactory.DALCurrencyRateMapperMock,
                                                  mock.BOLMapperMockFactory.BOLSalesOrderHeaderMapperMock,
                                                  mock.DALMapperMockFactory.DALSalesOrderHeaderMapperMock);

            ApiCurrencyRateResponseModel response = await service.Get(default(int));

            response.Should().BeNull();
            mock.RepositoryMock.Verify(x => x.Get(It.IsAny <int>()));
        }
Exemple #10
0
        public void GetCurrencyRate_ThrowsError_WhenUnsupportedCurrencyGiven()
        {
            var repo = new Mock <ICurrencyRateRepository>();

            repo.Setup(x => x.GetCurrencies()).Returns(new List <CurrencyRate> {
                new CurrencyRate()
                {
                    IsoName = "DKK"
                }
            });
            repo.Setup(x => x.GetCurrencyRate("DKK")).Returns(new CurrencyRate()
            {
                IsoName = "DKK"
            });
            var service = new CurrencyRateService(repo.Object);

            Assert.Throws <InvalidEnumArgumentException>(() => service.GetCurrencyRate("DAK"));
        }
        public async Task GetRateByCurrencyCodeTest()
        {
            var cache = new Mock <ICache>();
            var dic   = new Dictionary <string, double>();

            dic.Add("US", 10);

            cache
            .Setup(c => c.GetAsync <Dictionary <string, double> >(
                       It.IsAny <string>(),
                       It.IsAny <Func <string, Task <Dictionary <string, double> > > >(),
                       It.IsAny <TimeSpan>()))
            .ReturnsAsync(dic);
            var reqCreator = new Mock <IAPIRequestCreator>();

            var service = new CurrencyRateService(cache.Object, reqCreator.Object);
            var result  = await service.GetRateByCurrencyCode("US");

            Assert.AreEqual(10, result);
        }
Exemple #12
0
        public async void Delete()
        {
            var mock  = new ServiceMockFacade <ICurrencyRateRepository>();
            var model = new ApiCurrencyRateRequestModel();

            mock.RepositoryMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.CompletedTask);
            var service = new CurrencyRateService(mock.LoggerMock.Object,
                                                  mock.RepositoryMock.Object,
                                                  mock.ModelValidatorMockFactory.CurrencyRateModelValidatorMock.Object,
                                                  mock.BOLMapperMockFactory.BOLCurrencyRateMapperMock,
                                                  mock.DALMapperMockFactory.DALCurrencyRateMapperMock,
                                                  mock.BOLMapperMockFactory.BOLSalesOrderHeaderMapperMock,
                                                  mock.DALMapperMockFactory.DALSalesOrderHeaderMapperMock);

            ActionResponse response = await service.Delete(default(int));

            response.Should().NotBeNull();
            mock.RepositoryMock.Verify(x => x.Delete(It.IsAny <int>()));
            mock.ModelValidatorMockFactory.CurrencyRateModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <int>()));
        }
Exemple #13
0
        public async void Create()
        {
            var mock  = new ServiceMockFacade <ICurrencyRateRepository>();
            var model = new ApiCurrencyRateRequestModel();

            mock.RepositoryMock.Setup(x => x.Create(It.IsAny <CurrencyRate>())).Returns(Task.FromResult(new CurrencyRate()));
            var service = new CurrencyRateService(mock.LoggerMock.Object,
                                                  mock.RepositoryMock.Object,
                                                  mock.ModelValidatorMockFactory.CurrencyRateModelValidatorMock.Object,
                                                  mock.BOLMapperMockFactory.BOLCurrencyRateMapperMock,
                                                  mock.DALMapperMockFactory.DALCurrencyRateMapperMock,
                                                  mock.BOLMapperMockFactory.BOLSalesOrderHeaderMapperMock,
                                                  mock.DALMapperMockFactory.DALSalesOrderHeaderMapperMock);

            CreateResponse <ApiCurrencyRateResponseModel> response = await service.Create(model);

            response.Should().NotBeNull();
            mock.ModelValidatorMockFactory.CurrencyRateModelValidatorMock.Verify(x => x.ValidateCreateAsync(It.IsAny <ApiCurrencyRateRequestModel>()));
            mock.RepositoryMock.Verify(x => x.Create(It.IsAny <CurrencyRate>()));
        }
Exemple #14
0
        public async void All()
        {
            var mock    = new ServiceMockFacade <ICurrencyRateRepository>();
            var records = new List <CurrencyRate>();

            records.Add(new CurrencyRate());
            mock.RepositoryMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult(records));
            var service = new CurrencyRateService(mock.LoggerMock.Object,
                                                  mock.RepositoryMock.Object,
                                                  mock.ModelValidatorMockFactory.CurrencyRateModelValidatorMock.Object,
                                                  mock.BOLMapperMockFactory.BOLCurrencyRateMapperMock,
                                                  mock.DALMapperMockFactory.DALCurrencyRateMapperMock,
                                                  mock.BOLMapperMockFactory.BOLSalesOrderHeaderMapperMock,
                                                  mock.DALMapperMockFactory.DALSalesOrderHeaderMapperMock);

            List <ApiCurrencyRateResponseModel> response = await service.All();

            response.Should().HaveCount(1);
            mock.RepositoryMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>()));
        }
Exemple #15
0
 public CalculatorViewModel(IPageService pageService, ICurrencyRateGetter currencyRateGetter)
 {
     IsSaved         = true;
     IsRatesLoaded   = false;
     IsHistoryLoaded = false;
     IsAllLoaded     = false;
     _historyDb      = DependencyService.Get <ISQLiteDb>().GetConnection();
     GetHistoryFromDb();
     _currencyRateGetter  = currencyRateGetter;
     _currencyRateService = new CurrencyRateService();
     _pageService         = pageService;
     Amount = "";
     SetCurrenciesNames();
     IsPlaceholder       = true;
     AddNumberCommand    = new Command <string>(AddNumber);
     AddZeroCommand      = new Command(AddZero);
     AddDotCommand       = new Command(AddDot);
     RemoveSymbolCommand = new Command(RemoveSymbol);
     RemoveAllCommand    = new Command(RemoveAll);
     SaveCommand         = new Command(Save);
 }
Exemple #16
0
        public async Task GetInfoByIpTest()
        {
            var country = new Country()
            {
                Alpha2Code = "US",
                Name       = "United States of America"
            };
            Mock <ICache> cache = GetCache();

            Mock <ICache> cacheRate = CacheRate();

            var cacheCountry = CacheCountry();
            var reqCreator   = new Mock <IAPIRequestCreator>();

            var rateService    = new CurrencyRateService(cacheRate.Object, reqCreator.Object); // 10
            var countryService = new CountryService(cacheCountry, reqCreator.Object);

            var service = new IpInfoService(cache.Object, reqCreator.Object, countryService, rateService);
            var result  = await service.GetInfoByIp("1.2.3.4");

            Assert.AreEqual("US", result.Alpha2Code);
            Assert.AreEqual(10, result.Currencies.First().Rate);
        }
        public void Init()
        {
            rateList        = new List <CurrencyRate>(); // Список курсов для валюты
            createdRateList = new List <CurrencyRate>(); //Список созданных курсов валюты

            // инициализация валюты
            var mockCurrency = new Mock <Currency>();

            mockCurrency.Setup(x => x.Id).Returns(1);
            mockCurrency.Setup(x => x.AddRate(It.IsAny <CurrencyRate>()))
            .Callback <CurrencyRate>(rate => rateList.Add(rate));
            mockCurrency.Setup(x => x.RemoveRate(It.IsAny <CurrencyRate>()))
            .Callback <CurrencyRate>(rate => rateList.Remove(rate));
            currency = mockCurrency.Object;

            // Инициализаия репозитория курсов валюты
            currencyRateRepository = new Mock <ICurrencyRateRepository>();

            currencyRateRepository.Setup(x => x.GetRatesOnDate(It.IsAny <short>(), It.IsAny <DateTime>()))
            .Returns <short, DateTime>((currencyId, date) =>
            {
                if (currencyId != 1)
                {
                    return(new List <CurrencyRate>());
                }

                return(rateList.Where(x => x.StartDate <= date && (x.EndDate >= date || x.EndDate == null)));
            });

            currencyRateRepository.Setup(x => x.GetNextRateByDate(It.IsAny <short>(), It.IsAny <DateTime>(), It.IsAny <DateTime>()))
            .Returns <short, DateTime, DateTime>((currencyId, date, creationDate) =>
            {
                return(rateList.Where(x => x.Currency.Id == currencyId && (x.StartDate > date || (x.StartDate == date && x.CreationDate > creationDate)))
                       .OrderBy(x => x.StartDate)
                       .ThenBy(x => x.CreationDate)
                       .FirstOrDefault());
            });

            currencyRateRepository.Setup(x => x.CheckCurrencyRateUsing(It.IsAny <int>())).Returns(false);

            currencyRateRepository.Setup(x => x.GetPreviouseRate(It.IsAny <int>()))
            .Returns <int>(currencyRateId =>
            {
                return(rateList.Where(x => x.Id == currencyRateId)
                       .Select(x => x.PreviousCurrencyRate)
                       .FirstOrDefault());
            });

            currencyRateRepository.Setup(x => x.GetNextRate(It.IsAny <int>()))
            .Returns <int>(currencyRateId =>
            {
                return(rateList.Where(x => x.PreviousCurrencyRate != null && x.PreviousCurrencyRate.Id == currencyRateId)
                       .FirstOrDefault());
            });

            currencyRateService = new CurrencyRateService(currencyRateRepository.Object);

            var mockUser = new Mock <User>();

            mockUser.Setup(x => x.HasPermission(It.IsAny <Permission>())).Returns(true);

            user = mockUser.Object;
        }
Exemple #18
0
 public CurrencyController(CurrencyRateService service, IMapper mapper)
 {
     this.service = service;
     this.mapper  = mapper;
 }
 public ExchangeCommandHandler(BankContext db, CurrencyRateService currencyRateService)
 {
     _currencyRateService = currencyRateService;
     _db = db;
 }