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); }
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); }
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); }
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); }
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); }
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"); }