public void EarlyBird_Testing() { //Check-In at 8 a.m //Check-Out at 4 p.m var startDateString = "2019/11/08 08:00"; var endDateString = "2019/11/08 16:00"; var charge = api.CalculateParkingFee(DateTime.Parse(startDateString), DateTime.Parse(endDateString)); var rateType = charge.ApplicableRates.FirstOrDefault(); Assert.AreEqual(charge.TotalCharge, EarlyBirdRates.Rate); Assert.AreEqual(charge.ApplicableRates.Count, 1); Assert.AreEqual(rateType.Name, RateNames.EarlyBird); }
static void Main(string[] args) { DateTime start; DateTime end; Console.WriteLine("Enter a Start date (Format: YYYY/MM/DD HH:MM): "); if (DateTime.TryParse(Console.ReadLine(), out start)) { Console.WriteLine("The day of the week is: " + start.DayOfWeek); } else { Console.WriteLine("You have entered an incorrect start value."); Console.ReadLine(); return; } Console.WriteLine("Enter a End date (Format: YYYY/MM/DD HH:MM): "); if (DateTime.TryParse(Console.ReadLine(), out end)) { Console.WriteLine("The day of the week is: " + end.DayOfWeek); } else { Console.WriteLine("You have entered an incorrect Enddate value."); Console.ReadLine(); return; } if (start < end) { Console.WriteLine("Start Date " + start.ToLongDateString() + " Time " + start.ToShortTimeString()); Console.WriteLine("End Date " + end.ToLongDateString() + " Time " + end.ToShortTimeString()); try { var Api = new ParkingFeeCalculator(); var charges = Api.CalculateParkingFee(start, end); //Display all the applied rates when a car is parked for more than 1 day. Console.WriteLine("============ Parking Rates Applied ==================="); foreach (var rate in charges.ApplicableRates) { Console.WriteLine($" Rate Name : {rate.Name} || Charge : {rate.Charge} || {(rate.ActualDate.HasValue ? "On " + rate.ActualDate.Value.DayOfWeek.ToString() : string.Empty)}"); } Console.WriteLine("======================================================="); Console.WriteLine("======================================================="); Console.WriteLine($"Total Charges : {charges.TotalCharge.ToString()}"); Console.WriteLine("======================================================="); } catch (Exception ex) { Console.WriteLine($"Fatal error occurred : { ex.Message}"); Console.ReadKey(); return; } } else { Console.WriteLine($"Start Date : {start} can not be greater than End Date : {end} "); } Console.ReadLine(); }