public CurrencyConversionController(ILoader loader)
 {
     _currencyConversionService = new CurrencyConversionService(loader);
     _dateChecker         = new DateChecker();
     _dateRange           = new DateRange(loader);
     _currencyNameChecker = new CurrencyNameChecker();
 }
        public void ConvertCurrencyToTextServiceTest()
        {
            var service        = new CurrencyConversionService();
            var convertedText1 = service.ConvertCurrencyToText(-1000000000);
            var convertedText2 = service.ConvertCurrencyToText(1000000000);

            Assert.Equal($"Cannot convert this number as it exceeds the maximal allowed value of {999999999.99M}", convertedText1);
            Assert.Equal($"Cannot convert this number as it exceeds the maximal allowed value of {999999999.99M}", convertedText2);
        }
Example #3
0
 public ConvertViewModel()
 {
     FetchCommand      = new Command(async() => await FetchCurrencies());
     ConversionService = new CurrencyConversionService();
     CurrencyProviders = new List <ICurrencyProvider>
     {
         new FakeCurrencyProvider(),
         new NbpCurrencyProvider(NbpTable.A),
         new NbpCurrencyProvider(NbpTable.B)
     };
 }
Example #4
0
        public App()
        {
            InitializeComponent();

            ICurrencyConversionService conversionService = new CurrencyConversionService();
            IList <ICurrencyProvider>  providers         = new List <ICurrencyProvider>
            {
                new FakeCurrencyProvider(),
                new NbpCurrencyProvider(NbpTable.A),
                new NbpCurrencyProvider(NbpTable.B)
            };

            var mainPage = new TabbedPage();

            mainPage.Children.Add(new ConvertPage(new ConvertViewModel(conversionService, providers)));
            mainPage.Children.Add(new AboutPage(new AboutViewModel("kkulewski.pl", "github.com/kkulewski")));
            MainPage = mainPage;
        }
Example #5
0
        public async Task Given_CurrencyRate_When_ConvertingFromEurToSek_Then_ConvertedAmountIsCorrect()
        {
            //Arrange
            var currencyService = new Mock <ICurrencyService>();
            var currencyRate    = 10.3183M;

            currencyService.Setup(p => p.GetCurrencyRate(It.IsAny <CurrencyConversion>())).ReturnsAsync(currencyRate);

            var currencyConversionService = new CurrencyConversionService(currencyService.Object);
            var currencyConversion        = new CurrencyConversion()
            {
                OutputCurrency   = Currency.SEK,
                InputCurrency    = Currency.EUR,
                Amount           = 100,
                ExchangeRateDate = new DateTime(2020, 08, 19)
            };

            //Act
            currencyConversion = await currencyConversionService.Convert(currencyConversion);

            //Assert
            Assert.AreEqual(1031.83M, decimal.Round(currencyConversion.ConvertedAmount, 2));
        }
Example #6
0
        public async void CurrencyConversionService_is_conversion_correct()
        {
            //Arange
            CurrencyConversionService testService             = CreateCurrencyConversionService();
            CurrencyConversionModel   currencyConversionModel = new CurrencyConversionModel();

            currencyConversionModel.FirstCurrency       = _firstCurrencyName;
            currencyConversionModel.SecondCurrency      = _secondCurrencyName;
            currencyConversionModel.AmountFirstCurrency = 10;
            currencyConversionModel.Date = _commonDate;
            float expectedResult = currencyConversionModel.AmountFirstCurrency * _firstCurrencyCloseValue / _secondCurrencyCloseValue;
            bool  resultFlag     = false;

            //Act
            currencyConversionModel = await testService.CalculateCurrencyConversionAmount(currencyConversionModel);

            if (currencyConversionModel.AmountSecondCurrency == expectedResult)
            {
                resultFlag = true;
            }

            //Asert
            Assert.True(resultFlag);
        }
 public CurrencyConversionServiceShould()
 {
     _exchangeRateServiceMock  = new Mock <IExchangeRateService>();
     currencyConversionService = new CurrencyConversionService(_exchangeRateServiceMock.Object);
 }