Beispiel #1
0
        public RatesControllerTest()
        {
            var calculator = new RatesCalculator();

            calculator.FilePath = Path.GetFullPath(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"\..\..\..\carpark.api\App_Data\");

            _controller         = new RatesController(calculator);
            _controller.Request = new HttpRequestMessage();
            _controller.Request.SetConfiguration(new HttpConfiguration());
        }
 public void CalculateResultByOneCurrency2()
 {
     var calculator = new RatesCalculator(Mock.Of<IRateRepository>(), Mock.Of<IRatesLoadService>());
     var rates = RatesDataSet2();
     var result = calculator.CalculateResultByCurrency(rates, Currency.RUB, 50m);
     Assert.AreEqual(Currency.RUB, result.Currency);
     Assert.AreEqual(new DateTime(2012, 1, 5), result.StartDate);
     Assert.AreEqual(new DateTime(2012, 1, 7), result.EndDate);
     Assert.IsTrue(55.142857142857146m - result.MaxAmount < 0.000000001m);
 }
 public void CalculateResultByOneCurrency1()
 {
     var calculator = new RatesCalculator(Mock.Of<IRateRepository>(), Mock.Of<IRatesLoadService>());
     var rates = RatesDateSet1();
     var result = calculator.CalculateResultByCurrency(rates, Currency.RUB, 100m);
     Assert.AreEqual(Currency.RUB, result.Currency);
     Assert.AreEqual(new DateTime(2012, 12, 16), result.StartDate);
     Assert.AreEqual(new DateTime(2012, 12, 22), result.EndDate);
     Assert.IsTrue(127.26m - result.MaxAmount < 0.005m);
 }
        public void CalculateResultByOneCurrency_NoDeal1()
        {
            var calculator = new RatesCalculator(Mock.Of<IRateRepository>(), Mock.Of<IRatesLoadService>());
            var rates = new List<Rate>
            {
                new Rate { Date = new DateTime(2012, 12, 1), Rates = new Dictionary<Currency, decimal> {{Currency.RUB, 10m}}},
                new Rate { Date = new DateTime(2012, 12, 2), Rates = new Dictionary<Currency, decimal> {{Currency.RUB, 20m}}}
            };
            var result = calculator.CalculateResultByCurrency(rates, Currency.RUB, 100m);

            //if traider can only lose money, CalculateResultByCurrency return MaxAmount wich less then initial amount
            Assert.AreEqual(Currency.RUB, result.Currency);
            Assert.AreEqual(49m, result.MaxAmount);
            Assert.IsTrue(result.MaxAmount < 100m);
        }
 public FixedRatesNightCalcTest()
 {
     _ud                  = new UserData();
     _calculator          = new RatesCalculator();
     _calculator.FilePath = Path.GetFullPath(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"\..\..\..\carpark.api\App_Data\");
 }
        public void CalculateResult_NoDeal()
        {
            var calculator = new RatesCalculator(Mock.Of<IRateRepository>(), Mock.Of<IRatesLoadService>());
            var rates = new List<Rate>
            {
                new Rate { BaseCurrency = Currency.USD, Date = new DateTime(2012, 12, 1), Rates = new Dictionary<Currency, decimal> {{Currency.RUB, 10m}}},
                new Rate { BaseCurrency = Currency.USD, Date = new DateTime(2012, 12, 2), Rates = new Dictionary<Currency, decimal> {{Currency.RUB, 20m}}}
            };
            var result = calculator.CalculateResult(Currency.USD, new [] {Currency.RUB}, 100, rates);

            //if traider can only lose money, CalculateResult return MaxAmount = initial amount and Currency = initial currency
            Assert.AreEqual(Currency.USD, result.Currency);
            Assert.AreEqual(100m, result.MaxAmount);
        }