Пример #1
0
        public void IsValidStandardRateLessThanThreeHoursTest()
        {
            DateTime entryDateTime = new DateTime(2018, 1, 22, 8, 59, 0);
            DateTime exitDateTime  = new DateTime(2018, 1, 22, 11, 57, 0);

            _rateCalculatorService = new RateCalculatorService(entryDateTime, exitDateTime);
            var parkingRateDto = _rateCalculatorService.GetParkingRateInfo();

            Assert.Equal(standardRateLessThanThreeHours, parkingRateDto.Rate);
        }
Пример #2
0
        public void IsValidWeekendRateTest()
        {
            DateTime entryDateTime = new DateTime(2018, 1, 20, 6, 0, 0);
            DateTime exitDateTime  = new DateTime(2018, 1, 21, 23, 59, 0);

            _rateCalculatorService = new RateCalculatorService(entryDateTime, exitDateTime);
            var parkingRateDto = _rateCalculatorService.GetParkingRateInfo();

            Assert.Equal(weekendRate, parkingRateDto.Rate);
        }
Пример #3
0
        public void IsValidNightRateTest()
        {
            DateTime entryDateTime = new DateTime(2012, 12, 31, 18, 0, 0);
            DateTime exitDateTime  = new DateTime(2013, 1, 1, 6, 00, 0);

            _rateCalculatorService = new RateCalculatorService(entryDateTime, exitDateTime);
            var parkingRateDto = _rateCalculatorService.GetParkingRateInfo();

            Assert.Equal(nightRate, parkingRateDto.Rate);
        }
Пример #4
0
        public void IsValidEarlyBirdRateTest()
        {
            DateTime entryDateTime = new DateTime(2013, 1, 1, 6, 0, 0);
            DateTime exitDateTime  = new DateTime(2013, 1, 1, 15, 30, 0);

            _rateCalculatorService = new RateCalculatorService(entryDateTime, exitDateTime);
            var parkingRateDto = _rateCalculatorService.GetParkingRateInfo();

            Assert.Equal(earlyBirdRate, parkingRateDto.Rate);
        }
Пример #5
0
        public void IsValidStandardRateFlatPerDayTest()
        {
            DateTime entryDateTime     = new DateTime(2018, 1, 24, 11, 59, 0);
            DateTime exitDateTime      = new DateTime(2018, 1, 25, 23, 30, 0);
            int      totalNumberOfDays = Convert.ToInt32(Math.Ceiling((exitDateTime - entryDateTime).TotalDays));

            _rateCalculatorService = new RateCalculatorService(entryDateTime, exitDateTime);
            var parkingRateDto = _rateCalculatorService.GetParkingRateInfo();

            Assert.Equal(standardFlatRatePerDay * totalNumberOfDays, parkingRateDto.Rate);
        }
Пример #6
0
        public IActionResult CalculateRate(DateTime entryDateTime, DateTime exitDateTime)
        {
            //TO-DO: don't forget to standarized datetime format make sure date/time doesn't impact calculation
            //To-DO: Make sure exit date is later than entry date
            if (exitDateTime <= entryDateTime)
            {
                return(new JsonResult("you can't exit before you enter to parking!"));
            }
            var rateService        = new RateCalculatorService(entryDateTime, exitDateTime);
            var parkingRateInfoDto = rateService.GetParkingRateInfo();

            return(new JsonResult(parkingRateInfoDto));
        }
 public RateCalculatorServiceTests()
 {
     _currencyConvertorClientMock = new Mock <ICurrencyConvertorClient>(MockBehavior.Strict);
     _service = new RateCalculatorService(_currencyConvertorClientMock.Object, _token, "USD");
 }